Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixWQCurveGenerator.java @ 3055:1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
flys-artifacts/trunk@4631 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Sat, 09 Jun 2012 13:46:04 +0000 |
parents | |
children | 0b5a7a2c3724 |
comparison
equal
deleted
inserted
replaced
3054:8bd4cf11c25a | 3055:1fbf8462f808 |
---|---|
1 package de.intevation.flys.exports.fixings; | |
2 | |
3 import de.intevation.artifactdatabase.state.ArtifactAndFacet; | |
4 import de.intevation.flys.artifacts.model.FacetTypes; | |
5 import de.intevation.flys.artifacts.model.WQDay; | |
6 import de.intevation.flys.artifacts.model.fixings.QW; | |
7 import de.intevation.flys.exports.ChartGenerator; | |
8 import de.intevation.flys.exports.XYChartGenerator; | |
9 import de.intevation.flys.jfree.StyledXYSeries; | |
10 | |
11 import java.util.Date; | |
12 | |
13 import org.apache.log4j.Logger; | |
14 | |
15 import org.jfree.data.xy.XYSeries; | |
16 | |
17 import org.w3c.dom.Document; | |
18 | |
19 public class FixWQCurveGenerator | |
20 extends XYChartGenerator | |
21 implements FacetTypes | |
22 { | |
23 private static Logger logger = | |
24 Logger.getLogger(FixWQChartGenerator.class); | |
25 | |
26 public static final String I18N_CHART_TITLE = | |
27 "chart.fixings.wq.title"; | |
28 | |
29 public static final String I18N_CHART_SUBTITLE = | |
30 "chart.fixings.wq.subtitle"; | |
31 | |
32 public static final String I18N_XAXIS_LABEL = | |
33 "chart.fixings.wq.xaxis.label"; | |
34 | |
35 public static final String I18N_YAXIS_LABEL = | |
36 "chart.fixings.wq.yaxis.label"; | |
37 | |
38 public static final String I18N_CHART_TITLE_DEFAULT = | |
39 "Fixierungsanalyse"; | |
40 | |
41 public static final String I18N_XAXIS_LABEL_DEFAULT = | |
42 "Q [m\u00B3/s]"; | |
43 | |
44 public static final String I18N_YAXIS_LABEL_DEFAULT = | |
45 "W [NN + m]"; | |
46 | |
47 public static enum YAXIS { | |
48 W(0), | |
49 Q(1); | |
50 public int idx; | |
51 private YAXIS(int c) { | |
52 idx = c; | |
53 } | |
54 } | |
55 | |
56 @Override | |
57 public void doOut(ArtifactAndFacet bundle, Document doc, boolean visible) { | |
58 String name = bundle.getFacetName(); | |
59 /* Object data; | |
60 try { | |
61 data = bundle.getData(context); | |
62 } catch(NullPointerException ex) { // FIXME it's crashing on every edge | |
63 logger.error("doOut Exception catched", ex); | |
64 data = new Object(); | |
65 }*/ | |
66 logger.debug("doOut: " + name); | |
67 //logger.debug("doOut: data is instanceof " + data.toString()); | |
68 | |
69 if(FIX_SECTOR_AVERAGE_WQ.equals(name)) { | |
70 doSectorAverageOut(bundle, doc, visible); | |
71 } else if(FIX_ANALYSIS_EVENTS_WQ.equals(name)) { | |
72 doAnalysisEventsOut(bundle, doc, visible); | |
73 } else if(FIX_ANALYSIS_PERIODS_WQ.equals(name)) { | |
74 doAnalysisPeriodsOut(bundle, doc, visible); | |
75 } else if(FIX_REFERENCE_EVENTS_WQ.equals(name)) { | |
76 doReferenceEventsOut(bundle, doc, visible); | |
77 } else if(FIX_WQ_CURVE.equals(name)) { | |
78 doWQOut(new QW(13.37, 42.23, "Unknown point", new Date()), bundle, doc, visible); | |
79 } else if(FIX_OUTLIER.equals(name)) { | |
80 doOutlierOut(bundle, doc, visible); | |
81 } else { | |
82 logger.warn("Unknown facet name " + name); | |
83 return; | |
84 } | |
85 } | |
86 | |
87 protected void doSectorAverageOut(ArtifactAndFacet aaf, Document doc, boolean visible) { | |
88 logger.debug("doSectorAverageOut"); | |
89 | |
90 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), doc); | |
91 java.util.Random rand = new java.util.Random(7000); | |
92 for(int n = 0; n < 10; n++) { | |
93 series.add(rand.nextDouble(), rand.nextDouble()); | |
94 } | |
95 | |
96 addAxisSeries(series, 0, visible); | |
97 } | |
98 | |
99 protected void doAnalysisEventsOut(ArtifactAndFacet aaf, Document doc, boolean visible) { | |
100 logger.debug("doAnalysisEventsOut"); | |
101 | |
102 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), doc); | |
103 java.util.Random rand = new java.util.Random(4000); | |
104 for(int n = 0; n < 10; n++) { | |
105 series.add(rand.nextDouble(), rand.nextDouble()); | |
106 } | |
107 | |
108 addAxisSeries(series, 0, visible); | |
109 } | |
110 | |
111 protected void doAnalysisPeriodsOut(ArtifactAndFacet aaf, Document doc, boolean visible) { | |
112 logger.debug("doAnalysisPeriodsOut"); | |
113 | |
114 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), doc); | |
115 java.util.Random rand = new java.util.Random(5000); | |
116 for(int n = 0; n < 10; n++) { | |
117 series.add(rand.nextDouble(), rand.nextDouble()); | |
118 } | |
119 | |
120 addAxisSeries(series, 0, visible); | |
121 } | |
122 | |
123 protected void doReferenceEventsOut(ArtifactAndFacet aaf, Document doc, boolean visible) { | |
124 logger.debug("doReferenceEventsOut"); | |
125 | |
126 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), doc); | |
127 java.util.Random rand = new java.util.Random(3000); | |
128 for(int n = 0; n < 10; n++) { | |
129 series.add(rand.nextDouble(), rand.nextDouble()); | |
130 } | |
131 | |
132 addAxisSeries(series, 0, visible); | |
133 } | |
134 | |
135 protected void doWQOut( | |
136 QW wqdays, | |
137 ArtifactAndFacet aaf, | |
138 Document theme, | |
139 boolean visible | |
140 ) { | |
141 logger.debug("doWQOut"); | |
142 | |
143 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); | |
144 java.util.Random rand = new java.util.Random(1000); | |
145 int size = 10; //wqdays.size(); | |
146 for (int i = 0; i < size; i++) { | |
147 //int day = wqdays.getDate(i); | |
148 //double q = wqdays.getQ(i); | |
149 | |
150 series.add(rand.nextDouble(), rand.nextDouble()); | |
151 } | |
152 | |
153 addAxisSeries(series, 0, visible); | |
154 } | |
155 | |
156 protected void doOutlierOut(ArtifactAndFacet aaf, Document doc, boolean visible) { | |
157 logger.debug("doOutlierOut"); | |
158 | |
159 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), doc); | |
160 java.util.Random rand = new java.util.Random(2000); | |
161 for(int n = 0; n < 10; n++) { | |
162 series.add(rand.nextDouble(), rand.nextDouble()); | |
163 } | |
164 | |
165 addAxisSeries(series,0, visible); | |
166 } | |
167 | |
168 @Override | |
169 protected String getDefaultChartTitle() { | |
170 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT); | |
171 } | |
172 | |
173 @Override | |
174 protected String getDefaultXAxisLabel() { | |
175 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); | |
176 } | |
177 | |
178 @Override | |
179 protected String getDefaultYAxisLabel(int pos) { | |
180 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT); | |
181 } | |
182 | |
183 @Override | |
184 protected ChartGenerator.YAxisWalker getYAxisWalker() { | |
185 return new YAxisWalker() { | |
186 @Override | |
187 public int length() { | |
188 return YAXIS.values().length; | |
189 } | |
190 | |
191 @Override | |
192 public String getId(int idx) { | |
193 YAXIS[] yaxes = YAXIS.values(); | |
194 return yaxes[idx].toString(); | |
195 } | |
196 }; | |
197 } | |
198 } | |
199 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |