comparison gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalProfileChartFactory.java @ 179:f2c76f35da5a

Added missing Class Description Values to the Horizontal Profile Charts gnv-artifacts/trunk@223 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Thu, 15 Oct 2009 15:38:15 +0000
parents 7fb9441dd8af
children 34f233123a6f
comparison
equal deleted inserted replaced
178:9bcf315f57e4 179:f2c76f35da5a
61 public synchronized void createProfileChart( 61 public synchronized void createProfileChart(
62 ChartLabels pLabels, 62 ChartLabels pLabels,
63 ChartStyle pStyle, 63 ChartStyle pStyle,
64 Collection<KeyValueDescibeData> parameters, 64 Collection<KeyValueDescibeData> parameters,
65 Collection<KeyValueDescibeData> measurements, 65 Collection<KeyValueDescibeData> measurements,
66 Collection<KeyValueDescibeData> dates,
66 OutputStream outputStream, 67 OutputStream outputStream,
67 Collection<Result> resultSet) 68 Collection<Result> resultSet)
68 throws IOException, 69 throws IOException,
69 TechnicalChartException { 70 TechnicalChartException {
70 if (sDebug) 71 if (sDebug)
80 lLowerLevel = pStyle.getLowerLevel(); 81 lLowerLevel = pStyle.getLowerLevel();
81 } 82 }
82 if (sDebug) 83 if (sDebug)
83 sLogger.debug(" vor createDataset()"); 84 sLogger.debug(" vor createDataset()");
84 XYDataset lSet = this.createDataset(resultSet, lUpperLevel, 85 XYDataset lSet = this.createDataset(resultSet, lUpperLevel,
85 lLowerLevel, parameters, measurements); 86 lLowerLevel, parameters, measurements, dates);
86 if (sDebug) 87 if (sDebug)
87 sLogger.debug(" nach createDataset()"); 88 sLogger.debug(" nach createDataset()");
88 final Color[] color = { Color.black, Color.red, Color.green, Color.blue }; 89 final Color[] color = { Color.black, Color.red, Color.green, Color.blue };
89 NumberAxis domain = new NumberAxis(pLabels.getDomainAxisLabel()); 90 NumberAxis domain = new NumberAxis(pLabels.getDomainAxisLabel());
90 NumberAxis axis; 91 NumberAxis axis;
247 } 248 }
248 249
249 private XYDataset createDataset(Collection<Result> resultSet, 250 private XYDataset createDataset(Collection<Result> resultSet,
250 int lUpperCut, int lLowerCut, 251 int lUpperCut, int lLowerCut,
251 Collection<KeyValueDescibeData> parameters, 252 Collection<KeyValueDescibeData> parameters,
252 Collection<KeyValueDescibeData> measurements) 253 Collection<KeyValueDescibeData> measurements,
254 Collection<KeyValueDescibeData> dates)
253 throws TechnicalChartException { 255 throws TechnicalChartException {
254 256
255 XYSeriesCollection xyDataset = new XYSeriesCollection(); 257 XYSeriesCollection xyDataset = new XYSeriesCollection();
256 258
257 try { 259 try {
271 while (resultIterator.hasNext()) { 273 while (resultIterator.hasNext()) {
272 row = resultIterator.next(); 274 row = resultIterator.next();
273 if (!break1.equals(row.getString("GROUP1")) 275 if (!break1.equals(row.getString("GROUP1"))
274 || !break2.equals(row.getString("GROUP2")) 276 || !break2.equals(row.getString("GROUP2"))
275 || !break3.equals(row.getString("GROUP3"))) { 277 || !break3.equals(row.getString("GROUP3"))) {
276 String seriesName = findValueTitle(parameters, break1) 278 String seriesName = this.createSeriesName(parameters, measurements, dates, break1, break2, break3);
277 + " "
278 + findValueTitle(measurements,
279 break2);
280 sLogger.debug("Neuer Datensatz " + seriesName 279 sLogger.debug("Neuer Datensatz " + seriesName
281 + "von Datensätzen " + mStart + " / " 280 + "von Datensätzen " + mStart + " / "
282 + mEnd); 281 + mEnd);
283 xyDataset.addSeries(createXYSeries(seriesName, 282 xyDataset.addSeries(createXYSeries(seriesName,
284 resultSet, lUpperCut, lLowerCut, mStart, mEnd)); 283 resultSet, lUpperCut, lLowerCut, mStart, mEnd));
292 mEnd = i; 291 mEnd = i;
293 // mEnd ++; 292 // mEnd ++;
294 i = i + 1; 293 i = i + 1;
295 } 294 }
296 295
297 String seriesName = findValueTitle(parameters, break1) + " " 296 String seriesName = this.createSeriesName(parameters, measurements, dates, break1, break2, break3);
298 + findValueTitle(measurements, break2);
299 sLogger.debug("Neuer Datensatz " + seriesName 297 sLogger.debug("Neuer Datensatz " + seriesName
300 + "von Datensätzen " + mStart + " / " + mEnd); 298 + "von Datensätzen " + mStart + " / " + mEnd);
301 xyDataset.addSeries(createXYSeries(seriesName, resultSet, 299 xyDataset.addSeries(createXYSeries(seriesName, resultSet,
302 lUpperCut, lLowerCut, mStart, mEnd)); 300 lUpperCut, lLowerCut, mStart, mEnd));
303 } 301 }
306 } finally { 304 } finally {
307 } 305 }
308 return xyDataset; 306 return xyDataset;
309 } 307 }
310 308
309 /**
310 * @param parameters
311 * @param measurements
312 * @param break1
313 * @param break2
314 * @return
315 */
316 protected String createSeriesName(
317 Collection<KeyValueDescibeData> break1Candidates,
318 Collection<KeyValueDescibeData> break2Candidates,
319 Collection<KeyValueDescibeData> break3Candidates,
320 String break1, String break2, String break3) {
321 String seriesName = findValueTitle(break1Candidates, break1)
322 + " "
323 + findValueTitle(break2Candidates,
324 break2);
325 return seriesName.trim();
326 }
327
311 private void encodeChart(JFreeChart pChart, ChartStyle pStyle, 328 private void encodeChart(JFreeChart pChart, ChartStyle pStyle,
312 OutputStream outputStream) throws IOException { 329 OutputStream outputStream) throws IOException {
313 if (sDebug) 330 if (sDebug)
314 sLogger.debug("encodeChart()"); 331 sLogger.debug("encodeChart()");
315 KeypointPNGEncoderAdapter lEncoder = new KeypointPNGEncoderAdapter(); 332 KeypointPNGEncoderAdapter lEncoder = new KeypointPNGEncoderAdapter();
323 340
324 lEncoder.encode(lImage, outputStream); 341 lEncoder.encode(lImage, outputStream);
325 342
326 } 343 }
327 344
328 private String findValueTitle(Collection<KeyValueDescibeData> values, 345 protected String findValueTitle(Collection<KeyValueDescibeData> values,
329 String id) { 346 String id) {
330 if (values != null) { 347 if (values != null) {
331 Iterator<KeyValueDescibeData> it = values.iterator(); 348 Iterator<KeyValueDescibeData> it = values.iterator();
332 while (it.hasNext()) { 349 while (it.hasNext()) {
333 KeyValueDescibeData data = it.next(); 350 KeyValueDescibeData data = it.next();
334 if (id.equals(data.getKey())) { 351 if (id.equals(data.getKey())) {
335 return data.getValue(); 352 return data.getValue();
336 } 353 }
337 } 354 }
338 } 355 }
339 return id; 356 return "";
340 } 357 }
341 } 358 }

http://dive4elements.wald.intevation.org