comparison artifacts/src/main/java/org/dive4elements/river/exports/process/DischargeProcessor.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 b37cd2db9659
comparison
equal deleted inserted replaced
8353:a82f24b773e7 8354:9f9857f6c464
6 * documentation coming with Dive4Elements River for details. 6 * documentation coming with Dive4Elements River for details.
7 */ 7 */
8 8
9 package org.dive4elements.river.exports.process; 9 package org.dive4elements.river.exports.process;
10 10
11 import java.util.Map;
12
11 import org.apache.log4j.Logger; 13 import org.apache.log4j.Logger;
12 import org.jfree.data.xy.XYSeries; 14 import org.jfree.data.xy.XYSeries;
13 15
14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; 16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
15 import org.dive4elements.artifacts.CallContext; 17 import org.dive4elements.artifacts.CallContext;
18 import org.dive4elements.artifacts.CallMeta;
16 import org.dive4elements.river.artifacts.D4EArtifact; 19 import org.dive4elements.river.artifacts.D4EArtifact;
17 import org.dive4elements.river.artifacts.access.RiverAccess; 20 import org.dive4elements.river.artifacts.access.RiverAccess;
18 import org.dive4elements.river.artifacts.model.FacetTypes; 21 import org.dive4elements.river.artifacts.model.FacetTypes;
19 import org.dive4elements.river.artifacts.model.WQKms; 22 import org.dive4elements.river.artifacts.model.WQKms;
23 import org.dive4elements.river.artifacts.resources.Resources;
20 import org.dive4elements.river.exports.DiagramGenerator; 24 import org.dive4elements.river.exports.DiagramGenerator;
21 import org.dive4elements.river.exports.StyledSeriesBuilder; 25 import org.dive4elements.river.exports.StyledSeriesBuilder;
22 import org.dive4elements.river.jfree.StyledXYSeries; 26 import org.dive4elements.river.jfree.StyledXYSeries;
23 import org.dive4elements.river.model.Gauge; 27 import org.dive4elements.river.model.Gauge;
24 import org.dive4elements.river.model.River; 28 import org.dive4elements.river.model.River;
35 /** Station for which the diagram is shown. */ 39 /** Station for which the diagram is shown. */
36 private double km; 40 private double km;
37 41
38 /** Tolerance for comparison of kilometers. */ 42 /** Tolerance for comparison of kilometers. */
39 public static final double KM_EPSILON = 0.001d; 43 public static final double KM_EPSILON = 0.001d;
44
45 private String yAxisLabel = "";
46
47 private String I18N_AXIS_LABEL = "chart.discharge.curve.yaxis.label";
40 48
41 49
42 /** This processor needs to be constructed with a given km. */ 50 /** This processor needs to be constructed with a given km. */
43 public DischargeProcessor() { 51 public DischargeProcessor() {
44 km = Double.NaN; 52 km = Double.NaN;
98 ThemeDocument theme, 106 ThemeDocument theme,
99 boolean visible) 107 boolean visible)
100 { 108 {
101 log.debug("DischargeCurveGenerator.doDischargeOut"); 109 log.debug("DischargeCurveGenerator.doDischargeOut");
102 CallContext context = generator.getCallContext(); 110 CallContext context = generator.getCallContext();
111 Map<String, String> metaData = bundle.getFacet().getMetaData(
112 bundle.getArtifact(), context);
103 WQKms data = (WQKms)bundle.getData(context); 113 WQKms data = (WQKms)bundle.getData(context);
104 XYSeries series = new StyledXYSeries(name, theme); 114 StyledXYSeries series = new StyledXYSeries(name, theme);
105 double[][] wqData = new double[2][data.size()]; 115 double[][] wqData = new double[2][data.size()];
106 for (int i = 0; i < data.size(); i++) { 116 for (int i = 0; i < data.size(); i++) {
107 wqData[0][i] = data.getQ(i); 117 wqData[0][i] = data.getQ(i);
108 wqData[1][i] = data.getW(i); 118 wqData[1][i] = data.getW(i);
109 } 119 }
110 StyledSeriesBuilder.addPoints(series, wqData, false); 120 StyledSeriesBuilder.addPoints(series, wqData, false);
121
122 series.putMetaData(metaData, bundle.getArtifact(), context);
123 yAxisLabel = metaData.get("Y");
111 124
112 String gaugeName = data.getName(); 125 String gaugeName = data.getName();
113 RiverAccess access = new RiverAccess((D4EArtifact)bundle.getArtifact()); 126 RiverAccess access = new RiverAccess((D4EArtifact)bundle.getArtifact());
114 River river = access.getRiver(); 127 River river = access.getRiver();
115 128
125 return; 138 return;
126 } 139 }
127 140
128 generator.addAxisSeries(series, axisName, visible); 141 generator.addAxisSeries(series, axisName, visible);
129 } 142 }
143
144 @Override
145 public String getAxisLabel(DiagramGenerator generator) {
146 CallMeta meta = generator.getCallContext().getMeta();
147 RiverAccess access = new RiverAccess((D4EArtifact)generator.getMaster());
148 String unit = access.getRiver().getWstUnit().getName();
149
150 if (yAxisLabel != null && !yAxisLabel.isEmpty()) {
151 return Resources.getMsg(
152 meta,
153 yAxisLabel,
154 new Object[] { unit });
155 }
156 return Resources.getMsg(
157 meta,
158 I18N_AXIS_LABEL,
159 new Object[] { unit });
160 }
130 } 161 }
131 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 162 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org