comparison artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator.java @ 7116:3c7471b929d1

Merge branch generator-refectoring into default.
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 24 Sep 2013 12:29:44 +0200
parents 41567bf1e131
children 917b26172853
comparison
equal deleted inserted replaced
7095:bdadffad35b1 7116:3c7471b929d1
21 import org.dive4elements.river.exports.process.BedDiffHeightYearProcessor; 21 import org.dive4elements.river.exports.process.BedDiffHeightYearProcessor;
22 import org.dive4elements.river.exports.process.BedDiffYearProcessor; 22 import org.dive4elements.river.exports.process.BedDiffYearProcessor;
23 import org.dive4elements.river.exports.process.BedheightProcessor; 23 import org.dive4elements.river.exports.process.BedheightProcessor;
24 import org.dive4elements.river.exports.process.QOutProcessor; 24 import org.dive4elements.river.exports.process.QOutProcessor;
25 import org.dive4elements.river.exports.process.WOutProcessor; 25 import org.dive4elements.river.exports.process.WOutProcessor;
26 26 import org.dive4elements.river.exports.process.AnnotationProcessor;
27 import org.dive4elements.river.jfree.RiverAnnotation; 27
28 import org.dive4elements.river.jfree.StyledAreaSeriesCollection; 28 import org.dive4elements.river.jfree.StyledAreaSeriesCollection;
29 import org.dive4elements.river.jfree.StyledXYSeries; 29 import org.dive4elements.river.jfree.StyledXYSeries;
30 import org.dive4elements.river.themes.ThemeDocument; 30 import org.dive4elements.river.themes.ThemeDocument;
31 import org.dive4elements.river.utils.DataUtil;
32 import org.dive4elements.river.utils.RiverUtils; 31 import org.dive4elements.river.utils.RiverUtils;
33 import org.apache.log4j.Logger; 32 import org.apache.log4j.Logger;
34 import org.jfree.chart.axis.NumberAxis; 33 import org.jfree.chart.axis.NumberAxis;
35 import org.jfree.chart.axis.ValueAxis; 34 import org.jfree.chart.axis.ValueAxis;
36 import org.jfree.chart.plot.XYPlot; 35 import org.jfree.chart.plot.XYPlot;
338 337
339 if (facet == null) { 338 if (facet == null) {
340 return; 339 return;
341 } 340 }
342 341
343 WOutProcessor wProcessor = new WOutProcessor(); 342 Processor wProcessor = new WOutProcessor();
344 QOutProcessor qProcessor = new QOutProcessor(); 343 Processor qProcessor = new QOutProcessor();
345 Processor bedp = new BedheightProcessor(); 344 Processor bedp = new BedheightProcessor();
346 Processor bdyProcessor = new BedDiffYearProcessor(); 345 Processor bdyProcessor = new BedDiffYearProcessor();
347 Processor bdhyProcessor = new BedDiffHeightYearProcessor(); 346 Processor bdhyProcessor = new BedDiffHeightYearProcessor();
347 Processor annotationProcessor = new AnnotationProcessor();
348 348
349 if (wProcessor.canHandle(name)) { 349 if (wProcessor.canHandle(name)) {
350 wProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx); 350 wProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx);
351 } 351 }
352 if (qProcessor.canHandle(name)) { 352 if (qProcessor.canHandle(name)) {
359 bdyProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx); 359 bdyProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx);
360 } 360 }
361 else if (bdhyProcessor.canHandle(name)) { 361 else if (bdhyProcessor.canHandle(name)) {
362 bdhyProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx); 362 bdhyProcessor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx);
363 } 363 }
364 else if (name.equals(LONGITUDINAL_ANNOTATION)) { 364 else if (annotationProcessor.canHandle(name)) {
365 doAnnotations( 365 annotationProcessor.doOut(this, artifactAndFacet, attr, visible, 0);
366 (RiverAnnotation) artifactAndFacet.getData(context),
367 artifactAndFacet,
368 attr,
369 visible);
370 } 366 }
371 else if (name.equals(W_DIFFERENCES)) { 367 else if (name.equals(W_DIFFERENCES)) {
372 doWDifferencesOut( 368 doWDifferencesOut(
373 (WKms) artifactAndFacet.getData(context), 369 (WKms) artifactAndFacet.getData(context),
374 artifactAndFacet, 370 artifactAndFacet,
427 addAxisSeries(series, YAXIS.D.idx, visible); 423 addAxisSeries(series, YAXIS.D.idx, visible);
428 } 424 }
429 425
430 426
431 /** 427 /**
432 * This method determines - taking JFreeCharts auto x value ordering into
433 * account - if the x axis need to be inverted. Waterlines in these charts
434 * should decrease.
435 *
436 * @param wkms The data object that stores the x and y values used for this
437 * chart.
438 */
439 public boolean needInvertAxis(WKms wkms) {
440 boolean wsUp = wkms.guessWaterIncreasing();
441 boolean kmUp = DataUtil.guessWaterIncreasing(wkms.allKms());
442 boolean inv = (wsUp && kmUp) || (!wsUp && !kmUp);
443
444 int size = wkms.size();
445
446 if (logger.isDebugEnabled()) {
447 logger.debug("(Wkms)Values : " + size);
448 if (size > 0) {
449 logger.debug("Start km: " + wkms.getKm(0));
450 logger.debug("End km: " + wkms.getKm(size-1));
451 }
452 logger.debug("wsUp: " + wsUp);
453 logger.debug("kmUp: " + kmUp);
454 logger.debug("inv: " + inv);
455 }
456
457 return inv;
458 }
459
460
461 /**
462 * Get name of series (displayed in legend). 428 * Get name of series (displayed in legend).
463 * @return name of the series. 429 * @return name of the series.
464 */ 430 */
465 protected String getSeriesName(WQKms wqkms, String mode) { 431 protected String getSeriesName(WQKms wqkms, String mode) {
466 String name = wqkms.getName(); 432 String name = wqkms.getName();

http://dive4elements.wald.intevation.org