comparison artifacts/src/main/java/org/dive4elements/river/exports/process/FixWQProcessor.java @ 8364:abef2584c9a7

Fetch current km from context (and remove obsolete or superfluous comments and logging).
author Tom Gottfried <tom@intevation.de>
date Thu, 02 Oct 2014 09:55:31 +0200
parents 9f9857f6c464
children 061e85212d25
comparison
equal deleted inserted replaced
8363:3508d625092f 8364:abef2584c9a7
20 import org.dive4elements.river.artifacts.model.fixings.QWD; 20 import org.dive4elements.river.artifacts.model.fixings.QWD;
21 import org.dive4elements.river.artifacts.model.fixings.QWI; 21 import org.dive4elements.river.artifacts.model.fixings.QWI;
22 import org.dive4elements.river.artifacts.resources.Resources; 22 import org.dive4elements.river.artifacts.resources.Resources;
23 import org.dive4elements.river.exports.DiagramGenerator; 23 import org.dive4elements.river.exports.DiagramGenerator;
24 import org.dive4elements.river.exports.StyledSeriesBuilder; 24 import org.dive4elements.river.exports.StyledSeriesBuilder;
25 import org.dive4elements.river.exports.fixings.FixChartGenerator;
26 import org.dive4elements.river.exports.fixings.FixWQCurveGenerator; 25 import org.dive4elements.river.exports.fixings.FixWQCurveGenerator;
27 import org.dive4elements.river.java2d.ShapeUtils; 26 import org.dive4elements.river.java2d.ShapeUtils;
28 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation; 27 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation;
29 import org.dive4elements.river.jfree.JFreeUtil; 28 import org.dive4elements.river.jfree.JFreeUtil;
30 import org.dive4elements.river.jfree.RiverAnnotation; 29 import org.dive4elements.river.jfree.RiverAnnotation;
37 import org.jfree.data.xy.XYSeries; 36 import org.jfree.data.xy.XYSeries;
38 import org.jfree.ui.RectangleAnchor; 37 import org.jfree.ui.RectangleAnchor;
39 import org.jfree.ui.RectangleInsets; 38 import org.jfree.ui.RectangleInsets;
40 import org.jfree.ui.TextAnchor; 39 import org.jfree.ui.TextAnchor;
41 40
41 import static org.dive4elements.river.exports.injector.InjectorConstants.CURRENT_KM;
42 42
43 public class FixWQProcessor 43 public class FixWQProcessor
44 extends DefaultProcessor 44 extends DefaultProcessor
45 implements FacetTypes 45 implements FacetTypes
46 { 46 {
57 DiagramGenerator generator, 57 DiagramGenerator generator,
58 ArtifactAndFacet bundle, 58 ArtifactAndFacet bundle,
59 ThemeDocument theme, 59 ThemeDocument theme,
60 boolean visible 60 boolean visible
61 ) { 61 ) {
62 // TODO: Simplyfy this processor and move general facets/data to 62 // TODO: Simplify this processor and move general facets/data to
63 // MiscDischargeProcessor or something... 63 // MiscDischargeProcessor or something...
64 String facetType = bundle.getFacetName(); 64 String facetType = bundle.getFacetName();
65 logger.debug("facet: " + facetType + " name: " + bundle.getFacetDescription()); 65 logger.debug("facet: " + facetType + " name: " + bundle.getFacetDescription());
66 if(facetType.startsWith(FIX_SECTOR_AVERAGE_WQ)) { 66 if(facetType.startsWith(FIX_SECTOR_AVERAGE_WQ)) {
67 doSectorAverageOut(generator, bundle, theme, visible); 67 doSectorAverageOut(generator, bundle, theme, visible);
109 false, true, 109 false, true,
110 theme); 110 theme);
111 DateFormat dateFormat = DateFormat.getDateInstance( 111 DateFormat dateFormat = DateFormat.getDateInstance(
112 DateFormat.SHORT); 112 DateFormat.SHORT);
113 113
114 //TODO: W in cm at Gauge!!!
115 series.add(qwd.getQ(), qwd.getW(), false); 114 series.add(qwd.getQ(), qwd.getW(), false);
116 115
117 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( 116 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation(
118 dateFormat.format(qwd.getDate()), 117 dateFormat.format(qwd.getDate()),
119 qwd.getQ(), 118 qwd.getQ(),
148 147
149 if (qwd == null) { 148 if (qwd == null) {
150 logger.debug("doAnalysisEventsOut: qwd == null"); 149 logger.debug("doAnalysisEventsOut: qwd == null");
151 return; 150 return;
152 } 151 }
153 // TODO: W in cm at Gauge!!!
154 //double gaugeDatum = getCurrentGaugeDatum();
155 //boolean atGauge = gaugeDatum != 0d;
156
157 //double factor = atGauge ? 100d : 1d;
158
159 //double w = factor*(qwd.getW()-gaugeDatum);
160 152
161 // Force empty symbol. 153 // Force empty symbol.
162 if (qwd.getInterpolated()) { 154 if (qwd.getInterpolated()) {
163 theme = new ThemeDocument(theme); // prevent potential side effects. 155 theme = new ThemeDocument(theme); // prevent potential side effects.
164 theme.setValue(ThemeDocument.USE_FILL_PAINT, "true"); 156 theme.setValue(ThemeDocument.USE_FILL_PAINT, "true");
217 bundle.getFacetDescription(), 209 bundle.getFacetDescription(),
218 false, true, theme, 210 false, true, theme,
219 qwd.getInterpolated() 211 qwd.getInterpolated()
220 ? ShapeUtils.INTERPOLATED_SHAPE 212 ? ShapeUtils.INTERPOLATED_SHAPE
221 : ShapeUtils.MEASURED_SHAPE); 213 : ShapeUtils.MEASURED_SHAPE);
222
223 // TODO: W in cm at gauge!!!
224 //double gaugeDatum = getCurrentGaugeDatum();
225 //boolean atGauge = gaugeDatum != 0d;
226
227 //double factor = atGauge ? 100d : 1d;
228 //double w = factor*(qwd.getW()-gaugeDatum);
229 214
230 series.add(qwd.getQ(), qwd.getW(), false); 215 series.add(qwd.getQ(), qwd.getW(), false);
231 216
232 if (visible && theme.parseShowPointLabel()) { 217 if (visible && theme.parseShowPointLabel()) {
233 DateFormat dateFormat = DateFormat.getDateInstance( 218 DateFormat dateFormat = DateFormat.getDateInstance(
273 theme, 258 theme,
274 bundle.getFacetDescription(), 259 bundle.getFacetDescription(),
275 500, // number of samples 260 500, // number of samples
276 0.0 , // start 261 0.0 , // start
277 maxQ); // end 262 maxQ); // end
278
279 //TODO: W in cm at gauge!!!
280 // double gaugeDatum = getCurrentGaugeDatum();
281
282 // if (gaugeDatum == 0d) {
283 generator.addAxisSeries(series, axisName, visible);
284 // }
285 /* else {
286 StyledXYSeries series2 = JFreeUtil.sampleFunction2D(
287 func.getFunction(),
288 doc,
289 aaf.getFacetDescription(),
290 500, // number of samples
291 0.0 , // start
292 maxQ); // end
293 addAxisSeries(series2, YAXIS.W.idx, false);
294 // Use second axis at cm if at gauge.
295 for (int i = 0, N = series.getItemCount(); i < N; i++) {
296 series.updateByIndex(
297 i, new Double(100d*(series.getY(i).doubleValue()-gaugeDatum)));
298 }
299 addAxisSeries(series, YAXIS.WCm.idx, visible);
300 }*/
301 } 263 }
302 else { 264 else {
303 logger.warn("doWQCurveOut: maxQ <= 0"); 265 logger.warn("doWQCurveOut: maxQ <= 0");
304 } 266 }
305 } 267 }
320 theme); 282 theme);
321 DateFormat dateFormat = DateFormat.getDateInstance( 283 DateFormat dateFormat = DateFormat.getDateInstance(
322 DateFormat.SHORT); 284 DateFormat.SHORT);
323 285
324 List<XYTextAnnotation> annos = new ArrayList<XYTextAnnotation>(); 286 List<XYTextAnnotation> annos = new ArrayList<XYTextAnnotation>();
325 //TODO: W in cm at Gauge!!! 287
326 for (QWI qw: qws) { 288 for (QWI qw: qws) {
327 series.add(qw.getQ(), qw.getW(), false); 289 series.add(qw.getQ(), qw.getW(), false);
328 290
329 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( 291 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation(
330 dateFormat.format(qw.getDate()), 292 dateFormat.format(qw.getDate()),
467 DiagramGenerator generator, 429 DiagramGenerator generator,
468 ArtifactAndFacet bundle, 430 ArtifactAndFacet bundle,
469 ThemeDocument theme, 431 ThemeDocument theme,
470 boolean visible 432 boolean visible
471 ) { 433 ) {
472 logger.debug("FixWQCurveGenerator: doWQOut");
473 Object data = bundle.getData(generator.getCallContext()); 434 Object data = bundle.getData(generator.getCallContext());
474 if (data instanceof WQKms) { 435 if (data instanceof WQKms) {
475 WQKms wqkms = (WQKms)data; 436 WQKms wqkms = (WQKms)data;
476 // TODO As in doEventsOut, the value-searching should 437 // TODO As in doEventsOut, the value-searching should
477 // be delivered by the facet already (instead of in the Generator). 438 // be delivered by the facet already
478 logger.debug("FixWQCurveGenerator: doWQOut: WQKms");
479 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); 439 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
480 // TODO: Remove dependency to FixChartGenerator. 440 Double ckm = (Double) generator.getCallContext()
481 Double ckm = (Double) generator.getCallContext().getContextValue(FixChartGenerator.CURRENT_KM); 441 .getContextValue(CURRENT_KM);
442
482 if (wqkms == null || wqkms.getKms().length == 0 || ckm == null) { 443 if (wqkms == null || wqkms.getKms().length == 0 || ckm == null) {
483 logger.info("addPointFromWQKms: No event data to show."); 444 logger.info("addPointFromWQKms: No event data to show.");
484 return; 445 return;
485 } 446 }
447
486 double[] kms = wqkms.getKms(); 448 double[] kms = wqkms.getKms();
487 // TODO W in cm at gauge!!!
488 //double gaugeDatum = getCurrentGaugeDatum();
489 //double factor = (gaugeDatum == 0d) ? 1d : 100d;
490 for (int i = 0 ; i< kms.length; i++) { 449 for (int i = 0 ; i< kms.length; i++) {
491 // TODO: Remove dependency to FixWQCurveGenerator. 450 // TODO: Remove dependency to FixWQCurveGenerator.
492 if (Math.abs(kms[i] - ckm) <= FixWQCurveGenerator.EPSILON) { 451 if (Math.abs(kms[i] - ckm) <= FixWQCurveGenerator.EPSILON) {
493 series.add(wqkms.getQ(i), wqkms.getW(i), false); 452 series.add(wqkms.getQ(i), wqkms.getW(i), false);
494 generator.addAxisSeries(series, axisName, visible); 453 generator.addAxisSeries(series, axisName, visible);

http://dive4elements.wald.intevation.org