comparison artifacts/src/main/java/org/dive4elements/river/exports/process/ComputedDischargeProcessor.java @ 8182:0b4cd7a5f079

Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
author Raimund Renkert <rrenkert@intevation.de>
date Thu, 04 Sep 2014 11:14:24 +0200
parents
children e4606eae8ea5
comparison
equal deleted inserted replaced
8181:209f8a9e8a75 8182:0b4cd7a5f079
1 package org.dive4elements.river.exports.process;
2
3 import org.apache.log4j.Logger;
4 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
5 import org.dive4elements.artifacts.CallContext;
6 import org.dive4elements.river.artifacts.model.FacetTypes;
7 import org.dive4elements.river.artifacts.model.WQKms;
8 import org.dive4elements.river.exports.DiagramGenerator;
9 import org.dive4elements.river.exports.StyledSeriesBuilder;
10 import org.dive4elements.river.jfree.StyledXYSeries;
11 import org.dive4elements.river.themes.ThemeDocument;
12 import org.jfree.data.xy.XYSeries;
13
14
15 public class ComputedDischargeProcessor
16 extends DefaultProcessor
17 implements FacetTypes
18 {
19 private static Logger logger =
20 Logger.getLogger(ComputedDischargeProcessor.class);
21
22
23 @Override
24 public void doOut(
25 DiagramGenerator generator,
26 ArtifactAndFacet bundle,
27 ThemeDocument theme,
28 boolean visible
29 ) {
30 CallContext context = generator.getCallContext();
31 Object data = bundle.getData(context);
32 if (data instanceof WQKms) {
33 doDischargeOut(generator, bundle, theme, visible);
34 }
35 }
36
37 @Override
38 public String getAxisLabel(DiagramGenerator generator) {
39 return null;
40 }
41
42 /**
43 * Returns true if the Processor class is able to generate output for a facet type
44 *
45 * @param facettype Name of the facet type
46 * @return true if the facettype can be processed
47 */
48 @Override
49 public boolean canHandle(String facettype) {
50 return COMPUTED_DISCHARGE_Q.equals(facettype);
51 }
52
53 private void doDischargeOut(
54 DiagramGenerator generator,
55 ArtifactAndFacet bundle,
56 ThemeDocument theme,
57 boolean visible
58 ) {
59 CallContext context = generator.getCallContext();
60 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
61 Object data = bundle.getData(context);
62 WQKms wqkms = (WQKms) data;
63 double[][] wqData = new double[2][wqkms.size()];
64 for (int i = 0; i < wqkms.size(); i++) {
65 wqData[0][i] = wqkms.getQ(i);
66 wqData[1][i] = wqkms.getW(i);
67 }
68 StyledSeriesBuilder.addPoints(series, wqData, false);
69 generator.addAxisSeries(series, axisName, visible);
70
71 }
72 }

http://dive4elements.wald.intevation.org