comparison 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
comparison
equal deleted inserted replaced
333:19571fd1d0e8 334:e37930705daa
4 import java.awt.geom.Ellipse2D; 4 import java.awt.geom.Ellipse2D;
5 import java.text.NumberFormat; 5 import java.text.NumberFormat;
6 import java.util.Collection; 6 import java.util.Collection;
7 import java.util.Iterator; 7 import java.util.Iterator;
8 import java.util.Locale; 8 import java.util.Locale;
9 import java.util.Map;
9 10
10 import org.apache.log4j.Logger; 11 import org.apache.log4j.Logger;
11 12
12 import org.jfree.chart.JFreeChart; 13 import org.jfree.chart.JFreeChart;
13 import org.jfree.chart.ChartFactory; 14 import org.jfree.chart.ChartFactory;
32 extends AbstractChart 33 extends AbstractChart
33 { 34 {
34 private static Logger log = Logger.getLogger(AbstractXYLineChart.class); 35 private static Logger log = Logger.getLogger(AbstractXYLineChart.class);
35 36
36 protected static Color[] COLOR = { 37 protected static Color[] COLOR = {
37 Color.black, Color.red, Color.green, Color.blue 38 Color.black, Color.red, Color.green, Color.blue, Color.yellow,
39 Color.gray, Color.orange, Color.pink, Color.cyan
38 }; 40 };
41
42 protected static int nextColor = 0;
39 43
40 protected PlotOrientation PLOT_ORIENTATION = PlotOrientation.VERTICAL; 44 protected PlotOrientation PLOT_ORIENTATION = PlotOrientation.VERTICAL;
41 45
46 protected Map datasets;
47
42 protected abstract void initData(); 48 protected abstract void initData();
43 protected abstract void addValue(Result row, Series series); 49 protected abstract void addValue(Result row, Series series);
44 protected abstract void addSeries(Series series, int idx); 50 protected abstract void addSeries(Series series, String label, int idx);
45 protected abstract void localizeDomainAxis(Axis axis, Locale locale); 51 protected abstract void localizeDomainAxis(Axis axis, Locale locale);
46 protected abstract String createSeriesName( 52 protected abstract String createSeriesName(
47 String breakPoint1, 53 String breakPoint1,
48 String breakPoint2, 54 String breakPoint2,
49 String breakPoint3 55 String breakPoint3
112 } 118 }
113 119
114 120
115 protected void adjustRenderer( 121 protected void adjustRenderer(
116 int idx, 122 int idx,
123 int seriesCount,
117 boolean renderLines, 124 boolean renderLines,
118 boolean renderShapes 125 boolean renderShapes
119 ) { 126 ) {
127 log.debug("Adjust render of series");
120 XYLineAndShapeRenderer renderer = null; 128 XYLineAndShapeRenderer renderer = null;
121 XYPlot plot = chart.getXYPlot(); 129 XYPlot plot = chart.getXYPlot();
122 130
123 try { 131 try {
124 renderer = (XYLineAndShapeRenderer)((XYLineAndShapeRenderer) 132 renderer = (XYLineAndShapeRenderer)((XYLineAndShapeRenderer)
128 log.warn("Error while cloning renderer.", cnse); 136 log.warn("Error while cloning renderer.", cnse);
129 renderer = new XYLineAndShapeRenderer(renderLines, renderShapes); 137 renderer = new XYLineAndShapeRenderer(renderLines, renderShapes);
130 renderer.setBaseShape(new Ellipse2D.Double(-2,-2,4,4)); 138 renderer.setBaseShape(new Ellipse2D.Double(-2,-2,4,4));
131 } 139 }
132 140
133 renderer.setSeriesPaint(0, COLOR[idx%COLOR.length]); 141 for (int i = 0; i < seriesCount; i++) {
134 renderer.setSeriesShapesVisible(0, renderShapes); 142 renderer.setSeriesShape(i, renderer.getSeriesShape(0));
135 renderer.setSeriesLinesVisible(0, renderLines); 143 renderer.setSeriesPaint(i, COLOR[nextColor%COLOR.length]);
144 renderer.setSeriesShapesVisible(i, renderShapes);
145 renderer.setSeriesLinesVisible(i, renderLines);
146 nextColor++;
147 }
136 plot.setRenderer(idx, renderer); 148 plot.setRenderer(idx, renderer);
137 } 149 }
138 150
139 151
140 protected void localizeRangeAxis(Axis axis, Locale locale) { 152 protected void localizeRangeAxis(Axis axis, Locale locale) {
146 "to " + locale.toString() 158 "to " + locale.toString()
147 ); 159 );
148 160
149 NumberFormat format = NumberFormat.getInstance(locale); 161 NumberFormat format = NumberFormat.getInstance(locale);
150 ((NumberAxis) axis).setNumberFormatOverride(format); 162 ((NumberAxis) axis).setNumberFormatOverride(format);
163 }
164
165
166 protected String findParameter(String label) {
167 Iterator iter = parameters.iterator();
168
169 while (iter.hasNext()) {
170 KeyValueDescibeData data = (KeyValueDescibeData) iter.next();
171 String key = data.getValue();
172
173 if (label.indexOf(key) > -1)
174 return key;
175 }
176
177 return label;
151 } 178 }
152 179
153 180
154 protected String findValueTitle(Collection values, String id) { 181 protected String findValueTitle(Collection values, String id) {
155 log.debug("find description of dataset"); 182 log.debug("find description of dataset");

http://dive4elements.wald.intevation.org