Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator.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 | 740d65e4aa14 |
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:
5867
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:
5867
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:
4448
diff
changeset
|
9 package org.dive4elements.river.exports; |
359
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
9312 | 11 import org.apache.log4j.Logger; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
12 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
13 import org.dive4elements.artifactdatabase.state.Facet; |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
8856
diff
changeset
|
14 import org.dive4elements.artifacts.CallContext; |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
15 import org.dive4elements.river.artifacts.D4EArtifact; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
16 import org.dive4elements.river.artifacts.geom.Lines; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
17 import org.dive4elements.river.artifacts.model.AreaFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
18 import org.dive4elements.river.artifacts.model.FacetTypes; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
19 import org.dive4elements.river.artifacts.model.WKms; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
20 import org.dive4elements.river.artifacts.model.WQKms; |
9312 | 21 import org.dive4elements.river.exports.process.AnnotationProcessor; |
6689
e568788f519d
issue1393: Handle bedheightdiff-facets in LS Generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
22 import org.dive4elements.river.exports.process.BedDiffHeightYearProcessor; |
e568788f519d
issue1393: Handle bedheightdiff-facets in LS Generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
23 import org.dive4elements.river.exports.process.BedDiffYearProcessor; |
9312 | 24 import org.dive4elements.river.exports.process.Processor; |
6927
0288db5e90d5
issue1455: Extract QOutProcessor, use it
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6905
diff
changeset
|
25 import org.dive4elements.river.exports.process.QOutProcessor; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
26 import org.dive4elements.river.exports.process.WOutProcessor; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
27 import org.dive4elements.river.jfree.StyledAreaSeriesCollection; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4448
diff
changeset
|
28 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:
6689
diff
changeset
|
29 import org.dive4elements.river.themes.ThemeDocument; |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5864
diff
changeset
|
30 import org.dive4elements.river.utils.RiverUtils; |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
3400
diff
changeset
|
31 import org.jfree.chart.axis.NumberAxis; |
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
3400
diff
changeset
|
32 import org.jfree.chart.axis.ValueAxis; |
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
3400
diff
changeset
|
33 import org.jfree.chart.plot.XYPlot; |
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
3400
diff
changeset
|
34 import org.jfree.data.xy.XYSeries; |
2664
3c4ec3b50af7
Fix area creation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2601
diff
changeset
|
35 |
1035
9f69a5f0af98
Started implementation of CustomAnnotation to plot collision-free annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1034
diff
changeset
|
36 /** |
2206
e2124ca11adb
Add manual point handling for many different chart types.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2199
diff
changeset
|
37 * An OutGenerator that generates longitudinal section curves. |
359
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 * |
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 */ |
9312 | 41 public class LongitudinalSectionGenerator extends XYChartGenerator implements FacetTypes { |
1953
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
42 public enum YAXIS { |
9312 | 43 W(0), D(1), Q(2); |
1931
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
44 protected int idx; |
9312 | 45 |
46 private YAXIS(final int c) { | |
47 this.idx = c; | |
1931
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
48 } |
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
49 } |
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
50 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
51 /** The log that is used in this generator. */ |
9312 | 52 private static Logger log = Logger.getLogger(LongitudinalSectionGenerator.class); |
359
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
54 /** Key to look up internationalized String for annotations label. */ |
9312 | 55 public static final String I18N_ANNOTATIONS_LABEL = "chart.longitudinal.annotations.label"; |
1041
c3902ff2d3bd
Added legend for annotations to LongitudinalSectionDiagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1040
diff
changeset
|
56 |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
57 /** |
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
58 * Key to look up internationalized String for LongitudinalSection diagrams |
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
59 * titles. |
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
60 */ |
9312 | 61 public static final String I18N_CHART_TITLE = "chart.longitudinal.section.title"; |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
62 |
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
63 /** |
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
64 * Key to look up internationalized String for LongitudinalSection diagrams |
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
65 * subtitles. |
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
66 */ |
9312 | 67 public static final String I18N_CHART_SUBTITLE = "chart.longitudinal.section.subtitle"; |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
68 |
2159
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
69 /** |
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
70 * Key to look up internationalized String for LongitudinalSection diagrams |
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
71 * short subtitles. |
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
72 */ |
9312 | 73 public static final String I18N_CHART_SHORT_SUBTITLE = "chart.longitudinal.section.shortsubtitle"; |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
74 |
9312 | 75 public static final String I18N_XAXIS_LABEL = "chart.longitudinal.section.xaxis.label"; |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
76 |
9312 | 77 public static final String I18N_YAXIS_LABEL = "chart.longitudinal.section.yaxis.label"; |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
78 |
9312 | 79 public static final String I18N_2YAXIS_LABEL = "common.export.csv.header.q"; |
80 | |
81 public static final String I18N_CHART_TITLE_DEFAULT = "W-L\u00e4ngsschnitt"; | |
82 public static final String I18N_XAXIS_LABEL_DEFAULT = "km"; | |
83 public static final String I18N_YAXIS_LABEL_DEFAULT = "W [NN + m]"; | |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
84 public static final String I18N_2YAXIS_LABEL_DEFAULT = "Q [m\u00b3/s]"; |
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
85 |
9312 | 86 public final static String I18N_WDIFF_YAXIS_LABEL = "chart.w_differences.yaxis.label"; |
1953
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
87 |
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
88 public final static String I18N_WDIFF_YAXIS_LABEL_DEFAULT = "m"; |
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
89 |
359
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 public LongitudinalSectionGenerator() { |
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 super(); |
369
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
92 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
93 |
2000
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
94 @Override |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
95 protected YAxisWalker getYAxisWalker() { |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
96 return new YAxisWalker() { |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
97 @Override |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
98 public int length() { |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
99 return YAXIS.values().length; |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
100 } |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
101 |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
102 @Override |
9312 | 103 public String getId(final int idx) { |
104 final YAXIS[] yaxes = YAXIS.values(); | |
2000
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
105 return yaxes[idx].toString(); |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
106 } |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
107 }; |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
108 } |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1997
diff
changeset
|
109 |
3621
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
110 /** |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
111 * Return left most data points x value (on first axis). |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
112 * Overridden because axis could be inverted. |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
113 */ |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
114 @Override |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
115 protected double getLeftX() { |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
116 if (isInverted()) { |
9312 | 117 return (Double) getXBounds(0).getUpper(); |
3621
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
118 } |
9312 | 119 return (Double) getXBounds(0).getLower(); |
3621
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
120 } |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
121 |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
122 /** |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
123 * Return right most data points x value (on first axis). |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
124 * Overridden because axis could be inverted. |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
125 */ |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
126 @Override |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
127 protected double getRightX() { |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
128 if (isInverted()) { |
9312 | 129 return (Double) getXBounds(0).getLower(); |
3621
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
130 } |
9312 | 131 return (Double) getXBounds(0).getUpper(); |
3621
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
132 } |
6772e9f9b65f
Deal with inverted axes in longitudinal charts and logos.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3409
diff
changeset
|
133 |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
134 /** |
2048
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2047
diff
changeset
|
135 * Returns the default title for this chart. |
2047
0318fa6f0844
Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2031
diff
changeset
|
136 * |
2048
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2047
diff
changeset
|
137 * @return the default title for this chart. |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
138 */ |
2047
0318fa6f0844
Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2031
diff
changeset
|
139 @Override |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
8856
diff
changeset
|
140 public String getDefaultChartTitle(final CallContext context) { |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
141 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT); |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
142 } |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
143 |
2047
0318fa6f0844
Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2031
diff
changeset
|
144 /** |
2048
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2047
diff
changeset
|
145 * Returns the default subtitle for this chart. |
2047
0318fa6f0844
Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2031
diff
changeset
|
146 * |
2048
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2047
diff
changeset
|
147 * @return the default subtitle for this chart. |
2047
0318fa6f0844
Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2031
diff
changeset
|
148 */ |
1989
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1953
diff
changeset
|
149 @Override |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
8856
diff
changeset
|
150 protected String getDefaultChartSubtitle(final CallContext context) { |
9312 | 151 final double[] dist = getRange(); |
1989
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1953
diff
changeset
|
152 |
2154
ce9b15673f3f
Use waterlevel state and longitudinal section generator for longitudinal
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2104
diff
changeset
|
153 Object[] args = null; |
ce9b15673f3f
Use waterlevel state and longitudinal section generator for longitudinal
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2104
diff
changeset
|
154 if (dist == null) { |
9312 | 155 args = new Object[] { getRiverName() }; |
2159
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
156 return msg(getChartShortSubtitleKey(), "", args); |
2154
ce9b15673f3f
Use waterlevel state and longitudinal section generator for longitudinal
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2104
diff
changeset
|
157 } |
9312 | 158 args = new Object[] { getRiverName(), dist[0], dist[1] }; |
1989
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1953
diff
changeset
|
159 return msg(getChartSubtitleKey(), "", args); |
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1953
diff
changeset
|
160 } |
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1953
diff
changeset
|
161 |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
162 /** |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
163 * Gets key to look up internationalized String for the charts subtitle. |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
164 * |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
165 * @return key to look up translated subtitle. |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
166 */ |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
167 protected String getChartSubtitleKey() { |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
168 return I18N_CHART_SUBTITLE; |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
169 } |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
170 |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
171 /** |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2685
diff
changeset
|
172 * Gets key to look up internationalized String for the charts short |
2159
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
173 * subtitle. |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
174 * |
2159
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
175 * @return key to look up translated subtitle. |
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
176 */ |
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
177 protected String getChartShortSubtitleKey() { |
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
178 return I18N_CHART_SHORT_SUBTITLE; |
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
179 } |
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
180 |
ebfca80dae09
Added short subtitle for longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
181 /** |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
182 * Get internationalized label for the x axis. |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
183 */ |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
184 @Override |
9312 | 185 protected String getDefaultXAxisLabel(final CallContext context) { |
186 final D4EArtifact flys = getArtifact(); | |
1667
f1af0c07a6ee
Bugfix: #346 Modified x and y axis titles of longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1653
diff
changeset
|
187 |
9312 | 188 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT, new Object[] { RiverUtils.getRiver(flys).getName() }); |
369
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
189 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
190 |
1953
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
191 @Override |
9312 | 192 protected String getDefaultYAxisLabel(final int index) { |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
193 String label = "default"; |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
194 |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
195 if (index == YAXIS.W.idx) { |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
196 label = getWAxisLabel(); |
9312 | 197 } else if (index == YAXIS.Q.idx) { |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
198 label = msg(getQAxisLabelKey(), getQAxisDefaultLabel()); |
9312 | 199 } else if (index == YAXIS.D.idx) { |
200 label = msg(I18N_WDIFF_YAXIS_LABEL, I18N_WDIFF_YAXIS_LABEL_DEFAULT); | |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
201 } |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
202 |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
203 return label; |
1953
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
204 } |
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
205 |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
206 /** |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
207 * Get internationalized label for the y axis. |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
208 */ |
1953
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
209 protected String getWAxisLabel() { |
9312 | 210 final D4EArtifact flys = getArtifact(); |
1667
f1af0c07a6ee
Bugfix: #346 Modified x and y axis titles of longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1653
diff
changeset
|
211 |
9312 | 212 final String unit = RiverUtils.getRiver(flys).getWstUnit().getName(); |
213 | |
214 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT, new Object[] { unit }); | |
369
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
215 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
216 |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
217 /** |
1931
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
218 * Create Axis for given index. |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
219 * |
1931
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
220 * @return axis with according internationalized label. |
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
221 */ |
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
222 @Override |
9312 | 223 protected NumberAxis createYAxis(final int index) { |
224 final NumberAxis axis = super.createYAxis(index); | |
1991
0bd7c3cf0af1
Added axis sections into charts Settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1989
diff
changeset
|
225 |
1941
0fa53fa65401
Fix LongitudinalSections multi-axes plotting behavior.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1936
diff
changeset
|
226 // "Q" Axis shall include 0. |
0fa53fa65401
Fix LongitudinalSections multi-axes plotting behavior.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1936
diff
changeset
|
227 if (index == YAXIS.Q.idx) { |
0fa53fa65401
Fix LongitudinalSections multi-axes plotting behavior.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1936
diff
changeset
|
228 axis.setAutoRangeIncludesZero(true); |
9312 | 229 } else { |
1941
0fa53fa65401
Fix LongitudinalSections multi-axes plotting behavior.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1936
diff
changeset
|
230 axis.setAutoRangeIncludesZero(false); |
0fa53fa65401
Fix LongitudinalSections multi-axes plotting behavior.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1936
diff
changeset
|
231 } |
2053
f9a972d375ba
Use the user defined font size to set Y axes label fonts sizes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
232 |
1931
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
233 return axis; |
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
234 } |
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
235 |
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
236 /** |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
237 * Get default value for the second Y-Axis' label (if no translation was |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
238 * found). |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
239 */ |
1953
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
240 protected String getQAxisDefaultLabel() { |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
241 return I18N_2YAXIS_LABEL_DEFAULT; |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
242 } |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
243 |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
244 /** |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
245 * Get key for internationalization of the second Y-Axis' label. |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
246 */ |
1953
590d9bc88ff5
Refactored LongitudinalSection- and WDiff-Generators, fixed minor issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1948
diff
changeset
|
247 protected String getQAxisLabelKey() { |
1701
6e59208839ae
Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1700
diff
changeset
|
248 return I18N_2YAXIS_LABEL; |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
249 } |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
250 |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
251 /** |
1931
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
252 * Trigger inversion. |
1700
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
253 */ |
13a9ee6cebef
Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1697
diff
changeset
|
254 @Override |
9312 | 255 protected void adjustAxes(final XYPlot plot) { |
375
60f63539d004
Ws and Qs of a longitudinal section chart are mapped to an own range axis now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
369
diff
changeset
|
256 super.adjustAxes(plot); |
422
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
257 invertXAxis(plot.getDomainAxis()); |
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
258 } |
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
259 |
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
260 /** |
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
261 * This method inverts the x-axis based on the kilometer information of the |
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
262 * selected river. If the head of the river is at kilometer 0, the axis is |
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
263 * not inverted, otherwise it is. |
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
264 * |
9312 | 265 * @param xaxis |
266 * The domain axis. | |
422
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
267 */ |
9312 | 268 protected void invertXAxis(final ValueAxis xaxis) { |
4445
0eca080fc162
Move inverted from LongitudinalSectionGenerator to XYChartGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3621
diff
changeset
|
269 if (isInverted()) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
270 log.debug("X-Axis.setInverted(true)"); |
422
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
271 xaxis.setInverted(true); |
3b83341e0cf4
ISSUE-52 The longitudinal section charts will now always have the head of the river at the left side.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
420
diff
changeset
|
272 } |
359
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
273 } |
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
274 |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
275 /** |
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
276 * Produce output. |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
277 * |
9312 | 278 * @param artifactAndFacet |
279 * current facet and artifact. | |
280 * @param attr | |
281 * theme for facet | |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
282 */ |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
3400
diff
changeset
|
283 @Override |
9312 | 284 public void doOut(final ArtifactAndFacet artifactAndFacet, final ThemeDocument attr, final boolean visible) { |
285 final String name = artifactAndFacet.getFacetName(); | |
359
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
286 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
287 log.debug("LongitudinalSectionGenerator.doOut: " + name); |
695
45cd58a2a2bb
OutGenerators doOut() takes a facet object now instead of just its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
666
diff
changeset
|
288 |
45cd58a2a2bb
OutGenerators doOut() takes a facet object now instead of just its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
666
diff
changeset
|
289 if (name == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
290 log.error("No facet name for doOut(). No output generated!"); |
369
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
291 return; |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
292 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
293 |
9312 | 294 final Facet facet = artifactAndFacet.getFacet(); |
696
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
695
diff
changeset
|
295 |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1941
diff
changeset
|
296 if (facet == null) { |
696
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
695
diff
changeset
|
297 return; |
369
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
298 } |
696
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
695
diff
changeset
|
299 |
9312 | 300 final CallContext context = getContext(); |
301 | |
302 final Processor wProcessor = new WOutProcessor(); | |
303 final Processor qProcessor = new QOutProcessor(); | |
304 final Processor bdyProcessor = new BedDiffYearProcessor(); | |
305 final Processor bdhyProcessor = new BedDiffHeightYearProcessor(); | |
306 final Processor annotationProcessor = new AnnotationProcessor(); | |
6689
e568788f519d
issue1393: Handle bedheightdiff-facets in LS Generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
307 |
e568788f519d
issue1393: Handle bedheightdiff-facets in LS Generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
308 if (wProcessor.canHandle(name)) { |
9312 | 309 wProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx); |
696
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
695
diff
changeset
|
310 } |
6927
0288db5e90d5
issue1455: Extract QOutProcessor, use it
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6905
diff
changeset
|
311 if (qProcessor.canHandle(name)) { |
9312 | 312 qProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.Q.idx); |
313 } else if (bdyProcessor.canHandle(name)) { | |
314 bdyProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx); | |
315 } else if (bdhyProcessor.canHandle(name)) { | |
316 bdhyProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx); | |
317 } else if (annotationProcessor.canHandle(name)) { | |
318 annotationProcessor.doOut(this, artifactAndFacet, attr, visible, 0); | |
319 } else if (name.equals(W_DIFFERENCES)) { | |
320 doWDifferencesOut((WKms) artifactAndFacet.getData(context), artifactAndFacet, attr, visible); | |
321 } else if (FacetTypes.IS.AREA(name)) { | |
322 doArea(artifactAndFacet.getData(context), artifactAndFacet, attr, visible); | |
323 } else if (FacetTypes.IS.MANUALPOINTS(name)) { | |
324 doPoints(artifactAndFacet.getData(context), artifactAndFacet, attr, visible, YAXIS.W.idx); | |
325 } else { | |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
326 log.warn("Unknown facet name: " + name); |
369
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
327 return; |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
328 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
329 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
330 |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
331 /** |
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
332 * Add items to dataseries which describes the differences. |
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
333 */ |
9312 | 334 protected void doWDifferencesOut(final WKms wkms, final ArtifactAndFacet aandf, final ThemeDocument theme, final boolean visible) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
335 log.debug("WDifferencesCurveGenerator.doWDifferencesOut"); |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
336 if (wkms == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
337 log.warn("No data to add to WDifferencesChart."); |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
338 return; |
9312 | 339 } |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
340 |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
341 final XYSeries series = new StyledXYSeries(aandf.getFacetName(), aandf.getFacetDescription(), theme); |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
342 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
343 if (log.isDebugEnabled()) { |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
344 if (wkms.size() > 0) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
345 log.debug("Generate series: " + series.getKey()); |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
346 log.debug("Start km: " + wkms.getKm(0)); |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
347 log.debug("End km: " + wkms.getKm(wkms.size() - 1)); |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
348 log.debug("Values : " + wkms.size()); |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
349 } |
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
350 } |
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
351 |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1789
diff
changeset
|
352 StyledSeriesBuilder.addPoints(series, wkms); |
1769
bbe12d77710d
Prepare rendering of added other (static) WKms and Differences in LongitudinalSection Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1719
diff
changeset
|
353 |
1931
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1861
diff
changeset
|
354 addAxisSeries(series, YAXIS.D.idx, visible); |
369
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
355 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
356 |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
357 /** |
1041
c3902ff2d3bd
Added legend for annotations to LongitudinalSectionDiagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1040
diff
changeset
|
358 * Get name of series (displayed in legend). |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
359 * |
1041
c3902ff2d3bd
Added legend for annotations to LongitudinalSectionDiagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1040
diff
changeset
|
360 * @return name of the series. |
c3902ff2d3bd
Added legend for annotations to LongitudinalSectionDiagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1040
diff
changeset
|
361 */ |
9312 | 362 protected String getSeriesName(final WQKms wqkms, final String mode) { |
363 final String name = wqkms.getName(); | |
364 final String prefix = name != null && name.indexOf(mode) >= 0 ? null : mode; | |
448
88d9e1d75d64
W and Q curves in longitudinal section curves will now have names.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
422
diff
changeset
|
365 |
9312 | 366 return prefix != null && prefix.length() > 0 ? prefix + "(" + name + ")" : name; |
359
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
367 } |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
368 |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
369 /** Look up the axis identifier for a given facet type. */ |
9312 | 370 public int axisIdxForFacet(final String facetName) { |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
371 if (FacetTypes.IS.W(facetName)) { |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
372 return YAXIS.W.idx; |
9312 | 373 } else if (FacetTypes.IS.Q(facetName)) { |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
374 return YAXIS.Q.idx; |
9312 | 375 } else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
376 log.warn("Could not find axis for facet " + facetName); |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
377 return YAXIS.W.idx; |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
378 } |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
379 } |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
380 |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
381 /** |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
382 * Do Area out. |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
383 * |
9312 | 384 * @param theme |
385 * styling information. | |
386 * @param visible | |
387 * whether or not visible. | |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
388 */ |
9312 | 389 protected void doArea(final Object o, final ArtifactAndFacet aandf, final ThemeDocument theme, final boolean visible) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7718
diff
changeset
|
390 log.debug("LongitudinalSectionGenerator.doArea"); |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
391 |
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
392 final String facetName = aandf.getFacetName(); |
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
393 |
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
394 final StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(facetName, theme); |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
395 |
9312 | 396 final String seriesName = aandf.getFacetDescription(); |
2325
1fcaeced48f2
#485 Fixed broken renaming of chart themes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2214
diff
changeset
|
397 |
9312 | 398 final AreaFacet.Data data = (AreaFacet.Data) o; |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
399 |
9312 | 400 XYSeries up = null; |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
401 XYSeries down = null; |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
402 |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
403 if (data.getUpperData() != null) { |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
404 up = new StyledXYSeries(facetName, seriesName, false, theme); |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
405 if (data.getUpperData() instanceof WQKms) { |
7718
bf87349bf456
Fix compilation of the AreaData change.
Andre Heinecke <aheinecke@intevation.de>
parents:
7690
diff
changeset
|
406 if (FacetTypes.IS.Q(data.getUpperFacetName())) { |
9312 | 407 StyledSeriesBuilder.addPointsKmQ(up, (WQKms) data.getUpperData()); |
408 } else { | |
409 StyledSeriesBuilder.addPoints(up, (WKms) data.getUpperData()); | |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
410 } |
9312 | 411 } else if (data.getUpperData() instanceof double[][]) { |
412 StyledSeriesBuilder.addPoints(up, (double[][]) data.getUpperData(), false); | |
413 } else if (data.getUpperData() instanceof WKms) { | |
2567
1d1cf502a360
fix flys/issue638 (area between certain datatypes).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2420
diff
changeset
|
414 StyledSeriesBuilder.addPoints(up, (WKms) data.getUpperData()); |
9312 | 415 } else if (data.getUpperData() instanceof Lines.LineData) { |
416 StyledSeriesBuilder.addPoints(up, ((Lines.LineData) data.getUpperData()).points, false); | |
417 } else { | |
418 log.error("Do not know how to deal with (up) area info from: " + data.getUpperData()); | |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
419 } |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
420 } |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
421 |
8856 | 422 // TODO Depending on style, the area (e.g. 20m^2) |
423 // should be added as annotation. | |
2420
65ff8ff20be4
Fix flys/issue150 ('water increasing').
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2325
diff
changeset
|
424 |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
425 if (data.getLowerData() != null) { |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
426 // TODO: Sort this out: when the two series have the same name, |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
427 // the renderer (or anything in between) will not work correctly. |
9556
9b8e8fc1f408
Use facetName in all processors as themeType for legend aggregation.
gernotbelger
parents:
9312
diff
changeset
|
428 down = new StyledXYSeries(facetName, seriesName + " ", false, theme); |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
429 if (data.getLowerData() instanceof WQKms) { |
7718
bf87349bf456
Fix compilation of the AreaData change.
Andre Heinecke <aheinecke@intevation.de>
parents:
7690
diff
changeset
|
430 if (FacetTypes.IS.Q(data.getLowerFacetName())) { |
9312 | 431 StyledSeriesBuilder.addPointsKmQ(down, (WQKms) data.getLowerData()); |
432 } else { | |
433 StyledSeriesBuilder.addPoints(down, (WQKms) data.getLowerData()); | |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
434 } |
9312 | 435 } else if (data.getLowerData() instanceof double[][]) { |
436 StyledSeriesBuilder.addPoints(down, (double[][]) data.getLowerData(), false); | |
437 } else if (data.getLowerData() instanceof WKms) { | |
438 StyledSeriesBuilder.addPoints(down, (WKms) data.getLowerData()); | |
439 } else if (data.getLowerData() instanceof Lines.LineData) { | |
440 StyledSeriesBuilder.addPoints(down, ((Lines.LineData) data.getLowerData()).points, false); | |
441 } else { | |
442 log.error("Do not know how to deal with (down) area info from: " + data.getLowerData()); | |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
443 } |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
444 } |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
445 |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
446 if (up == null && down != null) { |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
447 area.setMode(StyledAreaSeriesCollection.FILL_MODE.ABOVE); |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
448 down.setKey(seriesName); |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
449 area.addSeries(down); |
2601
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2567
diff
changeset
|
450 area.addSeries(StyledSeriesBuilder.createGroundAtInfinity(down)); |
9312 | 451 } else if (up != null && down == null) { |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
452 area.setMode(StyledAreaSeriesCollection.FILL_MODE.UNDER); |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
453 area.addSeries(up); |
2601
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2567
diff
changeset
|
454 area.addSeries(StyledSeriesBuilder.createGroundAtInfinity(up)); |
9312 | 455 } else if (up != null && down != null) { |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
456 if (data.doPaintBetween()) { |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
457 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN); |
9312 | 458 } else { |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
459 area.setMode(StyledAreaSeriesCollection.FILL_MODE.ABOVE); |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
460 } |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
461 area.addSeries(up); |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
462 area.addSeries(down); |
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
463 } |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
464 // Add area to the respective axis. |
9312 | 465 final String facetAxisName = data.getUpperFacetName() == null ? data.getLowerFacetName() : data.getUpperFacetName(); |
7718
bf87349bf456
Fix compilation of the AreaData change.
Andre Heinecke <aheinecke@intevation.de>
parents:
7690
diff
changeset
|
466 addAreaSeries(area, axisIdxForFacet(facetAxisName), visible); |
2029
131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2022
diff
changeset
|
467 } |
359
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
468 } |
e5ea6a01526c
Added an OutGenerator for creating longitudinal section curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
469 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |