comparison gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractHistogram.java @ 617:3d13fa281a7e

Added new ouput mode: histogram. gnv-artifacts/trunk@688 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 15 Feb 2010 11:44:01 +0000
parents
children 65f09139e9b3
comparison
equal deleted inserted replaced
616:93978859fa9e 617:3d13fa281a7e
1 package de.intevation.gnv.chart;
2
3 import java.util.Locale;
4
5 import org.apache.log4j.Logger;
6
7 import org.jfree.chart.ChartFactory;
8 import org.jfree.chart.ChartTheme;
9 import org.jfree.chart.JFreeChart;
10
11 import org.jfree.chart.axis.NumberAxis;
12 import org.jfree.chart.plot.PlotOrientation;
13 import org.jfree.chart.plot.XYPlot;
14 import org.jfree.chart.renderer.xy.XYBarRenderer;
15
16 import org.jfree.data.statistics.HistogramDataset;
17
18
19 /**
20 * @author Ingo Weinzierl (ingo.weinzierl@intevation.de)
21 */
22 public abstract class AbstractHistogram
23 implements Chart
24 {
25 private Logger logger = Logger.getLogger(AbstractHistogram.class);
26
27 protected JFreeChart chart;
28 protected ChartLabels labels;
29 protected ChartTheme theme;
30 protected Object[] data;
31
32 protected Locale locale;
33
34
35 public AbstractHistogram(
36 ChartLabels labels, Object[] data, ChartTheme theme
37 ) {
38 this.labels = labels;
39 this.data = data;
40 this.theme = theme;
41 }
42
43
44 public JFreeChart generateChart() {
45
46 if (chart != null)
47 return chart;
48
49 chart = ChartFactory.createHistogram(
50 labels.getTitle(),
51 labels.getDomainAxisLabel(),
52 labels.getRangeAxisLabel(),
53 null,
54 PlotOrientation.VERTICAL,
55 true,
56 false,
57 false);
58
59 applyDatasets();
60
61 theme.apply(chart);
62 adjustPlot();
63
64 return chart;
65 }
66
67
68 protected void adjustPlot() {
69 XYPlot plot = (XYPlot) chart.getPlot();
70 XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer();
71
72 renderer.setShadowVisible(false);
73 renderer.setSeriesVisibleInLegend(0, false);
74 }
75
76
77 protected abstract void applyDatasets();
78 }
79 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org