Mercurial > dive4elements > gnv-client
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"); |