annotate flys-artifacts/src/main/java/de/intevation/flys/exports/extreme/ExtremeWQCurveGenerator.java @ 4434:60c728e557f4

Backed out changeset e8a4d2fd25cc
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 07 Nov 2012 12:28:50 +0100
parents e8a4d2fd25cc
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