annotate artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java @ 7067:eb24d5203d17 generator-refactoring

Add second doOut implementations to work with diagram generator
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 20 Sep 2013 14:54:26 +0200
parents 1011a40ee79c
children 253d80af5b7f
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;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
16 import org.dive4elements.river.artifacts.model.FacetTypes;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
17 import org.dive4elements.river.artifacts.model.WKms;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
18 import org.dive4elements.river.exports.StyledSeriesBuilder;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
19 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
20 import org.dive4elements.river.exports.DiagramGenerator;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
21 import org.dive4elements.river.jfree.StyledAreaSeriesCollection;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
22 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
23 import org.dive4elements.river.themes.ThemeDocument;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
24 import org.dive4elements.river.utils.DataUtil;
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
25
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
26 /**
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
27 * Add data to chart/generator.
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
28 *
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
29 * @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
30 */
7057
1011a40ee79c Add Default Processor implementation and make processors inherit it.
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
31 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
32
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
33 /** Private logger. */
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
34 private static final Logger logger =
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
35 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
36
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
37 @Override
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
38 public void doOut(
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
39 DiagramGenerator generator,
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
40 ArtifactAndFacet aaf,
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
41 ThemeDocument theme,
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
42 boolean visible) {
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
43 CallContext context = generator.getCallContext();
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
44 WKms wkms = (WKms) aaf.getData(context);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
45
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
46 logger.debug("doOut");
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
47
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
48 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
49
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
50 StyledSeriesBuilder.addPoints(series, wkms);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
51 generator.addAxisSeries(series, axisName, visible);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
52
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
53 // 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
54 double bandWidth = theme.parseBandWidth();
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
55 if (bandWidth > 0 ) {
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
56 XYSeries seriesDown = new StyledXYSeries(
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
57 "band " + aaf.getFacetDescription(), false, theme);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
58 XYSeries seriesUp = new StyledXYSeries(
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
59 aaf.getFacetDescription()+"+/-"+bandWidth, false, theme);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
60 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
61 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
62
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
63 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
64 area.addSeries(seriesUp);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
65 area.addSeries(seriesDown);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
66 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
67 generator.addAreaSeries(area, axisName, visible);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
68 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
69
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
70 if (aaf.getFacetName().equals(FacetTypes.LONGITUDINAL_W) ||
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
71 aaf.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) ||
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
72 aaf.getFacetName().equals(FacetTypes.STATIC_WQKMS_W)) {
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
73 /* 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
74 * see flys/issue1290 for details */
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
75 invertAxis(generator, wkms);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
76 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
77 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
78
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
79 @Override
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
80 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
81 XYChartGenerator generator,
5341
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
82 ArtifactAndFacet aaf,
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
83 ThemeDocument theme,
5341
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
84 boolean visible,
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
85 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
86 {
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
87 CallContext context = generator.getCallContext();
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
88 WKms wkms = (WKms) aaf.getData(context);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
89
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
90 logger.debug("doOut");
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
91
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
92 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
93
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
94 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
95 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
96
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
97 // 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
98 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
99 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
100 XYSeries seriesDown = new StyledXYSeries(
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
101 "band " + aaf.getFacetDescription(), false, theme);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
102 XYSeries seriesUp = new StyledXYSeries(
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
103 aaf.getFacetDescription()+"+/-"+bandWidth, false, theme);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
104 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
105 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
106
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
107 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
108 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
109 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
110 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
111 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
112 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
113
6643
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
114 if (aaf.getFacetName().equals(FacetTypes.LONGITUDINAL_W) ||
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
115 aaf.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) ||
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
116 aaf.getFacetName().equals(FacetTypes.STATIC_WQKMS_W)) {
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
117 /* 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
118 * see flys/issue1290 for details */
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
119 invertAxis(generator, wkms);
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
120 }
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
121 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
122
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
123 /**
5341
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
124 * Returns true if facettype is longitutinal_section.w .
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
125 */
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
126 @Override
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
127 public boolean canHandle(String facetType) {
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
128 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
129 return false;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
130 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
131
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
132 if (facetType.equals(FacetTypes.LONGITUDINAL_W)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
133 || facetType.equals(FacetTypes.STATIC_WKMS)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
134 || facetType.equals(FacetTypes.HEIGHTMARKS_POINTS)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
135 || facetType.equals(FacetTypes.STATIC_WQKMS)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
136 || facetType.equals(FacetTypes.STATIC_WQKMS_W)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
137 || facetType.equals(FacetTypes.DISCHARGE_LONGITUDINAL_W))
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
138 {
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
139 return true;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
140 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
141 return false;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
142 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
143
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 * This method determines - taking JFreeCharts auto x value ordering into
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
146 * account - if the x axis need to be inverted. Waterlines in these charts
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
147 * should decrease.
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
148 *
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
149 * @param wkms The data object that stores the x and y values used for this
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
150 * chart.
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
151 */
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
152 // TODO Remove
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
153 public void invertAxis(XYChartGenerator generator, WKms wkms) {
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
154 boolean wsUp = wkms.guessWaterIncreasing();
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
155 boolean kmUp = DataUtil.guessWaterIncreasing(wkms.allKms());
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
156 int size = wkms.size();
6635
3aa6c1f5ddc3 Do not invert chart when adding point data. (issue1290)
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
157 boolean inv = ((wsUp && kmUp) || (!wsUp && !kmUp)) && size > 1;
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
158
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
159 if (logger.isDebugEnabled()) {
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
160 logger.debug("(Wkms)Values : " + size);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
161 if (size > 0) {
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
162 logger.debug("Start km: " + wkms.getKm(0));
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
163 logger.debug("End km: " + wkms.getKm(size-1));
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
164 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
165 logger.debug("wsUp: " + wsUp);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
166 logger.debug("kmUp: " + kmUp);
6635
3aa6c1f5ddc3 Do not invert chart when adding point data. (issue1290)
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
167 if (size == 1) {
3aa6c1f5ddc3 Do not invert chart when adding point data. (issue1290)
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
168 logger.debug("InvertAxis not inverting because we have just one km");
3aa6c1f5ddc3 Do not invert chart when adding point data. (issue1290)
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
169 }
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
170 logger.debug("inv: " + inv);
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 generator.setInverted(inv);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
173 }
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
174 public void invertAxis(DiagramGenerator generator, WKms wkms) {
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
175 boolean wsUp = wkms.guessWaterIncreasing();
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
176 boolean kmUp = DataUtil.guessWaterIncreasing(wkms.allKms());
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
177 int size = wkms.size();
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
178 boolean inv = ((wsUp && kmUp) || (!wsUp && !kmUp)) && size > 1;
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
179
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
180 if (logger.isDebugEnabled()) {
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
181 logger.debug("(Wkms)Values : " + size);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
182 if (size > 0) {
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
183 logger.debug("Start km: " + wkms.getKm(0));
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
184 logger.debug("End km: " + wkms.getKm(size-1));
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
185 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
186 logger.debug("wsUp: " + wsUp);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
187 logger.debug("kmUp: " + kmUp);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
188 if (size == 1) {
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
189 logger.debug("InvertAxis not inverting because we have just one km");
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
190 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
191 logger.debug("inv: " + inv);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
192 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
193 generator.setInverted(inv);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
194 }
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
195 }
5341
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
196 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org