Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/BedQualityState.java @ 6252:38d6ce2c7164
Generate facets for bed diameter measurements and draw them into the generated chart.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Mon, 10 Jun 2013 16:28:57 +0200 |
parents | af13ceeba52a |
children | ea6225010871 |
comparison
equal
deleted
inserted
replaced
6251:68071f205c0e | 6252:38d6ce2c7164 |
---|---|
22 import org.dive4elements.river.artifacts.model.CalculationResult; | 22 import org.dive4elements.river.artifacts.model.CalculationResult; |
23 import org.dive4elements.river.artifacts.model.DataFacet; | 23 import org.dive4elements.river.artifacts.model.DataFacet; |
24 import org.dive4elements.river.artifacts.model.DateRange; | 24 import org.dive4elements.river.artifacts.model.DateRange; |
25 import org.dive4elements.river.artifacts.model.FacetTypes; | 25 import org.dive4elements.river.artifacts.model.FacetTypes; |
26 import org.dive4elements.river.artifacts.model.minfo.BedDensityFacet; | 26 import org.dive4elements.river.artifacts.model.minfo.BedDensityFacet; |
27 import org.dive4elements.river.artifacts.model.minfo.BedDiameterDataFacet; | |
27 import org.dive4elements.river.artifacts.model.minfo.BedDiameterFacet; | 28 import org.dive4elements.river.artifacts.model.minfo.BedDiameterFacet; |
28 import org.dive4elements.river.artifacts.model.minfo.BedDiameterResult; | 29 import org.dive4elements.river.artifacts.model.minfo.BedDiameterResult; |
29 import org.dive4elements.river.artifacts.model.minfo.BedParametersResult; | 30 import org.dive4elements.river.artifacts.model.minfo.BedParametersResult; |
30 import org.dive4elements.river.artifacts.model.minfo.BedPorosityFacet; | 31 import org.dive4elements.river.artifacts.model.minfo.BedPorosityFacet; |
31 import org.dive4elements.river.artifacts.model.minfo.BedQualityCalculation; | 32 import org.dive4elements.river.artifacts.model.minfo.BedQualityCalculation; |
51 public static final String I18N_FACET_BED_POROSITY_SUBLAYER = "facet.bedquality.bed.porosity.sublayer"; | 52 public static final String I18N_FACET_BED_POROSITY_SUBLAYER = "facet.bedquality.bed.porosity.sublayer"; |
52 public static final String I18N_FACET_BED_DENSITY_TOPLAYER = "facet.bedquality.bed.density.toplayer"; | 53 public static final String I18N_FACET_BED_DENSITY_TOPLAYER = "facet.bedquality.bed.density.toplayer"; |
53 public static final String I18N_FACET_BED_DENSITY_SUBLAYER = "facet.bedquality.bed.density.sublayer"; | 54 public static final String I18N_FACET_BED_DENSITY_SUBLAYER = "facet.bedquality.bed.density.sublayer"; |
54 public static final String I18N_FACET_BED_DIAMETER_TOPLAYER = "facet.bedquality.bed.diameter.toplayer"; | 55 public static final String I18N_FACET_BED_DIAMETER_TOPLAYER = "facet.bedquality.bed.diameter.toplayer"; |
55 public static final String I18N_FACET_BED_DIAMETER_SUBLAYER = "facet.bedquality.bed.diameter.sublayer"; | 56 public static final String I18N_FACET_BED_DIAMETER_SUBLAYER = "facet.bedquality.bed.diameter.sublayer"; |
57 public static final String I18N_FACET_BED_DIAMETER_DATA_TOPLAYER = "facet.bedquality.bed.diameter.data.toplayer"; | |
58 public static final String I18N_FACET_BED_DIAMETER_DATA_SUBLAYER = "facet.bedquality.bed.diameter.data.sublayer"; | |
59 public static final String I18N_FACET_BEDLOAD_DIAMETER_DATA = "facet.bedquality.bedload.diameter.data"; | |
56 public static final String I18N_FACET_BEDLOAD_DIAMETER = "facet.bedquality.bedload.diameter"; | 60 public static final String I18N_FACET_BEDLOAD_DIAMETER = "facet.bedquality.bedload.diameter"; |
57 | 61 |
58 @Override | 62 @Override |
59 public Object computeAdvance(D4EArtifact artifact, String hash, | 63 public Object computeAdvance(D4EArtifact artifact, String hash, |
60 CallContext context, List<Facet> facets, Object old) { | 64 CallContext context, List<Facet> facets, Object old) { |
78 return res; | 82 return res; |
79 } | 83 } |
80 | 84 |
81 generateFacets(context, newFacets, results, getID(), hash); | 85 generateFacets(context, newFacets, results, getID(), hash); |
82 logger.debug("Created " + newFacets.size() + " new Facets."); | 86 logger.debug("Created " + newFacets.size() + " new Facets."); |
83 | 87 generateDataFacets(context, newFacets, access, getID(), hash); |
84 facets.addAll(newFacets); | 88 facets.addAll(newFacets); |
85 | 89 |
86 return res; | 90 return res; |
91 } | |
92 | |
93 private void generateDataFacets( | |
94 CallContext context, | |
95 List<Facet> newFacets, | |
96 BedQualityAccess access, | |
97 String stateId, | |
98 String hash) { | |
99 List<String> diameters = access.getBedDiameter(); | |
100 List<DateRange> ranges = access.getDateRanges(); | |
101 for (int i = 0; i < ranges.size(); i++) { | |
102 DateRange range = ranges.get(i); | |
103 for (String diameter: diameters) { | |
104 int ndxTop = generateIndex(diameter, true); | |
105 int ndxSub = generateIndex(diameter, false); | |
106 String toplayer = | |
107 Resources.getMsg( | |
108 context.getMeta(), I18N_TOPLAYER, I18N_TOPLAYER); | |
109 String sublayer = | |
110 Resources.getMsg( | |
111 context.getMeta(), I18N_SUBLAYER, I18N_SUBLAYER); | |
112 //toplayer | |
113 newFacets.add(new BedDiameterDataFacet( | |
114 ndxTop, | |
115 BED_DIAMETER_DATA_TOP, | |
116 Resources.getMsg( | |
117 context.getMeta(), | |
118 I18N_FACET_BED_DIAMETER_DATA_TOPLAYER, | |
119 I18N_FACET_BED_DIAMETER_DATA_TOPLAYER, | |
120 new Object[] { diameter.toUpperCase(), | |
121 range.getFrom(), range.getTo(), toplayer}), | |
122 ComputeType.ADVANCE, | |
123 stateId, | |
124 hash)); | |
125 //sublayer | |
126 newFacets.add(new BedDiameterDataFacet( | |
127 ndxSub, | |
128 BED_DIAMETER_DATA_SUB, | |
129 Resources.getMsg( | |
130 context.getMeta(), | |
131 I18N_FACET_BED_DIAMETER_DATA_TOPLAYER, | |
132 I18N_FACET_BED_DIAMETER_DATA_TOPLAYER, | |
133 new Object[] { diameter.toUpperCase(), | |
134 range.getFrom(), range.getTo(), sublayer}), | |
135 ComputeType.ADVANCE, | |
136 stateId, | |
137 hash)); | |
138 } | |
139 } | |
140 } | |
141 | |
142 private int generateIndex(String diameter, boolean b) { | |
143 int d = 0; | |
144 if(diameter.equals("d10")) { | |
145 d = 1; | |
146 } | |
147 else if (diameter.equals("d16")) { | |
148 d = 2; | |
149 } | |
150 else if (diameter.equals("d20")) { | |
151 d = 3; | |
152 } | |
153 else if (diameter.equals("d25")) { | |
154 d = 4; | |
155 } | |
156 else if (diameter.equals("d30")) { | |
157 d = 5; | |
158 } | |
159 else if (diameter.equals("d40")) { | |
160 d = 6; | |
161 } | |
162 else if (diameter.equals("d50")) { | |
163 d = 7; | |
164 } | |
165 else if (diameter.equals("d60")) { | |
166 d = 8; | |
167 } | |
168 else if (diameter.equals("d70")) { | |
169 d = 9; | |
170 } | |
171 else if (diameter.equals("d75")) { | |
172 d = 10; | |
173 } | |
174 else if (diameter.equals("d80")) { | |
175 d = 11; | |
176 } | |
177 else if (diameter.equals("d84")) { | |
178 d = 12; | |
179 } | |
180 else if (diameter.equals("d90")) { | |
181 d = 13; | |
182 } | |
183 else if (diameter.equals("dmin")) { | |
184 d = 14; | |
185 } | |
186 else if (diameter.equals("dmax")) { | |
187 d = 15; | |
188 } | |
189 else if (diameter.equals("dm")) { | |
190 d = 16; | |
191 } | |
192 int ndx = d; | |
193 ndx = ndx << 1; | |
194 if (b) { | |
195 ndx += 1; | |
196 } | |
197 ndx = ndx << 3; | |
198 return ndx; | |
87 } | 199 } |
88 | 200 |
89 protected void generateFacets(CallContext context, List<Facet> newFacets, | 201 protected void generateFacets(CallContext context, List<Facet> newFacets, |
90 BedQualityResult[] results, String stateId, String hash) { | 202 BedQualityResult[] results, String stateId, String hash) { |
91 logger.debug("BedQualityState.generateFacets"); | 203 logger.debug("BedQualityState.generateFacets"); |