Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java @ 3906:fc6c6f6039df
Fix for area clipping problem in longitudinal section char
flys-artifacts/trunk@5572 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Sat, 22 Sep 2012 17:04:44 +0000 |
parents | 7b14d00bca8a |
children | 2f6d4f92d628 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java Sat Sep 22 09:59:21 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java Sat Sep 22 17:04:44 2012 +0000 @@ -1,7 +1,37 @@ package de.intevation.flys.exports; +import java.awt.Color; +import java.awt.Font; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.swing.ImageIcon; + +import org.apache.log4j.Logger; +import org.jfree.chart.ChartFactory; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.LegendItem; +import org.jfree.chart.annotations.XYAnnotation; +import org.jfree.chart.annotations.XYImageAnnotation; +import org.jfree.chart.annotations.XYTextAnnotation; +import org.jfree.chart.axis.NumberAxis; +import org.jfree.chart.axis.ValueAxis; +import org.jfree.chart.plot.Marker; +import org.jfree.chart.plot.PlotOrientation; +import org.jfree.chart.plot.XYPlot; +import org.jfree.data.Range; +import org.jfree.data.general.Series; +import org.jfree.data.xy.XYDataset; +import org.jfree.data.xy.XYSeries; +import org.jfree.data.xy.XYSeriesCollection; +import org.json.JSONArray; +import org.json.JSONException; +import org.w3c.dom.Document; + import de.intevation.artifactdatabase.state.ArtifactAndFacet; - import de.intevation.flys.jfree.Bounds; import de.intevation.flys.jfree.CollisionFreeXYTextAnnotation; import de.intevation.flys.jfree.DoubleBounds; @@ -9,47 +39,6 @@ import de.intevation.flys.jfree.StyledAreaSeriesCollection; import de.intevation.flys.jfree.StyledXYSeries; -import java.awt.Color; -import java.awt.Font; -import javax.swing.ImageIcon; - -import java.text.NumberFormat; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; - -import org.jfree.chart.ChartFactory; -import org.jfree.chart.JFreeChart; -import org.jfree.chart.LegendItem; - -import org.jfree.chart.annotations.XYAnnotation; -import org.jfree.chart.annotations.XYImageAnnotation; -import org.jfree.chart.annotations.XYTextAnnotation; - -import org.jfree.chart.axis.NumberAxis; -import org.jfree.chart.axis.ValueAxis; - -import org.jfree.chart.plot.Marker; -import org.jfree.chart.plot.PlotOrientation; -import org.jfree.chart.plot.XYPlot; - -import org.jfree.data.Range; - -import org.jfree.data.general.Series; - -import org.jfree.data.xy.XYDataset; -import org.jfree.data.xy.XYSeries; -import org.jfree.data.xy.XYSeriesCollection; - -import org.json.JSONArray; -import org.json.JSONException; - -import org.w3c.dom.Document; - /** * An abstract base class for creating XY charts. @@ -71,10 +60,13 @@ public class XYAxisDataset implements AxisDataset { /** Symbolic integer, but also coding the priority (0 goes first). */ protected int axisSymbol; + /** List of assigned datasets (in order). */ protected List<XYDataset> datasets; + /** Range to use to include all given datasets. */ protected Range range; + /** Index of axis in plot. */ protected int plotAxisIndex; @@ -130,17 +122,19 @@ /** Get Array of Datasets. */ @Override public XYDataset[] getDatasets() { - return (XYDataset[]) - datasets.toArray(new XYDataset[datasets.size()]); + return datasets.toArray(new XYDataset[datasets.size()]); } /** Add a Dataset that describes an area. */ public void addArea(StyledAreaSeriesCollection series) { this.datasets.add(series); + List<?> allSeries = series.getSeries(); + for (int n = 0; n < allSeries.size(); n++) { + includeYRange((XYSeries)allSeries.get(n)); + } } - // TODO obsolete? /** True if to be rendered as area. */ @Override public boolean isArea(XYDataset series) { @@ -172,6 +166,7 @@ } // class AxisDataset /** Enumerator over existing axes. */ + @Override protected abstract YAxisWalker getYAxisWalker(); public static final int AXIS_SPACE = 5; @@ -200,6 +195,7 @@ /** * Generate the chart anew (including localized axis and all). */ + @Override public JFreeChart generateChart() { logger.debug("XYChartGenerator.generateChart"); @@ -479,7 +475,7 @@ /** * Add given series if visible, if not visible adjust ranges (such that * all points in data would be plotted once visible). - * @param series the dataseries to include in plot. + * @param series the data series to include in plot. * @param index ('symbolic') index of the series and of its axis. * @param visible whether or not the data should be plotted. */