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");
 

http://dive4elements.wald.intevation.org