comparison flys-artifacts/src/main/java/de/intevation/flys/exports/HistoricalDischargeWQCurveGenerator.java @ 4242:448cbd8708d5

Added new classes for the last commit.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 24 Oct 2012 14:44:12 +0200
parents
children 1dfe3e1d304e
comparison
equal deleted inserted replaced
4241:49cb65d5932d 4242:448cbd8708d5
1 package de.intevation.flys.exports;
2
3 import org.apache.log4j.Logger;
4 import org.jfree.data.xy.XYSeries;
5 import org.w3c.dom.Document;
6
7 import de.intevation.artifactdatabase.state.ArtifactAndFacet;
8 import de.intevation.flys.artifacts.FLYSArtifact;
9 import de.intevation.flys.artifacts.access.HistoricalDischargeAccess;
10 import de.intevation.flys.artifacts.model.FacetTypes;
11 import de.intevation.flys.artifacts.model.Timerange;
12 import de.intevation.flys.artifacts.model.WQKms;
13 import de.intevation.flys.jfree.StyledXYSeries;
14 import de.intevation.flys.utils.FLYSUtils;
15
16
17 /**
18 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
19 */
20 public class HistoricalDischargeWQCurveGenerator extends XYChartGenerator
21 implements FacetTypes {
22
23 private static Logger logger = Logger
24 .getLogger(HistoricalDischargeWQCurveGenerator.class);
25
26 public static final String I18N_CHART_TITLE = "chart.historical.discharge.wq.title";
27
28 public static final String I18N_CHART_SUBTITLE = "chart.historical.discharge.wq.subtitle";
29
30 public static final String I18N_XAXIS_LABEL = "chart.historical.discharge.wq.xaxis.label";
31
32 public static final String I18N_YAXIS_LABEL = "chart.historical.discharge.wq.yaxis.label";
33
34 public static final String I18N_YAXIS_SECOND_LABEL = "chart.historical.discharge.wq.yaxis.second.label";
35
36 public static enum YAXIS {
37 W(0);
38
39 protected int idx;
40
41 private YAXIS(int c) {
42 idx = c;
43 }
44 }
45
46 @Override
47 protected YAxisWalker getYAxisWalker() {
48 return new YAxisWalker() {
49
50 @Override
51 public int length() {
52 return YAXIS.values().length;
53 }
54
55 @Override
56 public String getId(int idx) {
57 YAXIS[] yaxes = YAXIS.values();
58 return yaxes[idx].toString();
59 }
60 };
61 }
62
63 @Override
64 protected String getDefaultChartTitle() {
65 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE);
66 }
67
68 @Override
69 protected String getDefaultChartSubtitle() {
70 FLYSArtifact flys = (FLYSArtifact) master;
71 Timerange evalTime = new HistoricalDischargeAccess(flys)
72 .getEvaluationTimerange();
73
74 Object[] args = new Object[] { FLYSUtils.getReferenceGaugeName(flys),
75 evalTime.getStart(), evalTime.getEnd() };
76
77 return msg(I18N_CHART_SUBTITLE, "", args);
78 }
79
80 @Override
81 protected String getDefaultXAxisLabel() {
82 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL);
83 }
84
85 @Override
86 protected String getDefaultYAxisLabel(int pos) {
87 if (pos == 0) {
88 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL);
89 }
90 else if (pos == 1) {
91 return msg(I18N_YAXIS_SECOND_LABEL, I18N_YAXIS_SECOND_LABEL);
92 }
93 else {
94 return "NO TITLE FOR Y AXIS: " + pos;
95 }
96 }
97
98 @Override
99 public void doOut(ArtifactAndFacet artifactFacet, Document theme,
100 boolean visible) {
101 String name = artifactFacet.getFacetName();
102 logger.debug("HistoricalDischargeWQCurveGenerator.doOut: " + name);
103 logger.debug("Theme description is: "
104 + artifactFacet.getFacetDescription());
105
106 if (name.equals(HISTORICAL_DISCHARGE_WQ_Q)) {
107 doHistoricalDischargeOutQ(
108 (FLYSArtifact) artifactFacet.getArtifact(),
109 artifactFacet.getData(context),
110 artifactFacet.getFacetDescription(), theme, visible);
111 }
112 else if (name.equals(HISTORICAL_DISCHARGE_WQ_W)) {
113 doHistoricalDischargeOutW(
114 (FLYSArtifact) artifactFacet.getArtifact(),
115 artifactFacet.getData(context),
116 artifactFacet.getFacetDescription(), theme, visible);
117 }
118 else if (name.equals(HISTORICAL_DISCHARGE_WQ_CURVE)) {
119 doHistoricalDischargeCurveOut(
120 (FLYSArtifact) artifactFacet.getArtifact(),
121 artifactFacet.getData(context),
122 artifactFacet.getFacetDescription(), theme, visible);
123 }
124 else if (FacetTypes.IS.MANUALPOINTS(name)) {
125 doPoints(artifactFacet.getData(context), artifactFacet, theme,
126 visible, YAXIS.W.idx);
127 }
128 else {
129 logger.warn("doOut(): unknown facet name: " + name);
130 return;
131 }
132 }
133
134 protected void doHistoricalDischargeOutQ(FLYSArtifact artifact,
135 Object data, String desc, Document theme, boolean visible) {
136 logger.debug("doHistoricalDischargeOutQ(): description = " + desc);
137
138 // addAxisDataset(series, YAXIS.Q.idx, visible);
139 }
140
141 protected void doHistoricalDischargeOutW(FLYSArtifact artifact,
142 Object data, String desc, Document theme, boolean visible) {
143 logger.debug("doHistoricalDischargeOutW(): description = " + desc);
144
145 // addAxisDataset(series, YAXIS.W.idx, visible);
146 }
147
148 protected void doHistoricalDischargeCurveOut(FLYSArtifact artifact, Object data,
149 String desc, Document theme, boolean visible) {
150 XYSeries series = new StyledXYSeries(desc, theme);
151 StyledSeriesBuilder.addPointsQW(series, (WQKms) data);
152
153 addAxisSeries(series, YAXIS.W.idx, visible);
154 }
155 }
156 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org