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 :

http://dive4elements.wald.intevation.org