Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java @ 8472:3f505fba522f
(issue1772) Use 0.001km tolarance instead of 0.1 to find matching km.
There is no sense to use a define here. I will not write
static final double NULLPOINTNULLNULLONE=0.001 if i just want to use that
value and not any other value which may make sense in some other place.
Using hardcoded values can have its merits and makes the code easier to
read.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Tue, 18 Nov 2014 15:24:40 +0100 |
parents | e4606eae8ea5 |
children | 5e38e2924c07 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5800
diff
changeset
|
9 package org.dive4elements.river.exports.process; |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
10 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
11 import org.apache.log4j.Logger; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
12 import org.jfree.data.xy.XYSeries; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
13 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5800
diff
changeset
|
14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5800
diff
changeset
|
15 import org.dive4elements.artifacts.CallContext; |
7084
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
16 import org.dive4elements.river.artifacts.D4EArtifact; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5800
diff
changeset
|
17 import org.dive4elements.river.artifacts.model.FacetTypes; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5800
diff
changeset
|
18 import org.dive4elements.river.artifacts.model.WKms; |
7113
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
19 import org.dive4elements.river.artifacts.model.WQCKms; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5800
diff
changeset
|
20 import org.dive4elements.river.exports.StyledSeriesBuilder; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5800
diff
changeset
|
21 import org.dive4elements.river.exports.XYChartGenerator; |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
22 import org.dive4elements.river.exports.DiagramGenerator; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5800
diff
changeset
|
23 import org.dive4elements.river.jfree.StyledAreaSeriesCollection; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5800
diff
changeset
|
24 import org.dive4elements.river.jfree.StyledXYSeries; |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6643
diff
changeset
|
25 import org.dive4elements.river.themes.ThemeDocument; |
7289
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
26 import org.dive4elements.river.model.FlowVelocityMeasurementValue.FastFlowVelocityMeasurementValue; |
7084
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
27 import org.dive4elements.river.utils.RiverUtils; |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
28 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
29 /** |
5800
397ff862b417
WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5341
diff
changeset
|
30 * Add data to chart/generator. |
397ff862b417
WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5341
diff
changeset
|
31 * |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
32 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a> |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
33 */ |
7057
1011a40ee79c
Add Default Processor implementation and make processors inherit it.
Andre Heinecke <aheinecke@intevation.de>
parents:
6905
diff
changeset
|
34 public class WOutProcessor extends DefaultProcessor { |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
35 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7510
diff
changeset
|
36 /** Private log. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7510
diff
changeset
|
37 private static final Logger log = |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
38 Logger.getLogger(WOutProcessor.class); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
39 |
7084
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
40 public static final String I18N_AXIS_LABEL = |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
41 "chart.longitudinal.section.yaxis.label"; |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
42 |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
43 public static final String I18N_AXIS_LABEL_DEFAULT = "W [NN + m]"; |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
44 |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
45 @Override |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
46 public void doOut( |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
47 DiagramGenerator generator, |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
48 ArtifactAndFacet bundle, |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
49 ThemeDocument theme, |
7289
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
50 boolean visible |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
51 ) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7510
diff
changeset
|
52 log.debug("Processing facet: " + bundle.getFacetName()); |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
53 CallContext context = generator.getCallContext(); |
7113
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
54 Object data = bundle.getData(context); |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
55 |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
56 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
57 |
7289
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
58 // Handle non WKms data. |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
59 if (bundle.getFacetName().equals(FacetTypes.FLOW_VELOCITY_WATERLEVEL)) { |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
60 FastFlowVelocityMeasurementValue fData = |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
61 (FastFlowVelocityMeasurementValue) data; |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
62 double[][] points = new double[][] {{fData.getStation()},{fData.getW()}}; |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
63 StyledSeriesBuilder.addPoints(series, points, true); |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
64 generator.addAxisSeries(series, axisName, visible); |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
65 return; |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
66 } |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
67 |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
68 // Handle WKms data. |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
69 WKms wkms = (WKms) data; |
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
70 |
7113
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
71 if (bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_C)) { |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
72 // Add corrected values |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
73 WQCKms wqckms = (WQCKms) data; |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
74 int size = wqckms.size(); |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
75 for (int i = 0; i < size; i++) { |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
76 series.add(wqckms.getKm(i), wqckms.getC(i), false); |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
77 } |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
78 } else { |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
79 StyledSeriesBuilder.addPoints(series, wkms); |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
80 } |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
81 generator.addAxisSeries(series, axisName, visible); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
82 |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
83 // If a "band around the curve shall be drawn, add according area. |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
84 double bandWidth = theme.parseBandWidth(); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
85 if (bandWidth > 0 ) { |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
86 XYSeries seriesDown = new StyledXYSeries( |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
87 "band " + bundle.getFacetDescription(), false, theme); |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
88 XYSeries seriesUp = new StyledXYSeries( |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
89 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme); |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
90 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
91 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
92 |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
93 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
94 area.addSeries(seriesUp); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
95 area.addSeries(seriesDown); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
96 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
97 generator.addAreaSeries(area, axisName, visible); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
98 } |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
99 |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
100 if (bundle.getFacetName().equals(FacetTypes.LONGITUDINAL_W) || |
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
101 bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) || |
7113
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
102 bundle.getFacetName().equals(FacetTypes.STATIC_WQKMS_W) || |
099f9faf5bf9
Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
7089
diff
changeset
|
103 bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_C)) { |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
104 /* Only use W values to check if the diagram should be inverted |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
105 * see flys/issue1290 for details */ |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7510
diff
changeset
|
106 log.debug("Check for RTL data: "+ wkms.guessRTLData()); |
7081
3c4efd4b2c19
Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents:
7075
diff
changeset
|
107 generator.setInverted(wkms.guessRTLData()); |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
108 } |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
109 } |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
110 |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
111 @Override |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
112 public void doOut( |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
113 XYChartGenerator generator, |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
114 ArtifactAndFacet bundle, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6643
diff
changeset
|
115 ThemeDocument theme, |
5341
547041487266
Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4447
diff
changeset
|
116 boolean visible, |
547041487266
Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4447
diff
changeset
|
117 int index) |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
118 { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7510
diff
changeset
|
119 log.debug("doOut"); |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
120 |
7510
01d1ed168b24
WOutProcessor: Reorder statements so that function-call-debug-msg comes first.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7289
diff
changeset
|
121 CallContext context = generator.getCallContext(); |
01d1ed168b24
WOutProcessor: Reorder statements so that function-call-debug-msg comes first.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7289
diff
changeset
|
122 |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
123 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
124 |
7510
01d1ed168b24
WOutProcessor: Reorder statements so that function-call-debug-msg comes first.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7289
diff
changeset
|
125 WKms wkms = (WKms) bundle.getData(context); |
01d1ed168b24
WOutProcessor: Reorder statements so that function-call-debug-msg comes first.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7289
diff
changeset
|
126 |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
127 StyledSeriesBuilder.addPoints(series, wkms); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
128 generator.addAxisSeries(series, index, visible); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
129 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
130 // If a "band around the curve shall be drawn, add according area. |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6643
diff
changeset
|
131 double bandWidth = theme.parseBandWidth(); |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
132 if (bandWidth > 0 ) { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
133 XYSeries seriesDown = new StyledXYSeries( |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
134 "band " + bundle.getFacetDescription(), false, theme); |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
135 XYSeries seriesUp = new StyledXYSeries( |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
136 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme); |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
137 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
138 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
139 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
140 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
141 area.addSeries(seriesUp); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
142 area.addSeries(seriesDown); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
143 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
144 generator.addAreaSeries(area, index, visible); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
145 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
146 |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
147 if (bundle.getFacetName().equals(FacetTypes.LONGITUDINAL_W) || |
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
148 bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) || |
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
149 bundle.getFacetName().equals(FacetTypes.STATIC_WQKMS_W)) { |
6643
bf76346864fd
Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents:
6635
diff
changeset
|
150 /* Only use W values to check if the diagram should be inverted |
bf76346864fd
Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents:
6635
diff
changeset
|
151 * see flys/issue1290 for details */ |
7081
3c4efd4b2c19
Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents:
7075
diff
changeset
|
152 generator.setInverted(wkms.guessRTLData()); |
6643
bf76346864fd
Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents:
6635
diff
changeset
|
153 } |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
154 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
155 |
7084
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
156 @Override |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
157 public String getAxisLabel(DiagramGenerator generator) { |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
158 D4EArtifact flys = (D4EArtifact) generator.getMaster(); |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
159 |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
160 String unit = RiverUtils.getRiver(flys).getWstUnit().getName(); |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
161 |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
162 return generator.msg( |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
163 I18N_AXIS_LABEL, |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
164 I18N_AXIS_LABEL_DEFAULT, |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
165 new Object[] { unit }); |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
166 } |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
167 |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
168 @Override |
5800
397ff862b417
WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5341
diff
changeset
|
169 public boolean canHandle(String facetType) { |
397ff862b417
WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5341
diff
changeset
|
170 if (facetType == null) { |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
171 return false; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
172 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
173 |
5800
397ff862b417
WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5341
diff
changeset
|
174 if (facetType.equals(FacetTypes.LONGITUDINAL_W) |
397ff862b417
WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5341
diff
changeset
|
175 || facetType.equals(FacetTypes.STATIC_WKMS) |
397ff862b417
WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5341
diff
changeset
|
176 || facetType.equals(FacetTypes.HEIGHTMARKS_POINTS) |
397ff862b417
WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5341
diff
changeset
|
177 || facetType.equals(FacetTypes.STATIC_WQKMS) |
397ff862b417
WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5341
diff
changeset
|
178 || facetType.equals(FacetTypes.STATIC_WQKMS_W) |
7289
015e12aac2dc
issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7130
diff
changeset
|
179 || facetType.equals(FacetTypes.FLOW_VELOCITY_WATERLEVEL) |
7114
e3333da25634
Actually commit the canHandle part of the last revision. (WQCKms in WOut proc.)
Andre Heinecke <aheinecke@intevation.de>
parents:
7113
diff
changeset
|
180 || facetType.equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) |
7121 | 181 || facetType.equals(FacetTypes.DISCHARGE_LONGITUDINAL_C)) { |
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
182 return true; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
183 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
184 return false; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
185 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
186 } |
5341
547041487266
Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4447
diff
changeset
|
187 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |