annotate flys-artifacts/src/main/java/de/intevation/flys/exports/NormalizedReferenceCurveGenerator.java @ 2277:3f3e4f94171b

Added generator for "Reduzierte Bezugslinie". flys-artifacts/trunk@3936 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 06 Feb 2012 15:42:27 +0000
parents
children 08bb95e1fc41
rev   line source
2277
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.exports;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import org.w3c.dom.Document;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 import java.awt.Font;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 import org.apache.log4j.Logger;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 import org.jfree.chart.JFreeChart;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 import org.jfree.chart.axis.NumberAxis;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 import org.jfree.chart.title.TextTitle;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 import org.jfree.data.xy.XYSeries;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 import de.intevation.artifactdatabase.state.ArtifactAndFacet;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 import de.intevation.flys.artifacts.model.FacetTypes;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.artifacts.model.WW;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.artifacts.model.WW.ApplyFunctionIterator;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.artifacts.model.WWAxisTypes;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.jfree.StyledXYSeries;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 /**
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 * An OutGenerator that generates reference curves.
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 public class NormalizedReferenceCurveGenerator
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 extends XYChartGenerator
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30 implements FacetTypes
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 public static enum YAXIS {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 W_M(0),
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 W_CM(1);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 public int idx;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 private YAXIS(int c) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 idx = c;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 /** House logger. */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43 private static Logger logger =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 Logger.getLogger(NormalizedReferenceCurveGenerator.class);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 public static final String I18N_CHART_TITLE =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47 "chart.reference.curve.title";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 public static final String I18N_CHART_SUBTITLE =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 "chart.reference.curve.subtitle";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 public static final String W_CM_DEFAULT =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
53 "chart.reference.curve.wcm";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 public static final String W_NNM_DEFAULT =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 "chart.reference.curve.wnn";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
57
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
58 public static final String START_GAUGE =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 "chart.reference.curve.start_at_gauge";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 public static final String START_FREE =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
62 "chart.reference.curve.start_free";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
63
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64 /*
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66 public static final String I18N_XAXIS_LABEL =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
67 "chart.reference.curve.xaxis.label";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
68
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69 public static final String I18N_YAXIS_LABEL =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
70 "chart.reference.curve.yaxis.label";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71 */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72 /*
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73 public static final String I18N_XAXIS_LABEL_DEFAULT =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
74 "W [NN + m]";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
75
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76 public static final String I18N_YAXIS_LABEL_DEFAULT =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
77 "W [NN + m]";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78 */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81 public static final String I18N_CHART_TITLE_DEFAULT =
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82 "Bezugslinie";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
83
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85 public NormalizedReferenceCurveGenerator() {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86 super();
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
87 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
88
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
89
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
90 /**
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
91 * Create Axis for given index.
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
92 * @return axis with according internationalized label.
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
93 */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 protected NumberAxis createYAxis(int index) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
96 Font labelFont = new Font("Tahoma", Font.BOLD, 14);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
97 String label = getYAxisLabel(index);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
99 NumberAxis axis = createNumberAxis(index, label);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100 // TODO aspect-ratio settings.
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 if (index == YAXIS.W_M.idx) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102 axis.setAutoRangeIncludesZero(false);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104 axis.setLabelFont(labelFont);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 return axis;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
107
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
108
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
109 /** Get default chart title. */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
110 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
111 protected String getDefaultChartTitle() {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
112 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
115 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
116 protected String getDefaultChartSubtitle() {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
117 Object[] args = new Object[] {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
118 getRiverName(),
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
119 };
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
120
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 return msg(I18N_CHART_SUBTITLE, "", args);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 protected void addSubtitles(JFreeChart chart) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
127 String subtitle = getChartSubtitle();
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
128
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
129 if (subtitle != null && subtitle.length() > 0) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
130 chart.addSubtitle(new TextTitle(subtitle));
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
131 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
134
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
135 /** Get Label for X-axis (W). */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137 protected String getDefaultXAxisLabel() {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
138 // TODO i18nreturn msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
139 // at_gauge + w_cm
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140 return "W am Bezugsort- oder Pegel.";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
141 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
142
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
143
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
144 /**
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
145 * Get Label for primary and other Y Axes.
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
146 * @param index Axis-Index (0-based).
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147 */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
148 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
149 protected String getDefaultYAxisLabel(int index) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
150 String label = "default";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
151 if (index == YAXIS.W_M.idx) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152 //label = msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
153 //TODO i18n
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
154 return "W am Zielort";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
155 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
156 else if (index == YAXIS.W_CM.idx) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
157 return "W am Zielpegel";
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
158 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
159
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
160 return label;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
161 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
162
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
163
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
164 /**
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
165 * Called for each facet/them in the out mapped to this generator.
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
166 * @param artifactFacet artifact and facet for this theme.
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
167 * @param theme styling info.
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
168 * @param visible Whether or not the theme is visible.
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
169 */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
170 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
171 public void doOut(
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
172 ArtifactAndFacet artifactFacet,
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
173 Document theme,
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
174 boolean visible
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
175 ) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
176 String name = artifactFacet.getFacetName();
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
177
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
178 logger.debug("NormalizedReferenceCurveGenerator.doOut: " + name);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
179
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
180 if (name == null || name.length() == 0) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
181 logger.error("No facet given. Cannot create dataset.");
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
182 return;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
183 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
184
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
185 if (name.equals(REFERENCE_CURVE_NORMALIZED)) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
186 doReferenceOut(artifactFacet.getData(context), theme, visible);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
187 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
188 else {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
189 logger.warn("Unknown facet name: " + name);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
190 return;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
191 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
192 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
193
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
194
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
195 /** Register DataSeries with (maybe transformed) points. */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
196 public void doReferenceOut(
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
197 Object data,
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
198 Document theme,
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
199 boolean visible
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
200 ) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
201 WW ww = (WW)data;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
202
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
203 // TODO: Fetch from black board instead!
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
204 WWAxisTypes wwat = new WWAxisTypes(ww);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
205
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
206 ApplyFunctionIterator iter = wwat.transform(ww);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
207
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
208 XYSeries series = new StyledXYSeries(
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
209 ww.getName(), false, theme);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
210
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
211 double [] values = new double[2];
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
212
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
213 while (iter.hasNext()) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
214 iter.next(values);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
215 series.add(values[0], values[1], false);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
216 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
217
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
218 if (ww.endAtGauge()) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
219 addAxisSeries(series, YAXIS.W_M.idx, visible);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
220 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
221 else {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
222 addAxisSeries(series, YAXIS.W_CM.idx, visible);
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
223 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
224 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
225
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
226
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
227 /** Get Walker to iterate over all axes. */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
228 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
229 protected YAxisWalker getYAxisWalker() {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
230 return new YAxisWalker() {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
231 /** Get number of items. */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
232 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
233 public int length() {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
234 return YAXIS.values().length;
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
235 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
236
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
237 /** Get identifier for this index. */
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
238 @Override
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
239 public String getId(int idx) {
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
240 YAXIS[] yaxes = YAXIS.values();
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
241 return yaxes[idx].toString();
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
242 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
243 };
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
244 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
245 }
3f3e4f94171b Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
246 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org