diff gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalCrossSectionChart.java @ 841:9cbc8343a04d

Implemented a workaround to avoid an amount of cut axis labels in 2D charts (issue163). gnv-artifacts/trunk@955 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 20 Apr 2010 08:45:01 +0000
parents 3f447e92024a
children 31f63a14a2c3
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalCrossSectionChart.java	Tue Apr 20 07:19:05 2010 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalCrossSectionChart.java	Tue Apr 20 08:45:01 2010 +0000
@@ -31,6 +31,8 @@
 import org.jfree.chart.title.PaintScaleLegend;
 import org.jfree.chart.title.TextTitle;
 
+import org.jfree.data.Range;
+
 import org.jfree.ui.RectangleEdge;
 import org.jfree.ui.RectangleInsets;
 
@@ -146,6 +148,11 @@
         }
     } // class LocalizedLabelGenerator
 
+    public static double MARGIN_TOP    = 0.05d;
+    public static double MARGIN_BOTTOM = 0.05d;
+    public static double MARGIN_LEFT   = 0.05d;
+    public static double MARGIN_RIGHT  = 0.05d;
+
     /**
      * JFreeChart object stored at this place after chart creation.
      */
@@ -309,6 +316,21 @@
 
         chart.addSubtitle(legend);
 
+        // XXX Workaround, because Axes labels are cut at the
+        // left/right/top/bottom edge. The following lines add a white border
+        // between data area and plot border.
+        ValueAxis xAxis = plot.getDomainAxis();
+        Range xRange    = xAxis.getRange();
+        xRange = Range.expand(xRange, MARGIN_LEFT, MARGIN_RIGHT);
+        xAxis.setRange(xRange);
+        plot.setDomainAxis(xAxis);
+
+        ValueAxis yAxis = plot.getRangeAxis();
+        Range yRange    = yAxis.getRange();
+        yRange = Range.expand(yRange, MARGIN_BOTTOM, MARGIN_TOP);
+        yAxis.setRange(yRange);
+        plot.setRangeAxis(yAxis);
+
         return chart;
     }
 

http://dive4elements.wald.intevation.org