annotate flys-artifacts/src/main/java/de/intevation/flys/exports/extreme/ExtremeWQCurveGenerator.java @ 4345:8eabbc5198e1

Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 01 Nov 2012 12:10:31 +0100
parents
children 17251b058bf1
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;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10 import org.w3c.dom.Document;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12 import de.intevation.artifactdatabase.state.ArtifactAndFacet;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import de.intevation.artifactdatabase.state.Facet;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 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
15 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
16 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
17 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
18 import de.intevation.flys.artifacts.model.extreme.ExtremeCurveFacet;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.exports.fixings.FixWQCurveGenerator;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.artifacts.resources.Resources;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.exports.ChartGenerator;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.jfree.JFreeUtil;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.jfree.StyledXYSeries;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25 /**
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 * Generator for WQ fixing charts.
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27 * @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
28 */
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 public class ExtremeWQCurveGenerator
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30 extends FixWQCurveGenerator
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31 implements FacetTypes
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 /** Private logger. */
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34 private static Logger logger =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 Logger.getLogger(ExtremeWQCurveGenerator.class);
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 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
38 "chart.extreme.wq.title";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40 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
41 "chart.extreme.wq.subtitle";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43 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
44 "chart.extreme.wq.subtitle1";
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46 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
47 "chart.extreme.wq.xaxis.label";
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_YAXIS_LABEL =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 "chart.extreme.wq.yaxis.label";
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_TITLE_DEFAULT =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 "Extremkurvenanalyse";
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_XAXIS_LABEL_DEFAULT =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56 "Q [m\u00B3/s]";
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_YAXIS_LABEL_DEFAULT =
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59 "W [NN + m]";
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 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 public void doOut(ArtifactAndFacet aaf, Document doc, boolean visible) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 super.doOut(aaf, doc, visible);
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 String name = aaf.getFacetName();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
66 logger.debug("doOut: " + name);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 if (name.equals(EXTREME_WQ_CURVE)) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69 doExtremeCurveOut(aaf, doc, visible);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
71 else {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72 logger.warn("Unknown facet name " + name);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73 return;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78 /** Do Extreme Curve out */
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79 protected void doExtremeCurveOut(ArtifactAndFacet aaf, Document doc, boolean visible) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 logger.debug("doExtremeCurveOut");
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 ExtremeCurveFacet facet = (ExtremeCurveFacet) aaf.getFacet();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 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
83 if (curve == null) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84 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
85 return;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 double maxQ = curve.getSuggestedMaxQ();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
89 if (maxQ == Double.MAX_VALUE) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90 maxQ = 8000;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93 StyledXYSeries series = JFreeUtil.sampleFunction2D(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
94 curve,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
95 doc,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
96 aaf.getFacetDescription(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
97 500, // number of samples
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
98 0.0 , // start
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 maxQ); // end
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
101 // Add marker from where on its extrapolated.
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
102 double[] qs = curve.getQs();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
103 double extrapolateFrom = qs[qs.length-1];
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
104
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
105 Marker m = new ValueMarker(extrapolateFrom);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
106 m.setPaint(Color.black);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
107 addDomainMarker(m);
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 addAxisSeries(series, 0, visible);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
110 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
111
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
112 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
113 protected String getChartTitle() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
114 return Resources.format(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
115 context.getMeta(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 I18N_CHART_TITLE,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
117 I18N_CHART_TITLE_DEFAULT,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
118 context.getContextValue(CURRENT_KM));
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
119 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
120
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
121 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
122 protected String getDefaultChartTitle() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
123 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
124 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
125
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127 protected String getDefaultChartSubtitle() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
128 FixAnalysisAccess access = new FixAnalysisAccess(artifact);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
129 DateRange dateRange = access.getDateRange();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
130 DateRange refRange = access.getReferencePeriod();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132 if (dateRange != null && refRange != null) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133 return Resources.format(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
134 context.getMeta(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
135 I18N_CHART_SUBTITLE,
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
136 "",
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
137 access.getRiver(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
138 dateRange.getFrom(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
139 dateRange.getTo(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140 refRange.getFrom(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141 refRange.getTo());
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
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
144 return null;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
146
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 void addSubtitles(JFreeChart chart) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
149 String defaultSubtitle = getDefaultChartSubtitle();
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 if (defaultSubtitle == null || defaultSubtitle.length() == 0) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
152 return;
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
154
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
155 chart.addSubtitle(new TextTitle(defaultSubtitle));
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
156
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
157 StringBuilder buf = new StringBuilder();
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 // Add analysis periods as additional subtitle
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
160 FixAnalysisAccess access = new FixAnalysisAccess(artifact);
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
161 DateRange[] aperiods = access.getAnalysisPeriods();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
162 buf.append(msg("fix.analysis.periods"));
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
163 buf.append(": ");
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
164 for(int n = 0; n < aperiods.length; n++) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
165 buf.append(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166 Resources.format(
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167 context.getMeta(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168 I18N_CHART_SUBTITLE1,
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 aperiods[n].getFrom(),
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
171 aperiods[n].getTo()));
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
172 if(n + 1 < aperiods.length) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
173 buf.append("; ");
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
175 }
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 chart.addSubtitle(new TextTitle(buf.toString()));
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
178 }
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 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
181 protected String getDefaultXAxisLabel() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
182 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
183 }
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 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 protected String getDefaultYAxisLabel(int pos) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
187 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
188 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
189
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
190 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
191 protected ChartGenerator.YAxisWalker getYAxisWalker() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
192 return new YAxisWalker() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
193 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
194 public int length() {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
195 return YAXIS.values().length;
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
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
198 @Override
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
199 public String getId(int idx) {
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
200 YAXIS[] yaxes = YAXIS.values();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
201 return yaxes[idx].toString();
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
202 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
203 };
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
204 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
205 }
8eabbc5198e1 Added new Generator: ExtremeWQCurveGenerator (and its *Info*-counterpart).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
206 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org