Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java @ 7059:f9d5020af0af generator-refactoring
Remove AxisProcessor "glue" class and extend Processor interface
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 20 Sep 2013 10:30:03 +0200 |
parents | 7056fa3b1f75 |
children | 726d998dce29 |
rev | line source |
---|---|
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
3 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
7 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.exports; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
11 import java.awt.Color; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
12 import java.awt.Font; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 import java.text.NumberFormat; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 import java.util.ArrayList; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 import java.util.HashMap; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
16 import java.util.List; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 import java.util.Map; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 import javax.swing.ImageIcon; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 import org.apache.log4j.Logger; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
22 import org.jfree.chart.ChartFactory; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 import org.jfree.chart.JFreeChart; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 import org.jfree.chart.LegendItem; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
25 import org.jfree.chart.annotations.XYAnnotation; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 import org.jfree.chart.annotations.XYImageAnnotation; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
27 import org.jfree.chart.annotations.XYTextAnnotation; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
28 import org.jfree.chart.axis.NumberAxis; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 import org.jfree.chart.axis.ValueAxis; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
30 import org.jfree.chart.axis.LogarithmicAxis; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 import org.jfree.chart.plot.Marker; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 import org.jfree.chart.plot.PlotOrientation; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
33 import org.jfree.chart.plot.XYPlot; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
34 import org.jfree.data.Range; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
35 import org.jfree.data.general.Series; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 import org.jfree.data.xy.XYDataset; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
37 import org.jfree.data.xy.XYSeries; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
38 import org.jfree.data.xy.XYSeriesCollection; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
39 import org.json.JSONArray; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
40 import org.json.JSONException; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
41 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
42 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 import org.dive4elements.artifactdatabase.state.Facet; |
7059
f9d5020af0af
Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents:
7052
diff
changeset
|
44 import org.dive4elements.river.exports.process.Processor; |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 import org.dive4elements.river.jfree.AxisDataset; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 import org.dive4elements.river.jfree.AnnotationHelper; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
47 import org.dive4elements.river.jfree.Bounds; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
48 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
49 import org.dive4elements.river.jfree.DoubleBounds; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
50 import org.dive4elements.river.jfree.RiverAnnotation; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
51 import org.dive4elements.river.jfree.StyledAreaSeriesCollection; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
52 import org.dive4elements.river.jfree.StyledXYSeries; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
53 import org.dive4elements.river.themes.ThemeDocument; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
54 |
7051
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
55 import org.w3c.dom.Element; |
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
56 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
57 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
58 * The main diagram creation class. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
59 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
60 * This class is the glue between output processors and facets. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 * The generator creates one diagram and calls the appropiate |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 * processors for the state and |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
64 * With respect to datasets, ranges and axis, there are following requirements: |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
65 * <ul> |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
66 * <li> First in, first drawn: "Early" datasets should be of lower Z-Oder |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 * than later ones (only works per-axis). </li> |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
68 * <li> Visible axis should initially show the range of all datasets that |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
69 * show data for this axis (even invisible ones). Motivation: Once |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
70 * a dataset (theme) has been activated, it should be on screen. </li> |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
71 * <li> There should always be a Y-Axis on the "left". </li> |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
72 * </ul> |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
73 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
74 public abstract class DiagramGenerator extends ChartGenerator2 { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
75 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
76 /** Enumerator over existing axes. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
77 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
78 protected abstract YAxisWalker getYAxisWalker(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
79 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
80 public static final int AXIS_SPACE = 5; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
81 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
82 /** The logger that is used in this generator. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
83 private static Logger logger = Logger.getLogger(DiagramGenerator.class); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
84 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
85 protected List<Marker> domainMarkers = new ArrayList<Marker>(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
86 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
87 protected List<Marker> valueMarkers = new ArrayList<Marker>(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
88 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
89 /** The max X range to include all X values of all series for each axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
90 protected Map<Integer, Bounds> xBounds; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
91 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
92 /** The max Y range to include all Y values of all series for each axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
93 protected Map<Integer, Bounds> yBounds; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
94 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
95 /** Whether or not the plot is inverted (left-right). */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
96 private boolean inverted; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
97 |
7051
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
98 protected DiagramAttributes diagramAttributes; |
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
99 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
100 public DiagramGenerator() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
101 super(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
102 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
103 xBounds = new HashMap<Integer, Bounds>(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
104 yBounds = new HashMap<Integer, Bounds>(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
105 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
106 |
7051
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
107 @Override |
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
108 public void setup(Element config) { |
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
109 logger.debug("DiagramGenerator.setup"); |
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
110 diagramAttributes = new DiagramAttributes(config); |
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
111 } |
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
112 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
113 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
114 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
115 * Generate the chart anew (including localized axis and all). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
116 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
117 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
118 public JFreeChart generateChart() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
119 logger.debug("DiagramGenerator.generateChart"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
120 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
121 JFreeChart chart = ChartFactory.createXYLineChart( |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
122 getChartTitle(), |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
123 getXAxisLabel(), |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
124 getYAxisLabel(0), |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
125 null, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
126 PlotOrientation.VERTICAL, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
127 isLegendVisible(), |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
128 false, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
129 false); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
130 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
131 XYPlot plot = (XYPlot) chart.getPlot(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
132 ValueAxis axis = createXAxis(getXAxisLabel()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
133 plot.setDomainAxis(axis); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
134 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
135 chart.setBackgroundPaint(Color.WHITE); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
136 plot.setBackgroundPaint(Color.WHITE); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
137 addSubtitles(chart); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
138 adjustPlot(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
139 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
140 //debugAxis(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
141 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
142 addDatasets(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
143 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
144 //debugDatasets(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
145 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
146 addMarkers(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
147 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
148 recoverEmptyPlot(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
149 preparePointRanges(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
150 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
151 //debugAxis(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
152 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
153 localizeAxes(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
154 adjustAxes(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
155 if (!(axis instanceof LogarithmicAxis)) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
156 // XXX: |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
157 // The auto zoom without a range tries |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
158 // to include 0 in a logarithmic axis |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
159 // which triggers a bug in jfreechart that causes |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
160 // the values to be drawn carthesian |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
161 autoZoom(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
162 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
163 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
164 //debugAxis(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
165 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
166 // These have to go after the autozoom. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
167 AnnotationHelper.addAnnotationsToRenderer(annotations, plot, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
168 getChartSettings(), datasets); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
169 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
170 // Add a logo (maybe). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
171 addLogo(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
172 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
173 aggregateLegendEntries(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
174 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
175 return chart; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
176 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
177 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
178 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
179 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
180 * Return left most data points x value (on first axis). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
181 * Shortcut, especially to be overridden in (LS) charts where |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
182 * axis could be inverted. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
183 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
184 protected double getLeftX() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
185 return (Double)getXBounds(0).getLower(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
186 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
187 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
188 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
189 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
190 * Return right most data points x value (on first axis). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
191 * Shortcut, especially to be overridden in (LS) charts where |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
192 * axis could be inverted. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
193 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
194 protected double getRightX() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
195 return (Double)getXBounds(0).getUpper(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
196 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
197 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
198 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
199 /** Add a logo as background annotation to plot. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
200 protected void addLogo(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
201 String logo = showLogo(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
202 if (logo == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
203 logger.debug("No logo to show chosen"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
204 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
205 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
206 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
207 ImageIcon imageIcon = null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
208 if (logo.equals("none")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
209 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
210 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
211 /* |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
212 If you want to add images, remember to change code in these places: |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
213 flys-artifacts: |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
214 DiagramGenerator.java |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
215 Timeseries*Generator.java and |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
216 in the flys-client projects Chart*Propert*Editor.java. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
217 Also, these images have to be put in |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
218 flys-artifacts/src/main/resources/images/ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
219 flys-client/src/main/webapp/images/ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
220 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
221 java.net.URL imageURL; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
222 if (logo.equals("Intevation")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
223 imageURL = DiagramGenerator.class.getResource("/images/intevation.png"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
224 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
225 else { // TODO else if ... |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
226 imageURL = DiagramGenerator.class.getResource("/images/bfg_logo.gif"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
227 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
228 imageIcon = new ImageIcon(imageURL); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
229 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
230 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
231 double xPos = 0d, yPos = 0d; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
232 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
233 String placeh = logoHPlace(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
234 String placev = logoVPlace(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
235 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
236 if (placev == null || placev.equals("none")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
237 placev = "top"; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
238 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
239 if (placev.equals("top")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
240 yPos = (Double)getYBounds(0).getUpper(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
241 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
242 else if (placev.equals("bottom")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
243 yPos = (Double)getYBounds(0).getLower(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
244 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
245 else if (placev.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
246 yPos = ((Double)getYBounds(0).getUpper() + (Double)getYBounds(0).getLower())/2d; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
247 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
248 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
249 logger.debug("Unknown place-v value: " + placev); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
250 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
251 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
252 if (placeh == null || placeh.equals("none")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
253 placeh = "center"; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
254 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
255 if (placeh.equals("left")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
256 xPos = getLeftX(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
257 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
258 else if (placeh.equals("right")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
259 xPos = getRightX(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
260 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
261 else if (placeh.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
262 xPos = ((Double)getXBounds(0).getUpper() + (Double)getXBounds(0).getLower())/2d; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
263 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
264 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
265 logger.debug("Unknown place-h value: " + placeh); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
266 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
267 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
268 logger.debug("logo position: " + xPos + "/" + yPos); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
269 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
270 org.jfree.ui.RectangleAnchor anchor |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
271 = org.jfree.ui.RectangleAnchor.TOP; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
272 if (placev.equals("top")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
273 if (placeh.equals("left")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
274 anchor = org.jfree.ui.RectangleAnchor.TOP_LEFT; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
275 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
276 else if (placeh.equals("right")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
277 anchor = org.jfree.ui.RectangleAnchor.TOP_RIGHT; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
278 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
279 else if (placeh.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
280 anchor = org.jfree.ui.RectangleAnchor.TOP; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
281 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
282 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
283 else if (placev.equals("bottom")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
284 if (placeh.equals("left")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
285 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_LEFT; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
286 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
287 else if (placeh.equals("right")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
288 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_RIGHT; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
289 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
290 else if (placeh.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
291 anchor = org.jfree.ui.RectangleAnchor.BOTTOM; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
292 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
293 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
294 else if (placev.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
295 if (placeh.equals("left")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
296 anchor = org.jfree.ui.RectangleAnchor.LEFT; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
297 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
298 else if (placeh.equals("right")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
299 anchor = org.jfree.ui.RectangleAnchor.RIGHT; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
300 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
301 else if (placeh.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
302 anchor = org.jfree.ui.RectangleAnchor.CENTER; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
303 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
304 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
305 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
306 XYAnnotation xyannotation = |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
307 new XYImageAnnotation(xPos, yPos, imageIcon.getImage(), anchor); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
308 plot.getRenderer().addAnnotation(xyannotation, org.jfree.ui.Layer.BACKGROUND); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
309 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
310 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
311 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
312 protected NumberAxis createXAxis(String label) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
313 return new NumberAxis(label); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
314 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
315 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
316 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
317 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
318 protected Series getSeriesOf(XYDataset dataset, int idx) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
319 return ((XYSeriesCollection) dataset).getSeries(idx); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
320 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
321 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
322 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
323 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
324 protected AxisDataset createAxisDataset(int idx) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
325 logger.debug("Create new AxisDataset for index: " + idx); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
326 return new AxisDataset(idx); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
327 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
328 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
329 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
330 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
331 * Put debug output about datasets. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
332 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
333 public void debugDatasets(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
334 logger.debug("Number of datasets: " + plot.getDatasetCount()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
335 for (int i = 0, P = plot.getDatasetCount(); i < P; i++) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
336 if (plot.getDataset(i) == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
337 logger.debug("Dataset #" + i + " is null"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
338 continue; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
339 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
340 logger.debug("Dataset #" + i + ":" + plot.getDataset(i)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
341 XYSeriesCollection series = (XYSeriesCollection) plot.getDataset(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
342 logger.debug("X-Extend of Dataset: " + series.getSeries(0).getMinX() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
343 + " " + series.getSeries(0).getMaxX()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
344 logger.debug("Y-Extend of Dataset: " + series.getSeries(0).getMinY() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
345 + " " + series.getSeries(0).getMaxY()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
346 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
347 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
348 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
349 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
350 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
351 * Put debug output about axes. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
352 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
353 public void debugAxis(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
354 logger.debug("..............."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
355 for (int i = 0, P = plot.getRangeAxisCount(); i < P; i++) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
356 if (plot.getRangeAxis(i) == null) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
357 logger.debug("Range-Axis #" + i + " == null"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
358 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
359 logger.debug("Range-Axis " + i + " != null [" + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
360 plot.getRangeAxis(i).getRange().getLowerBound() + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
361 " " + plot.getRangeAxis(i).getRange().getUpperBound() + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
362 "]"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
363 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
364 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
365 for (int i = 0, P = plot.getDomainAxisCount(); i < P; i++) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
366 if (plot.getDomainAxis(i) == null) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
367 logger.debug("Domain-Axis #" + i + " == null"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
368 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
369 logger.debug("Domain-Axis " + i + " != null [" + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
370 plot.getDomainAxis(i).getRange().getLowerBound() + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
371 " " + plot.getDomainAxis(i).getRange().getUpperBound() + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
372 "]"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
373 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
374 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
375 logger.debug("..............."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
376 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
377 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
378 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
379 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
380 * Registers an area to be drawn. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
381 * @param area Area to be drawn. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
382 * @param index 'axis index' |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
383 * @param visible Whether or not to be visible (important for range calculations). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
384 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
385 public void addAreaSeries(StyledAreaSeriesCollection area, int index, boolean visible) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
386 if (area == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
387 logger.warn("Cannot yet render above/under curve."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
388 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
389 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
390 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
391 AxisDataset axisDataset = (AxisDataset) getAxisDataset(index); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
392 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
393 if (visible) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
394 axisDataset.addArea(area); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
395 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
396 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
397 /* No range merging, for areas extending to infinity this |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
398 * causes problems. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
399 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
400 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
401 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
402 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
403 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
404 * Add given series if visible, if not visible adjust ranges (such that |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
405 * all points in data would be plotted once visible). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
406 * @param series the data series to include in plot. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
407 * @param index ('symbolic') index of the series and of its axis. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
408 * @param visible whether or not the data should be plotted. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
409 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
410 public void addAxisSeries(XYSeries series, int index, boolean visible) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
411 if (series == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
412 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
413 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
414 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
415 logger.debug("Y Range of XYSeries: " + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
416 series.getMinY() + " | " + series.getMaxY()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
417 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
418 addAxisDataset(new XYSeriesCollection(series), index, visible); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
419 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
420 AxisDataset axisDataset = (AxisDataset) getAxisDataset(index); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
421 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
422 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
423 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
424 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
425 * Add the given vertical marker to the chart. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
426 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
427 public void addDomainMarker(Marker marker) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
428 addDomainMarker(marker, true); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
429 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
430 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
431 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
432 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
433 * Add the given vertical marker to the chart.<b>Note:</b> the marker is |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
434 * added to the chart only if it is not null and if <i>visible</i> is true. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
435 * @param marker The marker that should be added to the chart. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
436 * @param visible The visibility of the marker. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
437 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
438 public void addDomainMarker(Marker marker, boolean visible) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
439 if (visible && marker != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
440 domainMarkers.add(marker); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
441 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
442 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
443 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
444 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
445 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
446 * Add the given vertical marker to the chart. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
447 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
448 public void addValueMarker(Marker marker) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
449 addValueMarker(marker, true); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
450 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
451 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
452 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
453 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
454 * Add the given horizontal marker to the chart.<b>Note:</b> the marker is |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
455 * added to the chart only if it is not null and if <i>visible</i> is true. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
456 * @param marker The marker that should be added to the chart. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
457 * @param visible The visibility of the marker. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
458 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
459 public void addValueMarker(Marker marker, boolean visible) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
460 if (visible && marker != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
461 valueMarkers.add(marker); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
462 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
463 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
464 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
465 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
466 protected void addMarkers(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
467 for(Marker marker : domainMarkers) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
468 plot.addDomainMarker(marker); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
469 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
470 for(Marker marker : valueMarkers) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
471 plot.addRangeMarker(marker); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
472 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
473 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
474 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
475 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
476 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
477 * Effect: extend range of x axis to include given limits. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
478 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
479 * @param bounds the given ("minimal") bounds. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
480 * @param index index of axis to be merged. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
481 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
482 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
483 protected void combineXBounds(Bounds bounds, int index) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
484 if (!(bounds instanceof DoubleBounds)) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
485 logger.warn("Unsupported Bounds type: " + bounds.getClass()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
486 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
487 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
488 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
489 DoubleBounds dBounds = (DoubleBounds) bounds; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
490 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
491 if (dBounds == null |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
492 || Double.isNaN((Double) dBounds.getLower()) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
493 || Double.isNaN((Double) dBounds.getUpper())) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
494 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
495 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
496 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
497 Bounds old = getXBounds(index); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
498 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
499 if (old != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
500 dBounds = (DoubleBounds) dBounds.combine(old); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
501 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
502 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
503 setXBounds(index, dBounds); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
504 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
505 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
506 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
507 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
508 protected void combineYBounds(Bounds bounds, int index) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
509 if (!(bounds instanceof DoubleBounds)) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
510 logger.warn("Unsupported Bounds type: " + bounds.getClass()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
511 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
512 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
513 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
514 DoubleBounds dBounds = (DoubleBounds) bounds; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
515 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
516 if (dBounds == null |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
517 || Double.isNaN((Double) dBounds.getLower()) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
518 || Double.isNaN((Double) dBounds.getUpper())) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
519 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
520 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
521 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
522 Bounds old = getYBounds(index); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
523 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
524 if (old != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
525 dBounds = (DoubleBounds) dBounds.combine(old); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
526 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
527 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
528 setYBounds(index, dBounds); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
529 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
530 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
531 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
532 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
533 * If no data is visible, draw at least empty axis. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
534 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
535 private void recoverEmptyPlot(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
536 if (plot.getRangeAxis() == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
537 logger.debug("debug: No range axis"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
538 plot.setRangeAxis(createYAxis(0)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
539 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
540 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
541 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
542 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
543 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
544 * Expands X axes if only a point is shown. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
545 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
546 private void preparePointRanges(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
547 for (int i = 0, num = plot.getDomainAxisCount(); i < num; i++) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
548 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
549 Integer key = Integer.valueOf(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
550 Bounds b = getXBounds(key); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
551 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
552 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
553 if (b != null && b.getLower().equals(b.getUpper())) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
554 logger.debug("Check whether to expand a x axis.i ("+b.getLower() + "-" + b.getUpper()+")"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
555 setXBounds(key, ChartHelper.expandBounds(b, 5)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
556 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
557 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
558 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
559 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
560 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
561 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
562 * This method zooms the plot to the specified ranges in the attribute |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
563 * document or to the ranges specified by the min/max values in the |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
564 * datasets. <b>Note:</b> We determine the range manually if no zoom ranges |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
565 * are given, because JFreeCharts auto-zoom adds a margin to the left and |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
566 * right of the data area. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
567 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
568 * @param plot The XYPlot. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
569 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
570 protected void autoZoom(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
571 logger.debug("Zoom to specified ranges."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
572 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
573 Range xrange = getDomainAxisRange(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
574 Range yrange = getValueAxisRange(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
575 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
576 ValueAxis xAxis = plot.getDomainAxis(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
577 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
578 Range fixedXRange = getRangeForAxisFromSettings("X"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
579 if (fixedXRange != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
580 xAxis.setRange(fixedXRange); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
581 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
582 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
583 zoomX(plot, xAxis, getXBounds(0), xrange); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
584 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
585 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
586 for (int i = 0, num = plot.getRangeAxisCount(); i < num; i++) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
587 ValueAxis yaxis = plot.getRangeAxis(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
588 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
589 if (yaxis instanceof IdentifiableNumberAxis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
590 IdentifiableNumberAxis idAxis = (IdentifiableNumberAxis) yaxis; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
591 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
592 Range fixedRange = getRangeForAxisFromSettings(idAxis.getId()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
593 if (fixedRange != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
594 yaxis.setRange(fixedRange); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
595 continue; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
596 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
597 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
598 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
599 if (yaxis == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
600 logger.debug("Zoom problem: no Y Axis for index: " + i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
601 continue; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
602 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
603 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
604 logger.debug("Prepare zoom settings for y axis at index: " + i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
605 zoomY(plot, yaxis, getYBounds(Integer.valueOf(i)), yrange); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
606 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
607 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
608 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
609 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
610 protected Range getDomainAxisRange() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
611 String[] ranges = getDomainAxisRangeFromRequest(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
612 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
613 if (ranges == null || ranges.length < 2) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
614 logger.debug("No zoom range for domain axis specified."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
615 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
616 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
617 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
618 if (ranges[0].length() > 0 && ranges[1].length() > 0) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
619 try { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
620 double from = Double.parseDouble(ranges[0]); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
621 double to = Double.parseDouble(ranges[1]); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
622 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
623 if (from == 0 && to == 0) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
624 logger.debug("No range specified. Lower and upper X == 0"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
625 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
626 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
627 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
628 if (from > to) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
629 double tmp = to; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
630 to = from; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
631 from = tmp; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
632 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
633 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
634 return new Range(from, to); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
635 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
636 catch (NumberFormatException nfe) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
637 logger.warn("Wrong values for domain axis range."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
638 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
639 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
640 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
641 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
642 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
643 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
644 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
645 protected Range getValueAxisRange() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
646 String[] ranges = getValueAxisRangeFromRequest(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
647 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
648 if (ranges == null || ranges.length < 2) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
649 logger.debug("No range specified. Lower and upper Y == 0"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
650 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
651 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
652 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
653 if (ranges[0].length() > 0 && ranges[1].length() > 0) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
654 try { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
655 double from = Double.parseDouble(ranges[0]); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
656 double to = Double.parseDouble(ranges[1]); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
657 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
658 if (from == 0 && to == 0) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
659 logger.debug("No range specified. Lower and upper Y == 0"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
660 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
661 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
662 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
663 return from > to |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
664 ? new Range(to, from) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
665 : new Range(from, to); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
666 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
667 catch (NumberFormatException nfe) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
668 logger.warn("Wrong values for value axis range."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
669 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
670 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
671 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
672 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
673 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
674 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
675 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
676 protected boolean zoomX(XYPlot plot, ValueAxis axis, Bounds bounds, Range x) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
677 return zoom(plot, axis, bounds, x); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
678 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
679 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
680 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
681 protected boolean zoomY(XYPlot plot, ValueAxis axis, Bounds bounds, Range x) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
682 return zoom(plot, axis, bounds, x); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
683 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
684 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
685 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
686 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
687 * Zooms the x axis to the range specified in the attribute document. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
688 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
689 * @param plot The XYPlot. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
690 * @param axis The axis the shoud be modified. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
691 * @param bounds The whole range specified by a dataset. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
692 * @param x A user defined range (null permitted). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
693 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
694 * @return true, if a zoom range was specified, otherwise false. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
695 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
696 protected boolean zoom(XYPlot plot, ValueAxis axis, Bounds bounds, Range x) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
697 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
698 if (bounds == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
699 return false; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
700 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
701 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
702 if (x != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
703 Bounds computed = calculateZoom(bounds, x); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
704 computed.applyBounds(axis, AXIS_SPACE); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
705 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
706 logger.debug("Zoom axis to: " + computed); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
707 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
708 return true; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
709 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
710 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
711 bounds.applyBounds(axis, AXIS_SPACE); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
712 return false; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
713 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
714 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
715 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
716 * Calculates the start and end km for zoomed charts. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
717 * @param bounds The given total bounds (unzoomed). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
718 * @param range The range specifying the zoom. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
719 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
720 * @return The start and end km for the zoomed chart. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
721 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
722 protected Bounds calculateZoom(Bounds bounds, Range range) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
723 double min = bounds.getLower().doubleValue(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
724 double max = bounds.getUpper().doubleValue(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
725 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
726 if (logger.isDebugEnabled()) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
727 logger.debug("Minimum is: " + min); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
728 logger.debug("Maximum is: " + max); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
729 logger.debug("Lower zoom is: " + range.getLowerBound()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
730 logger.debug("Upper zoom is: " + range.getUpperBound()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
731 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
732 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
733 double diff = max > min ? max - min : min - max; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
734 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
735 DoubleBounds computed = new DoubleBounds( |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
736 min + range.getLowerBound() * diff, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
737 min + range.getUpperBound() * diff); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
738 return computed; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
739 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
740 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
741 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
742 * Extract the minimum and maximum values for x and y axes |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
743 * which are stored in <i>xRanges</i> and <i>yRanges</i>. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
744 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
745 * @param index The index of the y-Axis. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
746 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
747 * @return a Range[] as follows: [x-Range, y-Range]. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
748 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
749 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
750 public Range[] getRangesForAxis(int index) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
751 logger.debug("getRangesForAxis " + index); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
752 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
753 Bounds rx = getXBounds(Integer.valueOf(0)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
754 Bounds ry = getYBounds(Integer.valueOf(index)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
755 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
756 if (rx == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
757 logger.warn("Range for x axis not set." + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
758 " Using default values: 0 - 1."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
759 rx = new DoubleBounds(0, 1); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
760 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
761 if (ry == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
762 logger.warn("Range for y" + index + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
763 " axis not set. Using default values: 0 - 1."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
764 ry = new DoubleBounds(0, 1); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
765 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
766 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
767 return new Range[] { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
768 new Range(rx.getLower().doubleValue(), rx.getUpper().doubleValue()), |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
769 new Range(ry.getLower().doubleValue(), ry.getUpper().doubleValue()) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
770 }; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
771 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
772 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
773 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
774 /** Get X (usually horizontal) extent for given axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
775 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
776 public Bounds getXBounds(int axis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
777 return xBounds.get(axis); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
778 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
779 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
780 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
781 /** Set X (usually horizontal) extent for given axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
782 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
783 protected void setXBounds(int axis, Bounds bounds) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
784 if (bounds.getLower() == bounds.getUpper()) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
785 xBounds.put(axis, ChartHelper.expandBounds(bounds, 5d)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
786 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
787 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
788 xBounds.put(axis, bounds); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
789 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
790 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
791 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
792 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
793 /** Get Y (usually vertical) extent for given axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
794 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
795 public Bounds getYBounds(int axis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
796 return yBounds.get(axis); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
797 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
798 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
799 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
800 /** Set Y (usually vertical) extent for given axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
801 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
802 protected void setYBounds(int axis, Bounds bounds) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
803 yBounds.put(axis, bounds); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
804 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
805 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
806 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
807 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
808 * Adjusts the axes of a plot. This method sets the <i>labelFont</i> of the |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
809 * X axis. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
810 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
811 * (Duplicate in TimeseriesChartGenerator) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
812 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
813 * @param plot The XYPlot of the chart. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
814 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
815 protected void adjustAxes(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
816 ValueAxis xaxis = plot.getDomainAxis(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
817 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
818 ChartSettings chartSettings = getChartSettings(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
819 if (chartSettings == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
820 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
821 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
822 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
823 Font labelFont = new Font( |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
824 DEFAULT_FONT_NAME, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
825 Font.BOLD, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
826 getXAxisLabelFontSize()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
827 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
828 xaxis.setLabelFont(labelFont); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
829 xaxis.setTickLabelFont(labelFont); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
830 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
831 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
832 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
833 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
834 * This method walks over all axes (domain and range) of <i>plot</i> and |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
835 * calls localizeDomainAxis() for domain axes or localizeRangeAxis() for |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
836 * range axes. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
837 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
838 * @param plot The XYPlot. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
839 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
840 private void localizeAxes(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
841 for (int i = 0, num = plot.getDomainAxisCount(); i < num; i++) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
842 ValueAxis axis = plot.getDomainAxis(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
843 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
844 if (axis != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
845 localizeDomainAxis(axis); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
846 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
847 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
848 logger.warn("Domain axis at " + i + " is null."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
849 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
850 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
851 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
852 for (int i = 0, num = plot.getRangeAxisCount(); i < num; i++) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
853 ValueAxis axis = plot.getRangeAxis(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
854 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
855 if (axis != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
856 localizeRangeAxis(axis); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
857 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
858 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
859 logger.warn("Range axis at " + i + " is null."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
860 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
861 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
862 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
863 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
864 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
865 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
866 * Overrides the NumberFormat with the NumberFormat for the current locale |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
867 * that is provided by getLocale(). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
868 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
869 * @param domainAxis The domain axis that needs localization. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
870 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
871 protected void localizeDomainAxis(ValueAxis domainAxis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
872 NumberFormat nf = NumberFormat.getInstance(getLocale()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
873 ((NumberAxis) domainAxis).setNumberFormatOverride(nf); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
874 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
875 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
876 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
877 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
878 * Overrides the NumberFormat with the NumberFormat for the current locale |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
879 * that is provided by getLocale(). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
880 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
881 * @param rangeAxis The domain axis that needs localization. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
882 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
883 protected void localizeRangeAxis(ValueAxis rangeAxis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
884 NumberFormat nf = NumberFormat.getInstance(getLocale()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
885 ((NumberAxis) rangeAxis).setNumberFormatOverride(nf); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
886 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
887 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
888 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
889 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
890 * Do Points out. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
891 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
892 protected void doPoints( |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
893 Object o, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
894 ArtifactAndFacet aandf, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
895 ThemeDocument theme, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
896 boolean visible, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
897 int axisIndex |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
898 ) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
899 String seriesName = aandf.getFacetDescription(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
900 XYSeries series = new StyledXYSeries(seriesName, theme); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
901 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
902 // Add text annotations for single points. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
903 List<XYTextAnnotation> xy = new ArrayList<XYTextAnnotation>(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
904 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
905 try { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
906 JSONArray points = new JSONArray((String) o); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
907 for (int i = 0, P = points.length(); i < P; i++) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
908 JSONArray array = points.getJSONArray(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
909 double x = array.getDouble(0); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
910 double y = array.getDouble(1); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
911 String name = array.getString(2); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
912 boolean act = array.getBoolean(3); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
913 if (!act) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
914 continue; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
915 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
916 //logger.debug(" x " + x + " y " + y ); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
917 series.add(x, y, false); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
918 xy.add(new CollisionFreeXYTextAnnotation(name, x, y)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
919 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
920 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
921 catch(JSONException e){ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
922 logger.error("Could not decode json."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
923 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
924 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
925 RiverAnnotation annotation = new RiverAnnotation(null, null, null, theme); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
926 annotation.setTextAnnotations(xy); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
927 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
928 // Do not generate second legend entry. (null was passed for the aand before). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
929 if (visible) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
930 annotations.add(annotation); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
931 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
932 // doAnnotations(annotations, null, theme, visible); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
933 addAxisSeries(series, axisIndex, visible); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
934 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
935 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
936 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
937 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
938 * Create a hash from a legenditem. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
939 * This hash can then be used to merge legend items labels. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
940 * @return hash for given legenditem to identify mergeables. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
941 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
942 public static String legendItemHash(LegendItem li) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
943 // TODO Do proper implementation. Ensure that only mergable sets are created. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
944 // getFillPaint() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
945 // getFillPaintTransformer() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
946 // getLabel() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
947 // getLine() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
948 // getLinePaint() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
949 // getLineStroke() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
950 // getOutlinePaint() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
951 // getOutlineStroke() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
952 // Shape getShape() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
953 // String getToolTipText() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
954 // String getURLText() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
955 // boolean isLineVisible() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
956 // boolean isShapeFilled() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
957 // boolean isShapeOutlineVisible() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
958 // boolean isShapeVisible() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
959 String hash = li.getLinePaint().toString(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
960 String label = li.getLabel(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
961 if (label.startsWith("W (") || label.startsWith("W(")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
962 hash += "-W-"; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
963 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
964 else if (label.startsWith("Q(") || label.startsWith("Q (")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
965 hash += "-Q-"; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
966 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
967 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
968 // WQ.java holds example of using regex Matcher/Pattern. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
969 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
970 return hash; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
971 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
972 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
973 /** True if x axis has been inverted. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
974 public boolean isInverted() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
975 return inverted; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
976 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
977 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
978 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
979 /** Set to true if x axis has been inverted. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
980 public void setInverted(boolean inverted) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
981 this.inverted = inverted; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
982 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
983 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
984 /** Add the acutal data to the diagram according to the processors. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
985 * For every outable facets, this function is |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
986 * called and handles the data accordingly. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
987 @Override |
7052
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
988 public void doOut( |
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
989 ArtifactAndFacet bundle, |
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
990 ThemeDocument theme, |
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
991 boolean visible |
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
992 ) { |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
993 String facetName = bundle.getFacetName(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
994 Facet facet = bundle.getFacet(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
995 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
996 /* A conservative security check */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
997 if (facetName == null || facet == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
998 /* Can't happen,.. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
999 logger.error("doOut called with null facet."); |
7052
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
1000 return; |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1001 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1002 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1003 logger.debug("DoOut for facet: " + facetName); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1004 |
7059
f9d5020af0af
Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents:
7052
diff
changeset
|
1005 for (Processor pr: diagramAttributes.getProcessors()) { |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1006 if (pr.canHandle(facetName)) { |
7059
f9d5020af0af
Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents:
7052
diff
changeset
|
1007 // pr.doOut(this, bundle, theme, visible, 0); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1008 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1009 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1010 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1011 } |