annotate artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java @ 9556:9b8e8fc1f408

Use facetName in all processors as themeType for legend aggregation.
author gernotbelger
date Tue, 23 Oct 2018 16:26:58 +0200
parents d8e753d0fdb9
children
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());
9123
1cc7653ca84f Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents: 8856
diff changeset
53 CallContext context = generator.getContext();
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
9556
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
56 final String facetName = bundle.getFacetName();
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
57
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
58 XYSeries series = new StyledXYSeries(facetName,
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
59 bundle.getFacetDescription(), theme);
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
60
7289
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
61 // Handle non WKms data.
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
62 if (
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
63 bundle.getFacetName().equals(FacetTypes.FLOW_VELOCITY_WATERLEVEL)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
64 ) {
7289
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
65 FastFlowVelocityMeasurementValue fData =
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
66 (FastFlowVelocityMeasurementValue) data;
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
67 double[][] points = new double[][] {
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
68 {fData.getStation()},{fData.getW()}};
7289
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
69 StyledSeriesBuilder.addPoints(series, points, true);
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
70 generator.addAxisSeries(series, axisName, visible);
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
71 return;
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
72 }
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
73
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
74 // Handle WKms data.
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
75 WKms wkms = (WKms) data;
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
76
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
77 if (
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
78 bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_C)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
79 ) {
7113
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
80 // Add corrected values
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
81 WQCKms wqckms = (WQCKms) data;
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
82 int size = wqckms.size();
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
83 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
84 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
85 }
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
86 } else {
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
87 StyledSeriesBuilder.addPoints(series, wkms);
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
88 }
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
89 generator.addAxisSeries(series, axisName, visible);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
90
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
91 // 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
92 double bandWidth = theme.parseBandWidth();
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
93 if (bandWidth > 0 ) {
9556
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
94 XYSeries seriesDown = new StyledXYSeries(facetName,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
95 "band " + bundle.getFacetDescription(), false, theme);
9556
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
96 XYSeries seriesUp = new StyledXYSeries(facetName,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
97 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
98 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
99 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
100
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
101 StyledAreaSeriesCollection area =
9556
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
102 new StyledAreaSeriesCollection(facetName,theme);
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
103 area.addSeries(seriesUp);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
104 area.addSeries(seriesDown);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
105 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN);
9496
d8e753d0fdb9 stripedArea introduced for Assessment Scheme/Bewertungsschema
gernotbelger
parents: 9123
diff changeset
106 generator.addAxisDataset(area, axisName, visible);
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
107 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
108
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
109 if (bundle.getFacetName().equals(FacetTypes.LONGITUDINAL_W)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
110 || bundle.getFacetName().equals(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
111 FacetTypes.DISCHARGE_LONGITUDINAL_W)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
112 || bundle.getFacetName().equals(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
113 FacetTypes.STATIC_WQKMS_W)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
114 || bundle.getFacetName().equals(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
115 FacetTypes.DISCHARGE_LONGITUDINAL_C)) {
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
116 /* 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
117 * see flys/issue1290 for details */
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7510
diff changeset
118 log.debug("Check for RTL data: "+ wkms.guessRTLData());
7081
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
119 generator.setInverted(wkms.guessRTLData());
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
120 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
121 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
122
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
123 @Override
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
124 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
125 XYChartGenerator generator,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
126 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
127 ThemeDocument theme,
5341
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
128 boolean visible,
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
129 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
130 {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7510
diff changeset
131 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
132
9123
1cc7653ca84f Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents: 8856
diff changeset
133 CallContext context = generator.getContext();
7510
01d1ed168b24 WOutProcessor: Reorder statements so that function-call-debug-msg comes first.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7289
diff changeset
134
9556
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
135 final String facetName = bundle.getFacetName();
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
136
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
137 XYSeries series = new StyledXYSeries(facetName,
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
138 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
139
7510
01d1ed168b24 WOutProcessor: Reorder statements so that function-call-debug-msg comes first.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7289
diff changeset
140 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
141
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
142 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
143 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
144
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
145 // 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
146 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
147 if (bandWidth > 0 ) {
9556
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
148 XYSeries seriesDown = new StyledXYSeries(facetName,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
149 "band " + bundle.getFacetDescription(), false, theme);
9556
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
150 XYSeries seriesUp = new StyledXYSeries(facetName,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
151 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
152 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
153 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
154
9556
9b8e8fc1f408 Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents: 9496
diff changeset
155 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(facetName,theme);
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
156 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
157 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
158 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
159 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
160 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
161
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
162 if (bundle.getFacetName().equals(FacetTypes.LONGITUDINAL_W)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
163 || bundle.getFacetName().equals(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
164 FacetTypes.DISCHARGE_LONGITUDINAL_W)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
165 || bundle.getFacetName().equals(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
166 FacetTypes.STATIC_WQKMS_W)) {
6643
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
167 /* 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
168 * see flys/issue1290 for details */
7081
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
169 generator.setInverted(wkms.guessRTLData());
6643
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
170 }
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
171 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
172
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
173 @Override
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
174 public String getAxisLabel(DiagramGenerator generator) {
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
175 D4EArtifact flys = (D4EArtifact) generator.getMaster();
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
176
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
177 String unit = RiverUtils.getRiver(flys).getWstUnit().getName();
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
178
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
179 return generator.msg(
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
180 I18N_AXIS_LABEL,
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
181 I18N_AXIS_LABEL_DEFAULT,
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
182 new Object[] { unit });
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
183 }
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
184
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
185 @Override
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
186 public boolean canHandle(String facetType) {
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
187 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
188 return false;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
189 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
190
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
191 if (facetType.equals(FacetTypes.LONGITUDINAL_W)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
192 || facetType.equals(FacetTypes.STATIC_WKMS)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
193 || facetType.equals(FacetTypes.HEIGHTMARKS_POINTS)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
194 || facetType.equals(FacetTypes.STATIC_WQKMS)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
195 || 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
196 || 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
197 || facetType.equals(FacetTypes.DISCHARGE_LONGITUDINAL_W)
7121
30cec9369608 Cosmetics
Andre Heinecke <aheinecke@intevation.de>
parents: 7114
diff changeset
198 || 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
199 return true;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
200 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
201 return false;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
202 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
203 }
5341
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
204 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org