Mercurial > dive4elements > gnv-client
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(),