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(),

http://dive4elements.wald.intevation.org