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();
 

http://dive4elements.wald.intevation.org