comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixLongitudinalSectionGenerator.java @ 3770:6a08f4dc790b

Manual Points for fixing charts (not working yet) flys-artifacts/trunk@5475 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Christian Lins <christian.lins@intevation.de>
date Sat, 15 Sep 2012 07:07:51 +0000
parents f3fc8d49d741
children fc6c6f6039df
comparison
equal deleted inserted replaced
3769:728ecd2afa20 3770:6a08f4dc790b
1 package de.intevation.flys.exports.fixings; 1 package de.intevation.flys.exports.fixings;
2 2
3 import java.awt.BasicStroke;
4 import java.awt.Color;
5
6 import org.apache.log4j.Logger;
7 import org.jfree.chart.plot.Marker;
8 import org.jfree.chart.plot.ValueMarker;
9 import org.jfree.data.xy.XYSeries;
10 import org.jfree.data.xy.XYSeriesCollection;
11 import org.w3c.dom.Document;
12
3 import de.intevation.artifactdatabase.state.ArtifactAndFacet; 13 import de.intevation.artifactdatabase.state.ArtifactAndFacet;
4
5 import de.intevation.flys.artifacts.model.FacetTypes; 14 import de.intevation.flys.artifacts.model.FacetTypes;
6
7 import de.intevation.flys.artifacts.model.fixings.AnalysisPeriod; 15 import de.intevation.flys.artifacts.model.fixings.AnalysisPeriod;
8 import de.intevation.flys.artifacts.model.fixings.QWD; 16 import de.intevation.flys.artifacts.model.fixings.QWD;
9
10 import de.intevation.flys.exports.ChartGenerator; 17 import de.intevation.flys.exports.ChartGenerator;
11
12 import de.intevation.flys.jfree.FLYSAnnotation; 18 import de.intevation.flys.jfree.FLYSAnnotation;
13 import de.intevation.flys.jfree.StyledAreaSeriesCollection; 19 import de.intevation.flys.jfree.StyledAreaSeriesCollection;
14 import de.intevation.flys.jfree.StyledXYSeries; 20 import de.intevation.flys.jfree.StyledXYSeries;
15
16 import de.intevation.flys.utils.KMIndex; 21 import de.intevation.flys.utils.KMIndex;
17
18 import java.awt.BasicStroke;
19 import java.awt.Color;
20
21 import org.apache.log4j.Logger;
22
23 import org.jfree.chart.plot.Marker;
24 import org.jfree.chart.plot.ValueMarker;
25
26 import org.jfree.data.xy.XYSeries;
27 import org.jfree.data.xy.XYSeriesCollection;
28
29 import org.w3c.dom.Document;
30 22
31 public class FixLongitudinalSectionGenerator 23 public class FixLongitudinalSectionGenerator
32 extends FixChartGenerator 24 extends FixChartGenerator
33 implements FacetTypes 25 implements FacetTypes
34 { 26 {
35 private static Logger logger = 27 private static Logger logger =
36 Logger.getLogger(FixLongitudinalSectionGenerator.class); 28 Logger.getLogger(FixLongitudinalSectionGenerator.class);
37 29
38 public static final String I18N_CHART_TITLE = 30 public static final String I18N_CHART_TITLE =
39 "chart.fixings.longitudinalsection.title"; 31 "chart.fixings.longitudinalsection.title";
40 32
41 public static final String I18N_CHART_SUBTITLE = 33 public static final String I18N_CHART_SUBTITLE =
42 "chart.fixings.longitudinalsection.subtitle"; 34 "chart.fixings.longitudinalsection.subtitle";
43 35
44 public static final String I18N_XAXIS_LABEL = 36 public static final String I18N_XAXIS_LABEL =
45 "chart.fixings.longitudinalsection.xaxis.label"; 37 "chart.fixings.longitudinalsection.xaxis.label";
46 38
47 public static final String I18N_YAXIS_LABEL = 39 public static final String I18N_YAXIS_LABEL =
48 "chart.fixings.longitudinalsection.yaxis.label"; 40 "chart.fixings.longitudinalsection.yaxis.label";
49 41
50 public static final String I18N_CHART_TITLE_DEFAULT = 42 public static final String I18N_CHART_TITLE_DEFAULT =
51 "Fixierungsanalyse"; 43 "Fixierungsanalyse";
52 44
53 public static final String I18N_XAXIS_LABEL_DEFAULT = 45 public static final String I18N_XAXIS_LABEL_DEFAULT =
54 "[km]"; 46 "[km]";
55 47
56 public static final String I18N_YAXIS_LABEL_DEFAULT = 48 public static final String I18N_YAXIS_LABEL_DEFAULT =
57 "delta W [cm]"; 49 "delta W [cm]";
58 50
59 public static enum YAXIS { 51 public static enum YAXIS {
60 dW(0); 52 dW(0);
61 public int idx; 53 public int idx;
62 private YAXIS(int c) { 54 private YAXIS(int c) {
84 else if (name.equals(FIX_DEVIATION_LS)) { 76 else if (name.equals(FIX_DEVIATION_LS)) {
85 doReferenceDeviationOut(aaf, doc, visible); 77 doReferenceDeviationOut(aaf, doc, visible);
86 } 78 }
87 else if (name.equals(LONGITUDINAL_ANNOTATION)) { 79 else if (name.equals(LONGITUDINAL_ANNOTATION)) {
88 doAnnotations( 80 doAnnotations(
89 (FLYSAnnotation) aaf.getData(context), 81 (FLYSAnnotation) aaf.getData(context),
90 aaf, 82 aaf,
91 doc, 83 doc,
92 visible); 84 visible);
85 }
86 else if (FacetTypes.IS.MANUALPOINTS(name)) {
87 doPoints (aaf.getData(context),
88 aaf,
89 doc, visible, YAXIS.dW.idx);
93 } 90 }
94 else { 91 else {
95 logger.warn("Unknown facet name " + name); 92 logger.warn("Unknown facet name " + name);
96 return; 93 return;
97 } 94 }
98 } 95 }
99 96
100 @SuppressWarnings("unchecked") 97 @SuppressWarnings("unchecked")
101 protected void doSectorAverageOut( 98 protected void doSectorAverageOut(
102 ArtifactAndFacet aaf, 99 ArtifactAndFacet aaf,
103 Document doc, 100 Document doc,
104 boolean visible) 101 boolean visible)
105 { 102 {
106 logger.debug("doSectorAverageOut" + aaf.getFacet().getIndex()); 103 logger.debug("doSectorAverageOut" + aaf.getFacet().getIndex());
107 104
108 int index = aaf.getFacet().getIndex(); 105 int index = aaf.getFacet().getIndex();
109 int sectorNdx = index & 3; 106 int sectorNdx = index & 3;
110 107
111 KMIndex<AnalysisPeriod> kms = 108 KMIndex<AnalysisPeriod> kms =
112 (KMIndex<AnalysisPeriod>)aaf.getData(context); 109 (KMIndex<AnalysisPeriod>)aaf.getData(context);
113 110
114 if(kms == null) { 111 if(kms == null) {
115 return; 112 return;
116 } 113 }
117 114
133 } 130 }
134 131
135 132
136 @SuppressWarnings("unchecked") 133 @SuppressWarnings("unchecked")
137 protected void doSectorAverageDeviationOut( 134 protected void doSectorAverageDeviationOut(
138 ArtifactAndFacet aaf, 135 ArtifactAndFacet aaf,
139 Document doc, 136 Document doc,
140 boolean visible) 137 boolean visible)
141 { 138 {
142 logger.debug("doSectorAverageOut" + aaf.getFacet().getIndex()); 139 logger.debug("doSectorAverageOut" + aaf.getFacet().getIndex());
143 140
144 int index = aaf.getFacet().getIndex(); 141 int index = aaf.getFacet().getIndex();
145 int sectorNdx = index & 3; 142 int sectorNdx = index & 3;
146 143
147 KMIndex<AnalysisPeriod> kms = 144 KMIndex<AnalysisPeriod> kms =
148 (KMIndex<AnalysisPeriod>)aaf.getData(context); 145 (KMIndex<AnalysisPeriod>)aaf.getData(context);
149 146
150 if(kms == null) { 147 if(kms == null) {
151 return; 148 return;
152 } 149 }
153 150
154 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(doc); 151 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(doc);
155 XYSeries upper = 152 XYSeries upper =
156 new StyledXYSeries(aaf.getFacetDescription(), false, doc); 153 new StyledXYSeries(aaf.getFacetDescription(), false, doc);
157 XYSeries lower = 154 XYSeries lower =
158 new StyledXYSeries(aaf.getFacetDescription() + " ", false, doc); 155 new StyledXYSeries(aaf.getFacetDescription() + " ", false, doc);
159 156
160 157
161 for (KMIndex.Entry<AnalysisPeriod> entry: kms) { 158 for (KMIndex.Entry<AnalysisPeriod> entry: kms) {
162 double km = entry.getKm(); 159 double km = entry.getKm();
163 AnalysisPeriod ap = entry.getValue(); 160 AnalysisPeriod ap = entry.getValue();
180 } 177 }
181 178
182 179
183 @SuppressWarnings("unchecked") 180 @SuppressWarnings("unchecked")
184 protected void doReferenceDeviationOut( 181 protected void doReferenceDeviationOut(
185 ArtifactAndFacet aaf, 182 ArtifactAndFacet aaf,
186 Document doc, 183 Document doc,
187 boolean visible) 184 boolean visible)
188 { 185 {
189 logger.debug("doReferenceOut"); 186 logger.debug("doReferenceOut");
190 187
191 KMIndex<double[]> kms = 188 KMIndex<double[]> kms =
192 (KMIndex<double[]>)aaf.getData(context); 189 (KMIndex<double[]>)aaf.getData(context);
193 190
194 if(kms == null) { 191 if(kms == null) {
195 return; 192 return;
196 } 193 }
197 194
198 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(doc); 195 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(doc);
199 XYSeries upper = 196 XYSeries upper =
200 new StyledXYSeries(aaf.getFacetDescription(), false, doc); 197 new StyledXYSeries(aaf.getFacetDescription(), false, doc);
201 XYSeries lower = 198 XYSeries lower =
202 new StyledXYSeries(aaf.getFacetDescription() + " ", false, doc); 199 new StyledXYSeries(aaf.getFacetDescription() + " ", false, doc);
203 200
204 201
205 for (KMIndex.Entry<double[]> entry: kms) { 202 for (KMIndex.Entry<double[]> entry: kms) {
206 double km = entry.getKm(); 203 double km = entry.getKm();
207 double[] devArray = entry.getValue(); 204 double[] devArray = entry.getValue();
224 addAreaSeries(area, 0, visible); 221 addAreaSeries(area, 0, visible);
225 } 222 }
226 223
227 @SuppressWarnings("unchecked") 224 @SuppressWarnings("unchecked")
228 protected void doAnalysisEventsOut( 225 protected void doAnalysisEventsOut(
229 ArtifactAndFacet aaf, 226 ArtifactAndFacet aaf,
230 Document doc, 227 Document doc,
231 boolean visible) 228 boolean visible)
232 { 229 {
233 logger.debug("doAnalysisEventsOut"); 230 logger.debug("doAnalysisEventsOut");
234 231
235 KMIndex<QWD> kms = 232 KMIndex<QWD> kms =
236 (KMIndex<QWD>)aaf.getData(context); 233 (KMIndex<QWD>)aaf.getData(context);
237 234
238 if(kms == null) { 235 if(kms == null) {
239 return; 236 return;
240 } 237 }
241 238
245 242
246 for (KMIndex.Entry<QWD> entry: kms) { 243 for (KMIndex.Entry<QWD> entry: kms) {
247 double km = entry.getKm(); 244 double km = entry.getKm();
248 QWD qwd = entry.getValue(); 245 QWD qwd = entry.getValue();
249 246
250 series.add(km, qwd.getDeltaW()); 247 series.add(km, qwd.getDeltaW());
251 } 248 }
252 col.addSeries(series); 249 col.addSeries(series);
253 250
254 addAxisDataset(col, 0, visible); 251 addAxisDataset(col, 0, visible);
255 } 252 }
256 253
257 @SuppressWarnings("unchecked") 254 @SuppressWarnings("unchecked")
258 protected void doReferenceEventsOut( 255 protected void doReferenceEventsOut(
259 ArtifactAndFacet aaf, 256 ArtifactAndFacet aaf,
260 Document doc, 257 Document doc,
261 boolean visible) 258 boolean visible)
262 { 259 {
263 logger.debug("doReferenceEventOut"); 260 logger.debug("doReferenceEventOut");
264 261
265 KMIndex<QWD> kms = 262 KMIndex<QWD> kms =
266 (KMIndex<QWD>)aaf.getData(context); 263 (KMIndex<QWD>)aaf.getData(context);
267 264
268 if(kms == null) { 265 if(kms == null) {
269 return; 266 return;
270 } 267 }
271 268
307 public int length() { 304 public int length() {
308 return YAXIS.values().length; 305 return YAXIS.values().length;
309 } 306 }
310 307
311 @Override 308 @Override
312 public String getId(int idx) { 309 public String getId(int idx) {
313 YAXIS[] yaxes = YAXIS.values(); 310 YAXIS[] yaxes = YAXIS.values();
314 return yaxes[idx].toString(); 311 return yaxes[idx].toString();
315 } 312 }
316 }; 313 };
317 } 314 }

http://dive4elements.wald.intevation.org