comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/SQRelation.java @ 8264:4d99606a844e

SQ relation overview is now a single chart containing all fractions. * Added new facet types. * Add new facets for the overview chart. * Removed generator code for the old overview.
author Raimund Renkert <rrenkert@intevation.de>
date Fri, 12 Sep 2014 14:55:42 +0200
parents af13ceeba52a
children e8283197d889
comparison
equal deleted inserted replaced
8262:9321b0cd4ad4 8264:4d99606a844e
84 SQ_D_OUTLIER_CURVE, SQ_E_OUTLIER_CURVE, SQ_F_OUTLIER_CURVE 84 SQ_D_OUTLIER_CURVE, SQ_E_OUTLIER_CURVE, SQ_F_OUTLIER_CURVE
85 }, 85 },
86 { SQ_A_OUTLIER_MEASUREMENT, SQ_B_OUTLIER_MEASUREMENT, 86 { SQ_A_OUTLIER_MEASUREMENT, SQ_B_OUTLIER_MEASUREMENT,
87 SQ_C_OUTLIER_MEASUREMENT, SQ_D_OUTLIER_MEASUREMENT, 87 SQ_C_OUTLIER_MEASUREMENT, SQ_D_OUTLIER_MEASUREMENT,
88 SQ_E_OUTLIER_MEASUREMENT, SQ_F_OUTLIER_MEASUREMENT 88 SQ_E_OUTLIER_MEASUREMENT, SQ_F_OUTLIER_MEASUREMENT
89 }
90 };
91
92 public static final String [][] OV_FACET_NAMES = {
93 { SQ_A_CURVE_OV, SQ_B_CURVE_OV, SQ_C_CURVE_OV,
94 SQ_D_CURVE_OV, SQ_E_CURVE_OV, SQ_F_CURVE_OV
95 },
96 { SQ_A_MEASUREMENT_OV, SQ_B_MEASUREMENT_OV, SQ_C_MEASUREMENT_OV,
97 SQ_D_MEASUREMENT_OV, SQ_E_MEASUREMENT_OV, SQ_F_MEASUREMENT_OV
98 },
99 { SQ_A_OUTLIER_OV, SQ_B_OUTLIER_OV, SQ_C_OUTLIER_OV,
100 SQ_D_OUTLIER_OV, SQ_E_OUTLIER_OV, SQ_F_OUTLIER_OV
101 },
102 { SQ_A_OUTLIER_CURVE_OV, SQ_B_OUTLIER_CURVE_OV, SQ_C_OUTLIER_CURVE_OV,
103 SQ_D_OUTLIER_CURVE_OV, SQ_E_OUTLIER_CURVE_OV, SQ_F_OUTLIER_CURVE_OV
104 },
105 { SQ_A_OUTLIER_MEASUREMENT_OV, SQ_B_OUTLIER_MEASUREMENT_OV,
106 SQ_C_OUTLIER_MEASUREMENT_OV, SQ_D_OUTLIER_MEASUREMENT_OV,
107 SQ_E_OUTLIER_MEASUREMENT_OV, SQ_F_OUTLIER_MEASUREMENT_OV
89 } 108 }
90 }; 109 };
91 110
92 111
93 static { 112 static {
107 name, FACET_NAMES[CURVE_INDEX]) 126 name, FACET_NAMES[CURVE_INDEX])
108 || StringUtils.contains( 127 || StringUtils.contains(
109 name, FACET_NAMES[OUTLIER_INDEX]) 128 name, FACET_NAMES[OUTLIER_INDEX])
110 || StringUtils.contains( 129 || StringUtils.contains(
111 name, FACET_NAMES[MEASURREMENT_INDEX]) 130 name, FACET_NAMES[MEASURREMENT_INDEX])
131 || StringUtils.contains(
132 name, OV_FACET_NAMES[CURVE_INDEX])
133 || StringUtils.contains(
134 name, OV_FACET_NAMES[OUTLIER_INDEX])
135 || StringUtils.contains(
136 name, OV_FACET_NAMES[MEASURREMENT_INDEX])
112 ) { 137 ) {
113 // TODO: Only the last should be active. 138 // TODO: Only the last should be active.
114 return Boolean.TRUE; 139 return Boolean.TRUE;
115 } 140 }
116 141
117 if (StringUtils.contains( 142 if (StringUtils.contains(
118 name, FACET_NAMES[OUTLIER_CURVE_INDEX]) 143 name, FACET_NAMES[OUTLIER_CURVE_INDEX])
119 || StringUtils.contains( 144 || StringUtils.contains(
120 name, FACET_NAMES[OUTLIER_MEASUREMENT_INDEX]) 145 name, FACET_NAMES[OUTLIER_MEASUREMENT_INDEX])
146 || StringUtils.contains(
147 name, OV_FACET_NAMES[OUTLIER_CURVE_INDEX])
148 || StringUtils.contains(
149 name, OV_FACET_NAMES[OUTLIER_MEASUREMENT_INDEX])
121 ) { 150 ) {
122 return Boolean.FALSE; 151 return Boolean.FALSE;
123 } 152 }
124 153
125 return null; 154 return null;
179 ) { 208 ) {
180 boolean debug = log.isDebugEnabled(); 209 boolean debug = log.isDebugEnabled();
181 210
182 CallMeta meta = context.getMeta(); 211 CallMeta meta = context.getMeta();
183 String stateId = getID(); 212 String stateId = getID();
184 for (int i = 0; i < 6; i++) {
185 container.add(new SQOverviewFacet(
186 i,
187 i,
188 "sq_chart_overview",
189 Resources.getMsg(
190 meta,
191 I18N_FACET_CURVE,
192 I18N_FACET_CURVE
193 ),
194 hash,
195 getID()
196 ));
197 }
198 for (int res = 0, n = sqr.length; res < n; res++) { 213 for (int res = 0, n = sqr.length; res < n; res++) {
199 214
200 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; i++) { 215 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; i++) {
201 SQFractionResult result = sqr[res].getFraction(i); 216 SQFractionResult result = sqr[res].getFraction(i);
202 217
216 ), 231 ),
217 hash, 232 hash,
218 stateId 233 stateId
219 )); 234 ));
220 235
236 container.add(new SQCurveFacet(
237 res,
238 i,
239 getFractionOverviewFacetname(CURVE_INDEX, i),
240 sqr[res].getFractionName(i) + " - " +
241 Resources.getMsg(
242 meta,
243 I18N_FACET_CURVE,
244 I18N_FACET_CURVE
245 ),
246 hash,
247 stateId
248 ));
249
221 for (int j = 0, C = result.numIterations()-1; j < C; j++) { 250 for (int j = 0, C = result.numIterations()-1; j < C; j++) {
222 251
223 Object [] round = new Object [] { j + 1 }; 252 Object [] round = new Object [] { j + 1 };
224 253
225 int index = res; 254 int index = res;
235 264
236 container.add(new SQOutlierFacet( 265 container.add(new SQOutlierFacet(
237 index, 266 index,
238 i, 267 i,
239 getFractionFacetname(OUTLIER_INDEX, i), 268 getFractionFacetname(OUTLIER_INDEX, i),
269 Resources.getMsg(
270 meta,
271 I18N_FACET_OUTLIERS,
272 I18N_FACET_OUTLIERS,
273 round
274 ),
275 hash,
276 stateId
277 ));
278 container.add(new SQOutlierFacet(
279 index,
280 i,
281 getFractionOverviewFacetname(OUTLIER_INDEX, i),
282 sqr[res].getFractionName(i) + " - " +
240 Resources.getMsg( 283 Resources.getMsg(
241 meta, 284 meta,
242 I18N_FACET_OUTLIERS, 285 I18N_FACET_OUTLIERS,
243 I18N_FACET_OUTLIERS, 286 I18N_FACET_OUTLIERS,
244 round 287 round
258 round 301 round
259 ), 302 ),
260 hash, 303 hash,
261 stateId 304 stateId
262 )); 305 ));
306 container.add(new SQOutlierCurveFacet(
307 index,
308 i,
309 getFractionOverviewFacetname(OUTLIER_CURVE_INDEX, i),
310 sqr[res].getFractionName(i) + " - " +
311 Resources.getMsg(
312 meta,
313 I18N_FACET_OUTLIER_CURVE,
314 I18N_FACET_OUTLIER_CURVE,
315 round
316 ),
317 hash,
318 stateId
319 ));
263 320
264 container.add(new SQOutlierMeasurementFacet( 321 container.add(new SQOutlierMeasurementFacet(
265 index, 322 index,
266 i, 323 i,
267 getFractionFacetname(OUTLIER_MEASUREMENT_INDEX, i), 324 getFractionFacetname(OUTLIER_MEASUREMENT_INDEX, i),
325 Resources.getMsg(
326 meta,
327 I18N_FACET_OUTLIER_MEASUREMENT,
328 I18N_FACET_OUTLIER_MEASUREMENT,
329 round
330 ),
331 hash,
332 stateId
333 ));
334 container.add(new SQOutlierMeasurementFacet(
335 index,
336 i,
337 getFractionOverviewFacetname(OUTLIER_MEASUREMENT_INDEX, i),
338 sqr[res].getFractionName(i) + " - " +
268 Resources.getMsg( 339 Resources.getMsg(
269 meta, 340 meta,
270 I18N_FACET_OUTLIER_MEASUREMENT, 341 I18N_FACET_OUTLIER_MEASUREMENT,
271 I18N_FACET_OUTLIER_MEASUREMENT, 342 I18N_FACET_OUTLIER_MEASUREMENT,
272 round 343 round
286 I18N_FACET_MEASUREMENTS 357 I18N_FACET_MEASUREMENTS
287 ), 358 ),
288 hash, 359 hash,
289 stateId 360 stateId
290 )); 361 ));
362 container.add(new SQMeasurementFacet(
363 res,
364 i,
365 getFractionOverviewFacetname(MEASURREMENT_INDEX, i),
366 sqr[res].getFractionName(i) + " - " +
367 Resources.getMsg(
368 meta,
369 I18N_FACET_MEASUREMENTS,
370 I18N_FACET_MEASUREMENTS
371 ),
372 hash,
373 stateId
374 ));
291 } // for all fractions 375 } // for all fractions
292 } // for all results 376 } // for all results
293 } 377 }
294 378
295 protected static String getFractionFacetname(int type, int idx) { 379 protected static String getFractionFacetname(int type, int idx) {
297 log.debug("getFractionFacetname(): " + type + " | " + idx); 381 log.debug("getFractionFacetname(): " + type + " | " + idx);
298 } 382 }
299 type %= FACET_NAMES.length; 383 type %= FACET_NAMES.length;
300 return FACET_NAMES[type][idx % FACET_NAMES[type].length]; 384 return FACET_NAMES[type][idx % FACET_NAMES[type].length];
301 } 385 }
386
387 protected static String getFractionOverviewFacetname(int type, int idx) {
388 if (log.isDebugEnabled()) {
389 log.debug("getFractionOverviewFacetname(): " + type + " | " + idx);
390 }
391 type %= OV_FACET_NAMES.length;
392 return OV_FACET_NAMES[type][idx % OV_FACET_NAMES[type].length];
393 }
302 } 394 }
303 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 395 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org