Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java @ 9496:d8e753d0fdb9
stripedArea introduced for Assessment Scheme/Bewertungsschema
author | gernotbelger |
---|---|
date | Wed, 26 Sep 2018 15:48:05 +0200 |
parents | eeea16ea0980 |
children | ef5754ba5573 |
comparison
equal
deleted
inserted
replaced
9495:bb278c927b66 | 9496:d8e753d0fdb9 |
---|---|
35 import org.dive4elements.river.exports.process.Processor; | 35 import org.dive4elements.river.exports.process.Processor; |
36 import org.dive4elements.river.jfree.AxisDataset; | 36 import org.dive4elements.river.jfree.AxisDataset; |
37 import org.dive4elements.river.jfree.Bounds; | 37 import org.dive4elements.river.jfree.Bounds; |
38 import org.dive4elements.river.jfree.DoubleBounds; | 38 import org.dive4elements.river.jfree.DoubleBounds; |
39 import org.dive4elements.river.jfree.RiverAnnotation; | 39 import org.dive4elements.river.jfree.RiverAnnotation; |
40 import org.dive4elements.river.jfree.StyledAreaSeriesCollection; | |
41 import org.dive4elements.river.jfree.XYMetaSeriesCollection; | 40 import org.dive4elements.river.jfree.XYMetaSeriesCollection; |
42 import org.dive4elements.river.themes.ThemeDocument; | 41 import org.dive4elements.river.themes.ThemeDocument; |
43 import org.jfree.chart.ChartFactory; | 42 import org.jfree.chart.ChartFactory; |
44 import org.jfree.chart.JFreeChart; | 43 import org.jfree.chart.JFreeChart; |
45 import org.jfree.chart.LegendItem; | 44 import org.jfree.chart.LegendItem; |
49 import org.jfree.chart.axis.NumberAxis; | 48 import org.jfree.chart.axis.NumberAxis; |
50 import org.jfree.chart.axis.ValueAxis; | 49 import org.jfree.chart.axis.ValueAxis; |
51 import org.jfree.chart.plot.Marker; | 50 import org.jfree.chart.plot.Marker; |
52 import org.jfree.chart.plot.PlotOrientation; | 51 import org.jfree.chart.plot.PlotOrientation; |
53 import org.jfree.chart.plot.XYPlot; | 52 import org.jfree.chart.plot.XYPlot; |
54 import org.jfree.chart.title.TextTitle; | |
55 import org.jfree.data.Range; | 53 import org.jfree.data.Range; |
56 import org.jfree.data.general.Series; | 54 import org.jfree.data.general.Series; |
57 import org.jfree.data.xy.XYDataset; | 55 import org.jfree.data.xy.XYDataset; |
58 import org.jfree.data.xy.XYSeries; | 56 import org.jfree.data.xy.XYSeries; |
59 import org.jfree.data.xy.XYSeriesCollection; | 57 import org.jfree.data.xy.XYSeriesCollection; |
437 " " + plot.getDomainAxis(i).getRange().getUpperBound() + | 435 " " + plot.getDomainAxis(i).getRange().getUpperBound() + |
438 "]"); | 436 "]"); |
439 } | 437 } |
440 } | 438 } |
441 log.debug("..............."); | 439 log.debug("..............."); |
442 } | |
443 | |
444 /** | |
445 * Registers an area to be drawn. | |
446 * @param area Area to be drawn. | |
447 * @param axisName Name of the axis. | |
448 * @param visible Whether or not to be visible | |
449 * (important for range calculations). | |
450 */ | |
451 public void addAreaSeries( | |
452 StyledAreaSeriesCollection area, | |
453 String axisName, | |
454 boolean visible | |
455 ) { | |
456 addAreaSeries(area, diagramAttributes.getAxisIndex(axisName), visible); | |
457 } | |
458 | |
459 /** | |
460 * Registers an area to be drawn. | |
461 * @param area Area to be drawn. | |
462 * @param index 'axis index' | |
463 * @param visible Whether or not to be visible | |
464 * (important for range calculations). | |
465 */ | |
466 public void addAreaSeries( | |
467 StyledAreaSeriesCollection area, | |
468 int index, | |
469 boolean visible | |
470 ) { | |
471 if (area == null) { | |
472 log.warn("Cannot yet render above/under curve."); | |
473 return; | |
474 } | |
475 | |
476 AxisDataset axisDataset = (AxisDataset) getAxisDataset(index); | |
477 | |
478 Bounds[] xyBounds = ChartHelper.getBounds(area); | |
479 | |
480 if (xyBounds == null) { | |
481 log.warn("Skip XYDataset for Axis (invalid ranges): " + index); | |
482 return; | |
483 } | |
484 | |
485 | |
486 if (visible) { | |
487 if (log.isDebugEnabled()) { | |
488 log.debug("Add new AxisDataset at index: " + index); | |
489 log.debug("X extent: " + xyBounds[0]); | |
490 log.debug("Y extent: " + xyBounds[1]); | |
491 } | |
492 | |
493 axisDataset.addArea(area); | |
494 } | |
495 | |
496 /* No range merging, for areas extending to infinity this causes problems. */ | |
497 /* No range merging, for areas extending to infinity this causes problems. */ | |
498 if( StyledSeriesBuilder.isBigDoubleValue( xyBounds[1].getLower() ) || StyledSeriesBuilder.isBigDoubleValue( xyBounds[1].getLower() ) ) | |
499 return; | |
500 | |
501 combineXBounds(xyBounds[0], 0); | |
502 combineYBounds(xyBounds[1], index); | |
503 } | 440 } |
504 | 441 |
505 /** | 442 /** |
506 * Add given series if visible, if not visible adjust ranges (such that | 443 * Add given series if visible, if not visible adjust ranges (such that |
507 * all points in data would be plotted once visible). | 444 * all points in data would be plotted once visible). |
1132 } | 1069 } |
1133 return "Domain Axis Title not configured in conf.xml"; | 1070 return "Domain Axis Title not configured in conf.xml"; |
1134 } | 1071 } |
1135 | 1072 |
1136 protected final String getDefaultYAxisLabel(String axisName) { | 1073 protected final String getDefaultYAxisLabel(String axisName) { |
1137 Set labelSet = axesLabels.get(diagramAttributes.getAxisIndex(axisName)); | 1074 Set<String> labelSet = axesLabels.get(diagramAttributes.getAxisIndex(axisName)); |
1138 log.debug("Labels for axis: " + labelSet); | 1075 log.debug("Labels for axis: " + labelSet); |
1139 if (labelSet != null && !labelSet.isEmpty()) { | 1076 if (labelSet != null && !labelSet.isEmpty()) { |
1140 String label = StringUtils.join(labelSet, ", "); | 1077 String label = StringUtils.join(labelSet, ", "); |
1141 Matcher units = UNIT_PATTERN.matcher(label); | 1078 Matcher units = UNIT_PATTERN.matcher(label); |
1142 if (units.find()) { | 1079 if (units.find()) { |