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
30cec9369608 Cosmetics
Andre Heinecke <aheinecke@intevation.de>
parents: 7114
diff changeset
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 :

http://dive4elements.wald.intevation.org