diff gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalProfileChart.java @ 846:8b6ef091d38c

It is possible to draw VerticalProfileCharts with just one single data point (issue229). gnv-artifacts/trunk@962 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 21 Apr 2010 08:46:23 +0000
parents 2423cefe7d39
children ec512e7992c6
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalProfileChart.java	Tue Apr 20 18:38:22 2010 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalProfileChart.java	Wed Apr 21 08:46:23 2010 +0000
@@ -239,6 +239,39 @@
             addGaps(results, series, startValue, endValue, startPos, endPos);
     }
 
+    @Override
+    protected void prepareAxis(String seriesKey, int idx) {
+        super.prepareAxis(seriesKey, idx);
+
+        XYPlot plot = chart.getXYPlot();
+        NumberAxis domainAxis = (NumberAxis) plot.getRangeAxis();
+        NumberAxis rangeAxis  = (NumberAxis) plot.getDomainAxis();
+
+        Range domainRange = domainAxis.getRange();
+        Range rangeRange  = rangeAxis.getRange();
+        log.debug("Domain axis range before: " + domainRange.toString());
+        log.debug("Range axis range before: " + rangeRange.toString());
+
+        domainRange = Range.expand(domainRange, LOWER_MARGIN, UPPER_MARGIN);
+        rangeRange = Range.expand(rangeRange, LOWER_MARGIN, UPPER_MARGIN);
+
+        double lower = domainRange.getLowerBound();
+        double upper = domainRange.getUpperBound();
+
+        if (lower == upper) {
+            domainRange = new Range(
+                lower - (lower * 0.05d),
+                upper + (upper * 0.05d));
+        }
+
+        log.debug("Domain axis range after: " + domainRange.toString());
+        log.debug("Range axis range after: " + rangeRange.toString());
+        domainAxis.setRange(domainRange);
+        rangeAxis.setRange(rangeRange);
+
+        plot.setRangeAxis(domainAxis);
+    }
+
 
     /**
      * Method to expand max range of a range axis identified by seriesKey.
@@ -318,7 +351,6 @@
                 plot.setDataset(idx, xysc );
                 log.debug("Added " + key + " parameter to plot.");
                 prepareAxis(key, idx);
-                prepareRangeAxis(key, idx);
                 adjustRenderer(
                     idx++,
                     xysc.getSeriesCount(),

http://dive4elements.wald.intevation.org