annotate flys-artifacts/src/main/java/de/intevation/flys/exports/extreme/ExtremeWQCurveGenerator.java @ 4573:b87073a05f9d

flys-client: Patch to render combobox options as clickable links. The way of passing data arguments to the links and further to the Artifact feeding service is somewhat hacked and should be refactored (later...).
author Christian Lins <christian.lins@intevation.de>
date Tue, 27 Nov 2012 12:50:10 +0100
parents 5b8919ef601d
children b195fede1c3b
rev   line source
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.exports.extreme;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
3 import java.awt.Color;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
4
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
5 import org.apache.log4j.Logger;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
6 import org.jfree.chart.JFreeChart;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
7 import org.jfree.chart.plot.Marker;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
8 import org.jfree.chart.plot.ValueMarker;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
9 import org.jfree.chart.title.TextTitle;
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
10 import org.jfree.data.xy.XYSeries;
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11 import org.w3c.dom.Document;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import de.intevation.artifactdatabase.state.ArtifactAndFacet;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import de.intevation.artifactdatabase.state.Facet;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import de.intevation.flys.artifacts.access.FixAnalysisAccess;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import de.intevation.flys.artifacts.model.DateRange;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17 import de.intevation.flys.artifacts.model.FacetTypes;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.artifacts.model.extreme.Curve;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.artifacts.model.extreme.ExtremeCurveFacet;
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
20 import de.intevation.flys.artifacts.resources.Resources;
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.exports.fixings.FixWQCurveGenerator;
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
22 import de.intevation.flys.exports.StyledSeriesBuilder;
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.jfree.JFreeUtil;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24 import de.intevation.flys.jfree.StyledXYSeries;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25
4390
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
26 import de.intevation.flys.utils.ThemeUtil;
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
27
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
28
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 /**
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30 * Generator for WQ fixing charts.
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31 * @author <a href="mailto:christian.lins@intevation.de">Christian Lins</a>
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 */
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 public class ExtremeWQCurveGenerator
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34 extends FixWQCurveGenerator
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 implements FacetTypes
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 /** Private logger. */
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38 private static Logger logger =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39 Logger.getLogger(ExtremeWQCurveGenerator.class);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41 public static final String I18N_CHART_TITLE =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42 "chart.extreme.wq.title";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 public static final String I18N_CHART_SUBTITLE =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45 "chart.extreme.wq.subtitle";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 public static final String I18N_CHART_SUBTITLE1 =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 "chart.extreme.wq.subtitle1";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 public static final String I18N_XAXIS_LABEL =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 "chart.extreme.wq.xaxis.label";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 public static final String I18N_YAXIS_LABEL =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54 "chart.extreme.wq.yaxis.label";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56 public static final String I18N_CHART_TITLE_DEFAULT =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57 "Extremkurvenanalyse";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59 public static final String I18N_XAXIS_LABEL_DEFAULT =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60 "Q [m\u00B3/s]";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 public static final String I18N_YAXIS_LABEL_DEFAULT =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 "W [NN + m]";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
65
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
66 @Override
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
67 public boolean prepareChartData(ArtifactAndFacet aaf, Document theme, boolean visible) {
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
68 if (!super.prepareChartData(aaf, theme, visible)) {
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
69 String name = aaf.getFacetName();
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
70 if (name.equals(EXTREME_WQ_CURVE)) {
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
71 doExtremeCurveOut(aaf, theme, visible);
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
72 return true;
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
73 }
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
74 else if (name.equals(EXTREME_WQ_CURVE_BASE)) {
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
75 doExtremeCurveBaseOut(aaf, theme, visible);
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
76 return true;
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
77 }
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
78 return false;
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
79 }
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
80 return true;
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
81 }
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
83 /** Do Extreme Curve nonextrapolated points out. */
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
84 protected void doExtremeCurveBaseOut(ArtifactAndFacet aaf, Document theme, boolean visible) {
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
85 logger.debug("doExtremeCurveBaseOut");
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
86 ExtremeCurveFacet facet = (ExtremeCurveFacet) aaf.getFacet();
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
87 Curve curve = (Curve) facet.getData(aaf.getArtifact(), context);
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
88 if (curve == null) {
4410
c9e06ba9359a ExtremeWQCurveGenerator: Fixed typo in debug output.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4409
diff changeset
89 logger.warn("doExtremeCurveBaseOut: Facet does not contain Curve");
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90 return;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 }
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
92
4387
3ae698d1185d ExtremeWQCurveGenerator: Use real facet description as name for data series of extreme wqs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4362
diff changeset
93 XYSeries qwseries = new StyledXYSeries(aaf.getFacetDescription(), theme);
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
94 StyledSeriesBuilder.addPointsQW(qwseries, curve.getQs(), curve.getWs());
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
95
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
96 addAxisSeries(qwseries, YAXIS.W.idx, visible);
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
97 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
98
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100 /** Do Extreme Curve out */
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
101 protected void doExtremeCurveOut(ArtifactAndFacet aaf, Document theme, boolean visible) {
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
102 logger.debug("doExtremeCurveOut");
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
103 ExtremeCurveFacet facet = (ExtremeCurveFacet) aaf.getFacet();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
104 Curve curve = (Curve) facet.getData(aaf.getArtifact(), context);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
105 if (curve == null) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
106 logger.warn("doExtremeCurveOut: Facet does not contain Curve");
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
107 return;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
108 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
109
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
110 double maxQ = curve.getSuggestedMaxQ();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
111 if (maxQ == Double.MAX_VALUE) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
112 maxQ = 8000;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
113 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
114
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
115 StyledXYSeries series = JFreeUtil.sampleFunction2D(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 curve,
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
117 theme,
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
118 aaf.getFacetDescription(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
119 500, // number of samples
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
120 0.0 , // start
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
121 maxQ); // end
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
122
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
123 // Add marker from where on its extrapolated.
4390
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
124 if (ThemeUtil.parseShowExtraMark(theme)) {
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
125 double[] qs = curve.getQs();
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
126 double extrapolateFrom = qs[qs.length-1];
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127
4390
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
128 Marker m = new ValueMarker(extrapolateFrom);
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
129 m.setPaint(Color.black);
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
130 addDomainMarker(m);
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
131 }
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133 addAxisSeries(series, 0, visible);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
134 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
135
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
136
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
137 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
138 protected String getChartTitle() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
139 return Resources.format(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140 context.getMeta(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141 I18N_CHART_TITLE,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
142 I18N_CHART_TITLE_DEFAULT,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
143 context.getContextValue(CURRENT_KM));
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
144 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145
4388
7fc4855ecd26 ExtremeWQCurveGenerator: Removed more or less dead code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4387
diff changeset
146
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
147 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
148 protected String getDefaultChartTitle() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
149 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
150 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
151
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
152 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153 protected String getDefaultChartSubtitle() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
154 FixAnalysisAccess access = new FixAnalysisAccess(artifact);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
155 DateRange dateRange = access.getDateRange();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
156 DateRange refRange = access.getReferencePeriod();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
157
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
158 if (dateRange != null && refRange != null) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
159 return Resources.format(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
160 context.getMeta(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
161 I18N_CHART_SUBTITLE,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
162 "",
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
163 access.getRiver(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
164 dateRange.getFrom(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
165 dateRange.getTo(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166 refRange.getFrom(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167 refRange.getTo());
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
169
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
170 return null;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
171 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
172
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
173 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 protected void addSubtitles(JFreeChart chart) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
175 String defaultSubtitle = getDefaultChartSubtitle();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
176
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
177 if (defaultSubtitle == null || defaultSubtitle.length() == 0) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
178 return;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
179 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
180
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
181 chart.addSubtitle(new TextTitle(defaultSubtitle));
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
182 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
183
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
184 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
185 protected String getDefaultXAxisLabel() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
187 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
188
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
189 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
190 protected String getDefaultYAxisLabel(int pos) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
191 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
192 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
193 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
194 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org