comparison artifacts/src/main/java/org/dive4elements/river/exports/process/ComputedDischargeProcessor.java @ 8354:9f9857f6c464

Added y axis label to discharge processors.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 01 Oct 2014 13:40:04 +0200
parents e4606eae8ea5
children 0fa963038c61
comparison
equal deleted inserted replaced
8353:a82f24b773e7 8354:9f9857f6c464
1 package org.dive4elements.river.exports.process; 1 package org.dive4elements.river.exports.process;
2
3 import java.util.Map;
2 4
3 import org.apache.log4j.Logger; 5 import org.apache.log4j.Logger;
4 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; 6 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
5 import org.dive4elements.artifacts.CallContext; 7 import org.dive4elements.artifacts.CallContext;
8 import org.dive4elements.artifacts.CallMeta;
9 import org.dive4elements.river.artifacts.D4EArtifact;
10 import org.dive4elements.river.artifacts.access.RiverAccess;
6 import org.dive4elements.river.artifacts.model.FacetTypes; 11 import org.dive4elements.river.artifacts.model.FacetTypes;
7 import org.dive4elements.river.artifacts.model.WQKms; 12 import org.dive4elements.river.artifacts.model.WQKms;
13 import org.dive4elements.river.artifacts.resources.Resources;
8 import org.dive4elements.river.exports.DiagramGenerator; 14 import org.dive4elements.river.exports.DiagramGenerator;
9 import org.dive4elements.river.exports.StyledSeriesBuilder; 15 import org.dive4elements.river.exports.StyledSeriesBuilder;
10 import org.dive4elements.river.jfree.StyledXYSeries; 16 import org.dive4elements.river.jfree.StyledXYSeries;
11 import org.dive4elements.river.themes.ThemeDocument; 17 import org.dive4elements.river.themes.ThemeDocument;
12 import org.jfree.data.xy.XYSeries;
13 18
14 19
15 public class ComputedDischargeProcessor 20 public class ComputedDischargeProcessor
16 extends DefaultProcessor 21 extends DefaultProcessor
17 implements FacetTypes 22 implements FacetTypes
18 { 23 {
19 private static Logger log = 24 private static Logger log =
20 Logger.getLogger(ComputedDischargeProcessor.class); 25 Logger.getLogger(ComputedDischargeProcessor.class);
21 26
27 private String yAxisLabel = "";
28
29 private String I18N_AXIS_LABEL = "chart.discharge.curve.yaxis.label";
22 30
23 @Override 31 @Override
24 public void doOut( 32 public void doOut(
25 DiagramGenerator generator, 33 DiagramGenerator generator,
26 ArtifactAndFacet bundle, 34 ArtifactAndFacet bundle,
34 } 42 }
35 } 43 }
36 44
37 @Override 45 @Override
38 public String getAxisLabel(DiagramGenerator generator) { 46 public String getAxisLabel(DiagramGenerator generator) {
39 return null; 47 CallMeta meta = generator.getCallContext().getMeta();
48 RiverAccess access = new RiverAccess((D4EArtifact)generator.getMaster());
49 String unit = access.getRiver().getWstUnit().getName();
50 if (yAxisLabel != null && !yAxisLabel.isEmpty()) {
51 return Resources.getMsg(
52 meta,
53 yAxisLabel,
54 new Object[] { unit });
55 }
56 return Resources.getMsg(
57 meta,
58 I18N_AXIS_LABEL,
59 new Object[] { unit });
40 } 60 }
41 61
42 /** 62 /**
43 * Returns true if the Processor class is able to generate output for a facet type 63 * Returns true if the Processor class is able to generate output for a facet type
44 * 64 *
55 ArtifactAndFacet bundle, 75 ArtifactAndFacet bundle,
56 ThemeDocument theme, 76 ThemeDocument theme,
57 boolean visible 77 boolean visible
58 ) { 78 ) {
59 CallContext context = generator.getCallContext(); 79 CallContext context = generator.getCallContext();
60 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); 80 Map<String, String> metaData = bundle.getFacet().getMetaData(
81 bundle.getArtifact(), context);
82 StyledXYSeries series =
83 new StyledXYSeries(bundle.getFacetDescription(), theme);
61 Object data = bundle.getData(context); 84 Object data = bundle.getData(context);
85
86 series.putMetaData(metaData, bundle.getArtifact(), context);
87 yAxisLabel = metaData.get("Y");
88
62 WQKms wqkms = (WQKms) data; 89 WQKms wqkms = (WQKms) data;
63 double[][] wqData = new double[2][wqkms.size()]; 90 double[][] wqData = new double[2][wqkms.size()];
64 for (int i = 0; i < wqkms.size(); i++) { 91 for (int i = 0; i < wqkms.size(); i++) {
65 wqData[0][i] = wqkms.getQ(i); 92 wqData[0][i] = wqkms.getQ(i);
66 wqData[1][i] = wqkms.getW(i); 93 wqData[1][i] = wqkms.getW(i);
67 } 94 }
68 StyledSeriesBuilder.addPoints(series, wqData, false); 95 StyledSeriesBuilder.addPoints(series, wqData, false);
69 generator.addAxisSeries(series, axisName, visible); 96 generator.addAxisSeries(series, axisName, visible);
70
71 } 97 }
72 } 98 }

http://dive4elements.wald.intevation.org