Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java @ 8935:3ac9cb0029b2
Introduced new hook for chart tweaking.
Also consider area-themes when calculating zoom-bounds
author | gernotbelger |
---|---|
date | Tue, 06 Mar 2018 17:06:47 +0100 |
parents | 87a242425467 |
children | 07d51fd4864c |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java Tue Mar 06 17:05:37 2018 +0100 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java Tue Mar 06 17:06:47 2018 +0100 @@ -509,13 +509,31 @@ AxisDataset axisDataset = (AxisDataset) getAxisDataset(index); + Bounds[] xyBounds = ChartHelper.getBounds(area); + + if (xyBounds == null) { + log.warn("Skip XYDataset for Axis (invalid ranges): " + index); + return; + } + + if (visible) { + if (log.isDebugEnabled()) { + log.debug("Add new AxisDataset at index: " + index); + log.debug("X extent: " + xyBounds[0]); + log.debug("Y extent: " + xyBounds[1]); + } + axisDataset.addArea(area); } - else { - /* No range merging, for areas extending to infinity this - * causes problems. */ - } + + /* No range merging, for areas extending to infinity this causes problems. */ + /* No range merging, for areas extending to infinity this causes problems. */ + if( StyledSeriesBuilder.isBigDoubleValue( xyBounds[1].getLower() ) || StyledSeriesBuilder.isBigDoubleValue( xyBounds[1].getLower() ) ) + return; + + combineXBounds(xyBounds[0], 0); + combineYBounds(xyBounds[1], index); } /** @@ -719,6 +737,12 @@ protected void autoZoom(XYPlot plot) { log.debug("Zoom to specified ranges."); + /* allow chart extenders to tweak zoom behavior */ + final Collection<ChartExtender> extenders = this.diagramAttributes.getExtenders(); + for (final ChartExtender extender : extenders) { + extender.beforeAutoZoom(this); + } + Range xrange = getDomainAxisRange(); Range yrange = getValueAxisRange(); @@ -754,8 +778,6 @@ zoom(plot, yaxis, getYBounds(Integer.valueOf(i)), yrange); } - /* allow chart extenders to tweak zoom behaviour */ - final Collection<ChartExtender> extenders = this.diagramAttributes.getExtenders(); for (final ChartExtender extender : extenders) { extender.afterAutoZoom(this); }