annotate flys-artifacts/src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java @ 1931:7c52e9cb2a72

Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann. flys-artifacts/trunk@3312 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 24 Nov 2011 07:20:46 +0000
parents 11c4b1429117
children 9e9cfc036a3f
rev   line source
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.exports;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
3 import org.apache.log4j.Logger;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
4
1745
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
5 import org.jfree.chart.title.TextTitle;
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
6
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
7 import org.jfree.chart.JFreeChart;
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
8 import org.jfree.chart.axis.NumberAxis;
1170
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
9 import org.jfree.chart.plot.XYPlot;
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10 import org.jfree.data.xy.XYSeries;
1653
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
11 import org.jfree.data.Range;
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import org.w3c.dom.Document;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import de.intevation.artifacts.Artifact;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17 import de.intevation.artifactdatabase.state.Facet;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
18
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.artifacts.FLYSArtifact;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.artifacts.model.FacetTypes;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.artifacts.model.WKms;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22
1162
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
23 import de.intevation.flys.utils.DataUtil;
1627
d1b20d0e9eb4 Let WDifferencesCurveGenerator process LONGITUDINAL_W facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1170
diff changeset
24
d1b20d0e9eb4 Let WDifferencesCurveGenerator process LONGITUDINAL_W facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1170
diff changeset
25 import de.intevation.flys.artifacts.model.WQKms;
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
26 import de.intevation.flys.utils.FLYSUtils;
1162
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
27
1861
11c4b1429117 Cosmetics, resolve code duplicate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1853
diff changeset
28 import de.intevation.flys.jfree.FLYSAnnotation;
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30 /**
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31 * An OutGenerator that generates w differences curves.
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 */
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 public class WDifferencesCurveGenerator
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34 extends LongitudinalSectionGenerator
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 implements FacetTypes
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 {
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 /** The logger that is used in this generator. */
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38 private static Logger logger =
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39 Logger.getLogger(WDifferencesCurveGenerator.class);
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40
1701
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
41 /** Key for internationalized title of WDiff charts. */
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
42 public final static String I18N_WDIFF_TITLE = "chart.w_differences.title";
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
43
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
44 /** Default for internationalized title (when no translation found). */
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
45 public final static String I18N_WDIFF_TITLE_DEFAULT = "Differences";
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
46
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
47 /** Key for internationalized title of WDiff charts. */
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
48 public final static String I18N_WDIFF_2YAXIS_LABEL =
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
49 "chart.w_differences.yaxis.second.label";
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
50
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
51 /** Default for label for second Y-Axis when no translation found. */
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
52 public final static String I18N_WDIFF_2YAXIS_LABEL_DEFAULT = "W [NN + m]";
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
53
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
54 public final static String I18N_WDIFF_SUBTITLE =
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
55 "chart.w_differences.subtitle";
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
56
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
57 public final static String I18N_WDIFF_YAXIS_LABEL =
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
58 "chart.w_differences.yaxis.label";
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
59
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
60 public final static String I18N_WDIFF_YAXIS_LABEL_DEFAULT = "m";
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
61
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
63 /**
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
64 * Get internationalized title for chart.
1755
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
65 * @return internationalized Chart title.
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
66 */
1755
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
67 @Override
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
68 public String getChartTitle() {
1701
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
69 return msg(I18N_WDIFF_TITLE, I18N_WDIFF_TITLE_DEFAULT);
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
70 }
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
71
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73 /**
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
74 * 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: 1695
diff changeset
75 * found).
1755
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
76 * @return default value for second y-axis label.
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77 */
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78 @Override
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
79 protected String get2YAxisDefaultLabel() {
1701
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
80 return I18N_WDIFF_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: 1695
diff changeset
81 }
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
82
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
83
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
84 /**
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
85 * Gets key to look up internationalized String for the charts subtitle.
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
86 * @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: 1695
diff changeset
87 */
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
88 @Override
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
89 protected String getChartSubtitleKey() {
1701
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
90 return I18N_WDIFF_SUBTITLE;
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
91 }
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
92
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
93
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
94 /**
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
95 * Get key for internationalization of the second Y-Axis' label.
1755
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
96 * @return internationalized second y-axis.
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
97 */
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
98 @Override
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
99 protected String get2YAxisLabelKey() {
1701
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
100 return I18N_WDIFF_2YAXIS_LABEL;
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
101 }
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
102
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
103
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
104 /**
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
105 * Get internationalized label for the y axis.
1755
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
106 * @return internationalized label for y axos.
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
107 */
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
108 @Override
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
109 protected String getYAxisLabel() {
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
110 FLYSArtifact flys = (FLYSArtifact) master;
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
111
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
112 String unit = FLYSUtils.getRiver(flys).getWstUnit().getName();
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
113
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
114 return msg(
1701
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
115 I18N_WDIFF_YAXIS_LABEL,
6e59208839ae Expose translateable Strings as constants.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1700
diff changeset
116 I18N_WDIFF_YAXIS_LABEL_DEFAULT,
1700
13a9ee6cebef Fix most labels in w-diff diagrams; refactoring to allow easier adoption of
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1695
diff changeset
117 new Object[] { unit });
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
118 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
119
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
120
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
121 /**
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
122 * Add (themed) data for chart generation.
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
123 */
1684
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
124 @Override
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
125 public void doOut(
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
126 Artifact artifact,
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
127 Facet facet,
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
128 Document attr,
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
129 boolean visible
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
130 ) {
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131 String name = facet.getName();
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133 logger.debug("WDifferencesCurveGenerator.doOut: " + name);
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
134
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
135 if (name == null) {
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
136 logger.error("No facet name for doOut(). No output generated!");
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
137 return;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
138 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
139
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140 FLYSArtifact flys = (FLYSArtifact) artifact;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141 Facet f = flys.getNativeFacet(facet);
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
142
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
143 if (f == null) {
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
144 return;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
146
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
147 if (name.equals(W_DIFFERENCES)) {
1684
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
148 doWDifferencesOut(
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
149 (WKms) f.getData(artifact, context),
1712
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
150 facet,
1684
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
151 attr,
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
152 visible);
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153 }
1627
d1b20d0e9eb4 Let WDifferencesCurveGenerator process LONGITUDINAL_W facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1170
diff changeset
154 else if (name.equals(LONGITUDINAL_W)) {
1712
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
155 doWOut((WQKms) f.getData(artifact, context), facet, attr, visible);
1627
d1b20d0e9eb4 Let WDifferencesCurveGenerator process LONGITUDINAL_W facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1170
diff changeset
156 }
1853
5b2122a8bcbf Handle Height marks with point styles in WDifferences Diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
157 else if (name.equals(STATIC_WKMS) || name.equals(HEIGHTMARKS_POINTS)) {
1734
25d481cad4fb Simplified handling of W(Q)Kms data to plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1733
diff changeset
158 doWOut((WKms) f.getData(artifact, context), facet, attr, visible);
1733
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
159 }
1789
205eb6f124a5 Load and display annotations in w-difference diagrams, minor polishing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1755
diff changeset
160 else if (name.equals(LONGITUDINAL_ANNOTATION)) {
1861
11c4b1429117 Cosmetics, resolve code duplicate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1853
diff changeset
161 doAnnotations((FLYSAnnotation) f.getData(artifact, context),
11c4b1429117 Cosmetics, resolve code duplicate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1853
diff changeset
162 facet, attr, visible);
1789
205eb6f124a5 Load and display annotations in w-difference diagrams, minor polishing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1755
diff changeset
163 }
1695
0c9f7cc2cc11 In WDifferenceCurveGenerator use slightly modified doWOut-implementation of LongitudinalSectionGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1684
diff changeset
164 else {
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
165 logger.warn("Unknown facet name: " + name);
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166 return;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
169
1170
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
170
1640
fb296bdf815f Improved w-differences diagram generation with included 'absolute' values.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1627
diff changeset
171 /**
fb296bdf815f Improved w-differences diagram generation with included 'absolute' values.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1627
diff changeset
172 * Add the waterlevel-curves (the "absolutes" from which
fb296bdf815f Improved w-differences diagram generation with included 'absolute' values.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1627
diff changeset
173 * differences were calculated).
1695
0c9f7cc2cc11 In WDifferenceCurveGenerator use slightly modified doWOut-implementation of LongitudinalSectionGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1684
diff changeset
174 *
1640
fb296bdf815f Improved w-differences diagram generation with included 'absolute' values.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1627
diff changeset
175 * @param wqkms The wqkms to add to the diagram.
1695
0c9f7cc2cc11 In WDifferenceCurveGenerator use slightly modified doWOut-implementation of LongitudinalSectionGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1684
diff changeset
176 * @param theme The theme that contains styling information.
1640
fb296bdf815f Improved w-differences diagram generation with included 'absolute' values.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1627
diff changeset
177 */
1712
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
178 protected void doWOut(
1734
25d481cad4fb Simplified handling of W(Q)Kms data to plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1733
diff changeset
179 WKms wkms,
1712
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
180 Facet facet,
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
181 Document theme,
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
182 boolean visible
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
183 ) {
1695
0c9f7cc2cc11 In WDifferenceCurveGenerator use slightly modified doWOut-implementation of LongitudinalSectionGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1684
diff changeset
184 logger.debug("WDifferencesCurveGenerator.doWOut");
1627
d1b20d0e9eb4 Let WDifferencesCurveGenerator process LONGITUDINAL_W facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1170
diff changeset
185
1712
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
186 XYSeries series = new StyledXYSeries(facet.getDescription(), theme);
1627
d1b20d0e9eb4 Let WDifferencesCurveGenerator process LONGITUDINAL_W facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1170
diff changeset
187
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
188 StyledSeriesBuilder.addPoints(series, wkms);
1733
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
189
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
190 // Note: the only difference in the super-implementation
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
191 // (in LongitudinalSectionGenerator) is here (adds with
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
192 // addFirstAxisSeries() .
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
193 addAxisSeries(series, 3, visible);
1733
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
194
1734
25d481cad4fb Simplified handling of W(Q)Kms data to plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1733
diff changeset
195 if (wkms instanceof WQKms) {
25d481cad4fb Simplified handling of W(Q)Kms data to plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1733
diff changeset
196 if (needInvertAxis((WQKms) wkms)) {
25d481cad4fb Simplified handling of W(Q)Kms data to plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1733
diff changeset
197 setInverted(true);
25d481cad4fb Simplified handling of W(Q)Kms data to plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1733
diff changeset
198 }
1733
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
199 }
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
200 }
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
201
1745
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
202 /**
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
203 * Add (internationalized) subtitle to chart.
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
204 * Overridden to avoid trying to access the range of masterartifact.
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
205 * @see getChartSubtitleKey
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
206 */
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
207 @Override
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
208 protected void addSubtitles(JFreeChart chart) {
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
209
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
210 // TODO i18n
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
211 /*
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
212 Object[] args = new Object[] {
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
213 getRiverName()
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
214 };
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
215 */
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
216 String subtitle = getRiverName();
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
217 chart.addSubtitle(new TextTitle(subtitle));
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
218 }
4ae7df2a74ed Fix NPE in WDiff-diagram because no ranges present in masterartifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1734
diff changeset
219
1733
ffab6de07dc5 In WDiff-diagram generation respect other.wkms facets (flood-prot, zus).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1712
diff changeset
220
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
221 /**
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
222 * Add items to dataseries which describes the differences.
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
223 */
1684
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
224 protected void doWDifferencesOut(
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
225 WKms wkms,
1712
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
226 Facet facet,
1684
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
227 Document theme,
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
228 boolean visible
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
229 ) {
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
230 logger.debug("WDifferencesCurveGenerator.doWDifferencesOut");
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
231 if (wkms == null) {
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
232 logger.warn("No data to add to WDifferencesChart.");
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
233 return;
1162
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
234 }
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
235
1712
7e19449d7826 #253 Modified the title creation of chart curves - titles will now equal the Facet's description.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1708
diff changeset
236 XYSeries series = new StyledXYSeries(facet.getDescription(), theme);
1162
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
237
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
238 if (logger.isDebugEnabled()) {
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
239 if (wkms.size() > 0) {
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
240 logger.debug("Generate series: " + series.getKey());
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
241 logger.debug("Start km: " + wkms.getKm(0));
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
242 logger.debug("End km: " + wkms.getKm(wkms.size()-1));
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
243 logger.debug("Values : " + wkms.size());
1162
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
244 }
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
245 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
246
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
247 StyledSeriesBuilder.addPoints(series, wkms);
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
248
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
249 addAxisSeries(series, 0, visible);
1678
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1653
diff changeset
250 if (DataUtil.guessWaterIncreasing(wkms.allWs())) {
1162
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
251 setInverted(true);
588798ef4791 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1158
diff changeset
252 }
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
253 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
254
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
255 @Override
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
256 protected NumberAxis createYAxis(int index) {
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
257 String s = "" + index;
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
258 return new NumberAxis(s);
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
259 }
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
260
1653
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
261 /**
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
262 * Disable Longitudinals behaviour to include "0" in the Q axis.
1755
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
263 *
1653
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
264 * @param range range with which to look up upper bound.
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
265 * @return range to be used for "auto-scaling" axis.
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
266 */
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
267 @Override
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
268 protected Range createSecondAxisRange(Range range) {
1755
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
269 if (range == null) {
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
270 return range;
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
271 }
f7072039ad84 Added default diff theme, avoid possible NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1745
diff changeset
272 return new Range(range.getLowerBound(), range.getUpperBound());
1653
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
273 }
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
274
1653
73794985a899 Enable auto-scaling axis for waterlevels in WDifference-plots.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1646
diff changeset
275
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
276 /**
1170
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
277 *
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
278 */
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
279 @Override
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
280 public JFreeChart generateChart() {
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
281 JFreeChart chart = super.generateChart();
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
282 if (chart != null && chart.getPlot() != null) {
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
283 XYPlot plot = (XYPlot) chart.getPlot();
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
284 plot.setRangeZeroBaselineVisible(true);
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
285 }
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
286 return chart;
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
287 }
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
288
1e1ef8b750db Partial fix flys/issue304 (3:Display ZeroBaseline).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1162
diff changeset
289 /**
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
290 * Get name of series (displayed in legend).
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
291 * @return name of the series.
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
292 */
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
293 protected String getSeriesName(WKms wqkms, String mode) {
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
294 String name = wqkms.getName();
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
295 String prefix = (name != null && name.indexOf(mode) >= 0)
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
296 ? null
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
297 : mode;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
298
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
299 return (prefix != null && prefix.length() > 0)
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
300 ? prefix + "(" + name +")"
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
301 : name;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
302 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
303 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
304 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org