comparison gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractXYLineChart.java @ 327:22a6493e8460

New options in chart template: visibility of lines and points in charts and point's size. gnv-artifacts/trunk@393 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 02 Dec 2009 10:50:12 +0000
parents 63f8b3fb7d9a
children 1c427acb6c76
comparison
equal deleted inserted replaced
326:37847d724fc9 327:22a6493e8460
1 package de.intevation.gnv.chart; 1 package de.intevation.gnv.chart;
2 2
3 import java.awt.Color; 3 import java.awt.Color;
4 import java.awt.geom.Ellipse2D;
4 import java.text.NumberFormat; 5 import java.text.NumberFormat;
5 import java.util.Collection; 6 import java.util.Collection;
6 import java.util.Iterator; 7 import java.util.Iterator;
7 import java.util.Locale; 8 import java.util.Locale;
8 9
14 import org.jfree.chart.axis.NumberAxis; 15 import org.jfree.chart.axis.NumberAxis;
15 import org.jfree.chart.axis.NumberTickUnit; 16 import org.jfree.chart.axis.NumberTickUnit;
16 import org.jfree.chart.axis.AxisLocation; 17 import org.jfree.chart.axis.AxisLocation;
17 import org.jfree.chart.plot.PlotOrientation; 18 import org.jfree.chart.plot.PlotOrientation;
18 import org.jfree.chart.plot.XYPlot; 19 import org.jfree.chart.plot.XYPlot;
19 import org.jfree.chart.renderer.xy.StandardXYItemRenderer; 20 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
20 import org.jfree.data.general.Series; 21 import org.jfree.data.general.Series;
21 22
22 import de.intevation.gnv.geobackend.base.Result; 23 import de.intevation.gnv.geobackend.base.Result;
23 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; 24 import de.intevation.gnv.transition.describedata.KeyValueDescibeData;
24 25
26 * @author Ingo Weinzierl <ingo.weinzierl@intevation.de> 27 * @author Ingo Weinzierl <ingo.weinzierl@intevation.de>
27 */ 28 */
28 public abstract class AbstractXYLineChart 29 public abstract class AbstractXYLineChart
29 extends AbstractChart 30 extends AbstractChart
30 { 31 {
31 private static Logger log = Logger.getLogger(AbstractXYLineChart.class); 32 private static Logger log = Logger.getLogger(AbstractXYLineChart.class);
32 33
33 protected static Color[] COLOR = { 34 protected static Color[] COLOR = {
34 Color.black, Color.red, Color.green, Color.blue 35 Color.black, Color.red, Color.green, Color.blue
35 }; 36 };
36 37
97 if (idx % 2 != 0) 98 if (idx % 2 != 0)
98 plot.setRangeAxisLocation(idx, AxisLocation.BOTTOM_OR_RIGHT); 99 plot.setRangeAxisLocation(idx, AxisLocation.BOTTOM_OR_RIGHT);
99 else 100 else
100 plot.setRangeAxisLocation(idx, AxisLocation.BOTTOM_OR_LEFT); 101 plot.setRangeAxisLocation(idx, AxisLocation.BOTTOM_OR_LEFT);
101 plot.mapDatasetToRangeAxis(idx, idx); 102 plot.mapDatasetToRangeAxis(idx, idx);
103 }
102 104
103 StandardXYItemRenderer renderer = new StandardXYItemRenderer(); 105
104 renderer.setSeriesPaint(idx, COLOR[idx%COLOR.length]); 106 protected void adjustRenderer(
107 int idx,
108 boolean renderLines,
109 boolean renderShapes
110 ) {
111 XYLineAndShapeRenderer renderer = null;
112 XYPlot plot = chart.getXYPlot();
113
114 try {
115 renderer = (XYLineAndShapeRenderer)((XYLineAndShapeRenderer)
116 (plot.getRenderer())).clone();
117 }
118 catch (CloneNotSupportedException cnse) {
119 log.warn("Error while cloning renderer.", cnse);
120 renderer = new XYLineAndShapeRenderer(renderLines, renderShapes);
121 renderer.setBaseShape(new Ellipse2D.Double(-2,-2,4,4));
122 }
123
124 renderer.setSeriesPaint(0, COLOR[idx%COLOR.length]);
125 renderer.setSeriesShapesVisible(0, renderShapes);
126 renderer.setSeriesLinesVisible(0, renderLines);
105 plot.setRenderer(idx, renderer); 127 plot.setRenderer(idx, renderer);
106 } 128 }
107 129
108 130
109 protected void localizeRangeAxis(Axis axis, Locale locale) { 131 protected void localizeRangeAxis(Axis axis, Locale locale) {

http://dive4elements.wald.intevation.org