diff artifacts/src/main/java/org/dive4elements/river/exports/DischargeGenerator.java @ 8338:ac7cb15e1946

Scale second W-axis in cm according to first axis, which is expanded relative to the data, and set bounds for zooming purposes (plus a bit of cleanup in DiagramGenerator).
author "Tom Gottfried <tom@intevation.de>"
date Fri, 26 Sep 2014 18:23:45 +0200
parents e87a993c6611
children a82f24b773e7
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/DischargeGenerator.java	Fri Sep 26 17:22:51 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/DischargeGenerator.java	Fri Sep 26 18:23:45 2014 +0200
@@ -12,6 +12,7 @@
 import org.apache.log4j.Logger;
 import org.dive4elements.river.exports.injector.InjectorConstants;
 import org.dive4elements.river.jfree.AxisDataset;
+import org.dive4elements.river.jfree.DoubleBounds;
 import org.jfree.chart.axis.NumberAxis;
 import org.jfree.chart.plot.XYPlot;
 import org.jfree.data.Range;
@@ -53,13 +54,19 @@
             return;
         }
 
-        Range range = inCm(data.getRange(), pnpValue);
+        Range axisRange = inCm(
+            plot.getRangeAxis(wAxisIndex).getRange(),
+            pnpValue
+        );
+        Range dataRange = inCm(data.getRange(), pnpValue);
 
         // Do we have an index for W in cm?
         NumberAxis wInCmAxis = createWinCMAxis(wAxisIndex);
-        wInCmAxis.setRange(range.getLowerBound(), range.getUpperBound());
+        wInCmAxis.setRange(axisRange);
 
-        plot.setRangeAxis(plot.getRangeAxisCount(), wInCmAxis);
+        int wInCmAxisIndex = plot.getRangeAxisCount();
+        plot.setRangeAxis(wInCmAxisIndex, wInCmAxis);
+        combineYBounds(new DoubleBounds(dataRange), wInCmAxisIndex);
     }
 
     private static Range inCm(Range r, double pnpValue) {

http://dive4elements.wald.intevation.org