annotate artifacts/src/main/java/org/dive4elements/river/exports/extreme/ExtremeWQCurveGenerator.java @ 5863:4897a58c8746

River artifacts: Added new copyright headers.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 28 Apr 2013 14:40:59 +0200
parents 5aa05a7a34b7
children af13ceeba52a
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
6 * documentation coming with Dive4Elements River for details.
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
9 package org.dive4elements.river.exports.extreme;
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11 import java.awt.Color;
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 org.apache.log4j.Logger;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import org.jfree.chart.JFreeChart;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import org.jfree.chart.plot.Marker;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import org.jfree.chart.plot.ValueMarker;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17 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
18 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
19 import org.w3c.dom.Document;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
21 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
22 import org.dive4elements.artifactdatabase.state.Facet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
23 import org.dive4elements.river.artifacts.access.FixAnalysisAccess;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
24 import org.dive4elements.river.artifacts.model.DateRange;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
25 import org.dive4elements.river.artifacts.model.FacetTypes;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
26 import org.dive4elements.river.artifacts.model.extreme.Curve;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
27 import org.dive4elements.river.artifacts.model.extreme.ExtremeCurveFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
28 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
29 import org.dive4elements.river.exports.fixings.FixWQCurveGenerator;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
30 import org.dive4elements.river.exports.StyledSeriesBuilder;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
31 import org.dive4elements.river.jfree.JFreeUtil;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
32 import org.dive4elements.river.jfree.StyledXYSeries;
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4866
diff changeset
34 import org.dive4elements.river.utils.ThemeUtil;
4390
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
35
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
36
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 /**
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38 * Generator for WQ fixing charts.
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39 * @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
40 */
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41 public class ExtremeWQCurveGenerator
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42 extends FixWQCurveGenerator
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43 implements FacetTypes
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45 /** Private logger. */
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46 private static Logger logger =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 Logger.getLogger(ExtremeWQCurveGenerator.class);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49 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
50 "chart.extreme.wq.title";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52 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
53 "chart.extreme.wq.subtitle";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55 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
56 "chart.extreme.wq.subtitle1";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58 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
59 "chart.extreme.wq.xaxis.label";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 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
62 "chart.extreme.wq.yaxis.label";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64 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
65 "Extremkurvenanalyse";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
66
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67 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
68 "Q [m\u00B3/s]";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70 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
71 "W [NN + m]";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
74 @Override
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
75 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
76 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
77 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
78 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
79 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
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 }
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
82 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
83 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
84 return true;
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
85 }
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
86 return false;
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
87 }
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
88 return true;
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
89 }
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
91 /** 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
92 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
93 logger.debug("doExtremeCurveBaseOut");
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
94 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
95 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
96 if (curve == null) {
4410
c9e06ba9359a ExtremeWQCurveGenerator: Fixed typo in debug output.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4409
diff changeset
97 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
98 return;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 }
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
100
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
101 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
102 StyledSeriesBuilder.addPointsQW(qwseries, curve.getQs(), curve.getWs());
4736
b195fede1c3b Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4433
diff changeset
103
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
104 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
105 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
106
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
107
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
108 /** 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
109 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
110 logger.debug("doExtremeCurveOut");
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
111 ExtremeCurveFacet facet = (ExtremeCurveFacet) aaf.getFacet();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
112 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
113 if (curve == null) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
114 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
115 return;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
117
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
118 double maxQ = curve.getSuggestedMaxQ();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
119 if (maxQ == Double.MAX_VALUE) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
120 maxQ = 8000;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
121 }
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 StyledXYSeries series = JFreeUtil.sampleFunction2D(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
124 curve,
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
125 theme,
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126 aaf.getFacetDescription(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127 500, // number of samples
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
128 0.0 , // start
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
129 maxQ); // end
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
130
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131 // 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
132 if (ThemeUtil.parseShowExtraMark(theme)) {
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
133 double[] qs = curve.getQs();
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
134 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
135
4390
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
136 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
137 m.setPaint(Color.black);
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
138 addDomainMarker(m);
c624aa9ca4cf ExtremeWQCurveGenerator: Respect theme prop about showing the extrapol-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4388
diff changeset
139 }
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141 addAxisSeries(series, 0, visible);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
142 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
143
4362
17251b058bf1 ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4345
diff changeset
144
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
146 protected String getChartTitle() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
147 return Resources.format(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
148 context.getMeta(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
149 I18N_CHART_TITLE,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
150 I18N_CHART_TITLE_DEFAULT,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
151 context.getContextValue(CURRENT_KM));
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
152 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153
4388
7fc4855ecd26 ExtremeWQCurveGenerator: Removed more or less dead code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4387
diff changeset
154
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
155 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
156 protected String getDefaultChartTitle() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
157 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
158 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
159
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
160 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
161 protected String getDefaultChartSubtitle() {
4866
acfd48384835 Changed data field names in fix analsis to ld_from, ld_to, ld step.
Raimund Renkert <rrenkert@intevation.de>
parents: 4736
diff changeset
162 FixAnalysisAccess access = new FixAnalysisAccess(artifact, context);
4345
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
163 DateRange dateRange = access.getDateRange();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
164 DateRange refRange = access.getReferencePeriod();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
165
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166 if (dateRange != null && refRange != null) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167 return Resources.format(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168 context.getMeta(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
169 I18N_CHART_SUBTITLE,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
170 "",
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
171 access.getRiver(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
172 dateRange.getFrom(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
173 dateRange.getTo(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 refRange.getFrom(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
175 refRange.getTo());
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
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
178 return null;
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 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
182 protected void addSubtitles(JFreeChart chart) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
183 String defaultSubtitle = getDefaultChartSubtitle();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
184
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
185 if (defaultSubtitle == null || defaultSubtitle.length() == 0) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 return;
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 chart.addSubtitle(new TextTitle(defaultSubtitle));
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
190 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
191
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
192 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
193 protected String getDefaultXAxisLabel() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
194 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
195 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
196
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
197 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
198 protected String getDefaultYAxisLabel(int pos) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
199 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
200 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
201 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
202 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org