Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/process/HistoricalDischargeProcessor.java @ 8260:48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 11 Sep 2014 17:37:03 +0200 |
parents | e4606eae8ea5 |
children | 8dde253e04f7 |
rev | line source |
---|---|
8188
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package org.dive4elements.river.exports.process; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 import org.apache.log4j.Logger; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 import org.dive4elements.artifacts.CallContext; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import org.dive4elements.river.artifacts.model.FacetTypes; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 import org.dive4elements.river.artifacts.model.WQKms; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import org.dive4elements.river.exports.DiagramGenerator; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import org.dive4elements.river.exports.StyledSeriesBuilder; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import org.dive4elements.river.jfree.StyledXYSeries; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import org.dive4elements.river.themes.ThemeDocument; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import org.jfree.data.xy.XYSeries; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 public class HistoricalDischargeProcessor |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 extends DefaultProcessor |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 implements FacetTypes |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 { |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8188
diff
changeset
|
20 private final static Logger log = |
8188
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 Logger.getLogger(HistoricalDischargeProcessor.class); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 /** Station for which the diagram is shown. */ |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 private double km; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 /** Tolerance for comparison of kilometers. */ |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 public static final double KM_EPSILON = 0.001d; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 /** This processor needs to be constructed with a given km. */ |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 public HistoricalDischargeProcessor() { |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 km = Double.NaN; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 } |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 public HistoricalDischargeProcessor(double km) { |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 this.km = km; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 } |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 /** Process data, add it to plot. */ |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 @Override |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 public void doOut( |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 DiagramGenerator generator, |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 ArtifactAndFacet bundle, |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 ThemeDocument theme, |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 boolean visible |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 ) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8188
diff
changeset
|
49 log.debug("do out: " + bundle.getFacetName()); |
8188
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 CallContext context = generator.getCallContext(); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 Object data = bundle.getData(context); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 if (data instanceof WQKms) { |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 doDischargeOut(generator, bundle, theme, visible); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 } |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 } |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 /** True if this processor knows how to deal with facetType. */ |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 @Override |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 public boolean canHandle(String facetType) { |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 return HISTORICAL_DISCHARGE_WQ_CURVE.equals(facetType); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 } |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 /** The station of the current calculation/view. */ |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 protected double getKm() { |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 return km; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 } |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 /** |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 * Add series with discharge curve to diagram. |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 */ |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 protected void doDischargeOut( |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 DiagramGenerator generator, |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 ArtifactAndFacet bundle, |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 ThemeDocument theme, |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 boolean visible |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 ) { |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 CallContext context = generator.getCallContext(); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 WQKms data = (WQKms)bundle.getData(context); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 XYSeries series = new StyledXYSeries(bundle.getFacetName(), theme); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 double[][] wqData = new double[2][data.size()]; |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 for (int i = 0; i < data.size(); i++) { |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 wqData[0][i] = data.getQ(i); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 wqData[1][i] = data.getW(i); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 } |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 StyledSeriesBuilder.addPoints(series, wqData, false); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 generator.addAxisSeries(series, axisName, visible); |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 } |
407c9598352f
Use processors for historical discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 } |