comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixWQCurveGenerator.java @ 3587:9dfbd36474b8

Add more facets to DC and W/Q diag. flys-artifacts/trunk@5203 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 14 Aug 2012 13:32:49 +0000
parents c105b4466b4e
children 76571c601d06
comparison
equal deleted inserted replaced
3586:5cb5a9edc251 3587:9dfbd36474b8
1 package de.intevation.flys.exports.fixings; 1 package de.intevation.flys.exports.fixings;
2 2
3 import de.intevation.artifactdatabase.state.ArtifactAndFacet; 3 import de.intevation.artifactdatabase.state.ArtifactAndFacet;
4 import de.intevation.artifactdatabase.state.Facet;
4 import de.intevation.flys.artifacts.FLYSArtifact; 5 import de.intevation.flys.artifacts.FLYSArtifact;
6 import de.intevation.flys.artifacts.StaticWKmsArtifact;
5 import de.intevation.flys.artifacts.access.FixAnalysisAccess; 7 import de.intevation.flys.artifacts.access.FixAnalysisAccess;
6 import de.intevation.flys.artifacts.model.DateRange; 8 import de.intevation.flys.artifacts.model.DateRange;
7 import de.intevation.flys.artifacts.model.FacetTypes; 9 import de.intevation.flys.artifacts.model.FacetTypes;
8 import de.intevation.flys.artifacts.model.NamedDouble; 10 import de.intevation.flys.artifacts.model.NamedDouble;
9 import de.intevation.flys.artifacts.model.QWDDateRange; 11 import de.intevation.flys.artifacts.model.QWDDateRange;
12 import de.intevation.flys.artifacts.model.WKms;
10 import de.intevation.flys.artifacts.model.fixings.FixFunction; 13 import de.intevation.flys.artifacts.model.fixings.FixFunction;
11 import de.intevation.flys.artifacts.model.fixings.FixWQCurveFacet; 14 import de.intevation.flys.artifacts.model.fixings.FixWQCurveFacet;
12 import de.intevation.flys.artifacts.model.fixings.QW; 15 import de.intevation.flys.artifacts.model.fixings.QW;
13 import de.intevation.flys.artifacts.model.fixings.QWD; 16 import de.intevation.flys.artifacts.model.fixings.QWD;
14 import de.intevation.flys.artifacts.resources.Resources; 17 import de.intevation.flys.artifacts.resources.Resources;
15 import de.intevation.flys.exports.ChartGenerator; 18 import de.intevation.flys.exports.ChartGenerator;
16 import de.intevation.flys.exports.StyledSeriesBuilder; 19 import de.intevation.flys.exports.StyledSeriesBuilder;
17 import de.intevation.flys.jfree.CollisionFreeXYTextAnnotation; 20 import de.intevation.flys.jfree.CollisionFreeXYTextAnnotation;
18 import de.intevation.flys.jfree.FLYSAnnotation; 21 import de.intevation.flys.jfree.FLYSAnnotation;
19 import de.intevation.flys.jfree.JFreeUtil; 22 import de.intevation.flys.jfree.JFreeUtil;
23 import de.intevation.flys.jfree.StickyAxisAnnotation;
20 import de.intevation.flys.jfree.StyledXYSeries; 24 import de.intevation.flys.jfree.StyledXYSeries;
21 import de.intevation.flys.utils.ThemeUtil; 25 import de.intevation.flys.utils.ThemeUtil;
22 26
23 import org.jfree.chart.plot.Marker; 27 import org.jfree.chart.plot.Marker;
24 import org.jfree.chart.plot.ValueMarker; 28 import org.jfree.chart.plot.ValueMarker;
111 doOutlierOut(aaf, doc, visible); 115 doOutlierOut(aaf, doc, visible);
112 } 116 }
113 else if(QSECTOR.equals(name)) { 117 else if(QSECTOR.equals(name)) {
114 doQSectorOut(aaf, doc, visible); 118 doQSectorOut(aaf, doc, visible);
115 } 119 }
120 else if(STATIC_WKMS_INTERPOL.equals(name) ||
121 STATIC_WKMS.equals(name) ||
122 HEIGHTMARKS_POINTS.equals(name) ) {
123 doWAnnotations(
124 aaf.getData(context),
125 aaf,
126 doc,
127 visible);
128 }
116 else if(STATIC_WQ.equals(name)) { 129 else if(STATIC_WQ.equals(name)) {
117 doWQOut(aaf.getData(context), aaf, doc, visible); 130 doWQOut(aaf.getData(context), aaf, doc, visible);
118 } 131 }
119 else { 132 else {
120 logger.warn("Unknown facet name " + name); 133 logger.warn("Unknown facet name " + name);
244 m.setLabelAnchor(RectangleAnchor.TOP_LEFT); 257 m.setLabelAnchor(RectangleAnchor.TOP_LEFT);
245 m.setLabelTextAnchor(TextAnchor.TOP_LEFT); 258 m.setLabelTextAnchor(TextAnchor.TOP_LEFT);
246 addDomainMarker(m); 259 addDomainMarker(m);
247 } 260 }
248 } 261 }
262
263 /**
264 * Add W-Annotations to plot.
265 * @param wqkms actual data (double[][]).
266 * @param theme theme to use.
267 */
268 protected void doWAnnotations(
269 Object wqkms,
270 ArtifactAndFacet aandf,
271 Document theme,
272 boolean visible
273 ) {
274 Facet facet = aandf.getFacet();
275
276 List<StickyAxisAnnotation> xy = new ArrayList<StickyAxisAnnotation>();
277 if (wqkms instanceof double[][]) {
278 logger.debug("Got double[][]");
279 double [][] data = (double [][]) wqkms;
280 for (int i = 0; i< data[0].length; i++) {
281 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(),
282 (float) data[1][i], StickyAxisAnnotation.SimpleAxis.Y_AXIS));
283 }
284
285 doAnnotations(new FLYSAnnotation(facet.getDescription(), xy),
286 aandf, theme, visible);
287 }
288 else {
289 // Assume its WKms.
290 logger.debug("Got WKms");
291 WKms data = (WKms) wqkms;
292 Double ckm = (Double) context.getContextValue("currentKm");
293 double location = (ckm != null)
294 ? ckm.doubleValue()
295 : getRange()[0];
296 double w = ((StaticWKmsArtifact) aandf.getArtifact())
297 .getWAtKmLin(data, location);
298 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(),
299 (float) w, StickyAxisAnnotation.SimpleAxis.Y_AXIS));
300
301 doAnnotations(new FLYSAnnotation(facet.getDescription(), xy),
302 aandf, theme, visible);
303 }
304 }
305
249 306
250 /** 307 /**
251 * Add WQ Data to plot. 308 * Add WQ Data to plot.
252 * @param wqkms data as double[][] 309 * @param wqkms data as double[][]
253 */ 310 */

http://dive4elements.wald.intevation.org