Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/extreme/ExtremeWQCurveGenerator.java @ 4362:17251b058bf1
ExtremeWQCurveGenerator: Reuse prerpareChartData, handle new extreme_wq_curve_base facet.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 02 Nov 2012 12:09:50 +0100 |
parents | 8eabbc5198e1 |
children | 3ae698d1185d |
comparison
equal
deleted
inserted
replaced
4361:7302c635dfda | 4362:17251b058bf1 |
---|---|
5 import org.apache.log4j.Logger; | 5 import org.apache.log4j.Logger; |
6 import org.jfree.chart.JFreeChart; | 6 import org.jfree.chart.JFreeChart; |
7 import org.jfree.chart.plot.Marker; | 7 import org.jfree.chart.plot.Marker; |
8 import org.jfree.chart.plot.ValueMarker; | 8 import org.jfree.chart.plot.ValueMarker; |
9 import org.jfree.chart.title.TextTitle; | 9 import org.jfree.chart.title.TextTitle; |
10 import org.jfree.data.xy.XYSeries; | |
10 import org.w3c.dom.Document; | 11 import org.w3c.dom.Document; |
11 | 12 |
12 import de.intevation.artifactdatabase.state.ArtifactAndFacet; | 13 import de.intevation.artifactdatabase.state.ArtifactAndFacet; |
13 import de.intevation.artifactdatabase.state.Facet; | 14 import de.intevation.artifactdatabase.state.Facet; |
14 import de.intevation.flys.artifacts.access.FixAnalysisAccess; | 15 import de.intevation.flys.artifacts.access.FixAnalysisAccess; |
15 import de.intevation.flys.artifacts.model.DateRange; | 16 import de.intevation.flys.artifacts.model.DateRange; |
16 import de.intevation.flys.artifacts.model.FacetTypes; | 17 import de.intevation.flys.artifacts.model.FacetTypes; |
17 import de.intevation.flys.artifacts.model.extreme.Curve; | 18 import de.intevation.flys.artifacts.model.extreme.Curve; |
18 import de.intevation.flys.artifacts.model.extreme.ExtremeCurveFacet; | 19 import de.intevation.flys.artifacts.model.extreme.ExtremeCurveFacet; |
20 import de.intevation.flys.artifacts.resources.Resources; | |
19 import de.intevation.flys.exports.fixings.FixWQCurveGenerator; | 21 import de.intevation.flys.exports.fixings.FixWQCurveGenerator; |
20 import de.intevation.flys.artifacts.resources.Resources; | 22 import de.intevation.flys.exports.StyledSeriesBuilder; |
21 import de.intevation.flys.exports.ChartGenerator; | 23 import de.intevation.flys.exports.ChartGenerator; |
22 import de.intevation.flys.jfree.JFreeUtil; | 24 import de.intevation.flys.jfree.JFreeUtil; |
23 import de.intevation.flys.jfree.StyledXYSeries; | 25 import de.intevation.flys.jfree.StyledXYSeries; |
24 | 26 |
25 /** | 27 /** |
56 "Q [m\u00B3/s]"; | 58 "Q [m\u00B3/s]"; |
57 | 59 |
58 public static final String I18N_YAXIS_LABEL_DEFAULT = | 60 public static final String I18N_YAXIS_LABEL_DEFAULT = |
59 "W [NN + m]"; | 61 "W [NN + m]"; |
60 | 62 |
61 @Override | 63 |
62 public void doOut(ArtifactAndFacet aaf, Document doc, boolean visible) { | 64 @Override |
63 super.doOut(aaf, doc, visible); | 65 public boolean prepareChartData(ArtifactAndFacet aaf, Document theme, boolean visible) { |
64 | 66 if (!super.prepareChartData(aaf, theme, visible)) { |
65 String name = aaf.getFacetName(); | 67 String name = aaf.getFacetName(); |
66 logger.debug("doOut: " + name); | 68 if (name.equals(EXTREME_WQ_CURVE)) { |
67 | 69 doExtremeCurveOut(aaf, theme, visible); |
68 if (name.equals(EXTREME_WQ_CURVE)) { | 70 return true; |
69 doExtremeCurveOut(aaf, doc, visible); | 71 } |
70 } | 72 else if (name.equals(EXTREME_WQ_CURVE_BASE)) { |
71 else { | 73 doExtremeCurveBaseOut(aaf, theme, visible); |
72 logger.warn("Unknown facet name " + name); | 74 return true; |
75 } | |
76 return false; | |
77 } | |
78 return true; | |
79 } | |
80 | |
81 /** Do Extreme Curve nonextrapolated points out. */ | |
82 protected void doExtremeCurveBaseOut(ArtifactAndFacet aaf, Document theme, boolean visible) { | |
83 logger.debug("doExtremeCurveBaseOut"); | |
84 ExtremeCurveFacet facet = (ExtremeCurveFacet) aaf.getFacet(); | |
85 Curve curve = (Curve) facet.getData(aaf.getArtifact(), context); | |
86 if (curve == null) { | |
87 logger.warn("doExtremeCurveiBaseOut: Facet does not contain Curve"); | |
73 return; | 88 return; |
74 } | 89 } |
90 | |
91 XYSeries qwseries = new StyledXYSeries("meas", theme); | |
92 StyledSeriesBuilder.addPointsQW(qwseries, curve.getQs(), curve.getWs()); | |
93 | |
94 addAxisSeries(qwseries, YAXIS.W.idx, visible); | |
75 } | 95 } |
76 | 96 |
77 | 97 |
78 /** Do Extreme Curve out */ | 98 /** Do Extreme Curve out */ |
79 protected void doExtremeCurveOut(ArtifactAndFacet aaf, Document doc, boolean visible) { | 99 protected void doExtremeCurveOut(ArtifactAndFacet aaf, Document theme, boolean visible) { |
80 logger.debug("doExtremeCurveOut"); | 100 logger.debug("doExtremeCurveOut"); |
81 ExtremeCurveFacet facet = (ExtremeCurveFacet) aaf.getFacet(); | 101 ExtremeCurveFacet facet = (ExtremeCurveFacet) aaf.getFacet(); |
82 Curve curve = (Curve) facet.getData(aaf.getArtifact(), context); | 102 Curve curve = (Curve) facet.getData(aaf.getArtifact(), context); |
83 if (curve == null) { | 103 if (curve == null) { |
84 logger.warn("doExtremeCurveOut: Facet does not contain Curve"); | 104 logger.warn("doExtremeCurveOut: Facet does not contain Curve"); |
90 maxQ = 8000; | 110 maxQ = 8000; |
91 } | 111 } |
92 | 112 |
93 StyledXYSeries series = JFreeUtil.sampleFunction2D( | 113 StyledXYSeries series = JFreeUtil.sampleFunction2D( |
94 curve, | 114 curve, |
95 doc, | 115 theme, |
96 aaf.getFacetDescription(), | 116 aaf.getFacetDescription(), |
97 500, // number of samples | 117 500, // number of samples |
98 0.0 , // start | 118 0.0 , // start |
99 maxQ); // end | 119 maxQ); // end |
100 | 120 |
106 m.setPaint(Color.black); | 126 m.setPaint(Color.black); |
107 addDomainMarker(m); | 127 addDomainMarker(m); |
108 | 128 |
109 addAxisSeries(series, 0, visible); | 129 addAxisSeries(series, 0, visible); |
110 } | 130 } |
131 | |
111 | 132 |
112 @Override | 133 @Override |
113 protected String getChartTitle() { | 134 protected String getChartTitle() { |
114 return Resources.format( | 135 return Resources.format( |
115 context.getMeta(), | 136 context.getMeta(), |