Mercurial > dive4elements > river
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 : |