Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java @ 8892:87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
author | gernotbelger |
---|---|
date | Thu, 15 Feb 2018 13:46:35 +0100 |
parents | f87f435df856 |
children | 3ac9cb0029b2 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java Wed Feb 14 19:06:21 2018 +0100 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java Thu Feb 15 13:46:35 2018 +0100 @@ -14,6 +14,7 @@ import java.text.NumberFormat; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashSet; @@ -238,6 +239,12 @@ aggregateLegendEntries(plot); + /* allow extenders to do some work */ + final Collection<ChartExtender> extenders = this.diagramAttributes.getExtenders(); + for (final ChartExtender extender : extenders) { + extender.afterGenerateChart(this, plot); + } + return chart; } @@ -390,12 +397,19 @@ isLog().evaluate((D4EArtifact)getMaster(), context); if (logarithmic) { - return new LogarithmicAxis(label); + final LogarithmicAxis axis = new LogarithmicAxis(label); + // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied. + axis.setLowerMargin(0); + axis.setUpperMargin(0); + return axis; } final NumberAxis axis = new NumberAxis(label); // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied. axis.setLowerMargin(0); axis.setUpperMargin(0); + // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied. + axis.setLowerMargin(0); + axis.setUpperMargin(0); return axis; } @@ -739,9 +753,14 @@ log.debug("Prepare zoom settings for y axis at index: " + i); 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); + } } - protected Range getDomainAxisRange() { String[] ranges = getDomainAxisRangeFromRequest();