Mercurial > dive4elements > river
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); |