Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractXYLineChart.java @ 334:e37930705daa
Changed the way of adding data to charts. Same parameters have one axis - not each parameter its own one.
gnv-artifacts/trunk@400 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 07 Dec 2009 17:03:24 +0000 |
parents | 19571fd1d0e8 |
children | e964a3d8f7bc |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractXYLineChart.java Mon Dec 07 10:33:31 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractXYLineChart.java Mon Dec 07 17:03:24 2009 +0000 @@ -6,6 +6,7 @@ import java.util.Collection; import java.util.Iterator; import java.util.Locale; +import java.util.Map; import org.apache.log4j.Logger; @@ -34,14 +35,19 @@ private static Logger log = Logger.getLogger(AbstractXYLineChart.class); protected static Color[] COLOR = { - Color.black, Color.red, Color.green, Color.blue + Color.black, Color.red, Color.green, Color.blue, Color.yellow, + Color.gray, Color.orange, Color.pink, Color.cyan }; + protected static int nextColor = 0; + protected PlotOrientation PLOT_ORIENTATION = PlotOrientation.VERTICAL; + protected Map datasets; + protected abstract void initData(); protected abstract void addValue(Result row, Series series); - protected abstract void addSeries(Series series, int idx); + protected abstract void addSeries(Series series, String label, int idx); protected abstract void localizeDomainAxis(Axis axis, Locale locale); protected abstract String createSeriesName( String breakPoint1, @@ -114,9 +120,11 @@ protected void adjustRenderer( int idx, + int seriesCount, boolean renderLines, boolean renderShapes ) { + log.debug("Adjust render of series"); XYLineAndShapeRenderer renderer = null; XYPlot plot = chart.getXYPlot(); @@ -130,9 +138,13 @@ renderer.setBaseShape(new Ellipse2D.Double(-2,-2,4,4)); } - renderer.setSeriesPaint(0, COLOR[idx%COLOR.length]); - renderer.setSeriesShapesVisible(0, renderShapes); - renderer.setSeriesLinesVisible(0, renderLines); + for (int i = 0; i < seriesCount; i++) { + renderer.setSeriesShape(i, renderer.getSeriesShape(0)); + renderer.setSeriesPaint(i, COLOR[nextColor%COLOR.length]); + renderer.setSeriesShapesVisible(i, renderShapes); + renderer.setSeriesLinesVisible(i, renderLines); + nextColor++; + } plot.setRenderer(idx, renderer); } @@ -151,6 +163,21 @@ } + protected String findParameter(String label) { + Iterator iter = parameters.iterator(); + + while (iter.hasNext()) { + KeyValueDescibeData data = (KeyValueDescibeData) iter.next(); + String key = data.getValue(); + + if (label.indexOf(key) > -1) + return key; + } + + return label; + } + + protected String findValueTitle(Collection values, String id) { log.debug("find description of dataset");