annotate artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java @ 7097:c64c04d0796e generator-refactoring

Move manual point handling into a Processor
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 23 Sep 2013 12:21:08 +0200
parents 5c059c05b100
children 24f153ad1f40
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
40 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
41 import org.dive4elements.artifactdatabase.state.Facet;
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
42 import org.dive4elements.river.artifacts.D4EArtifact;
7059
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 7052
diff changeset
43 import org.dive4elements.river.exports.process.Processor;
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
44 import org.dive4elements.river.jfree.AxisDataset;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
45 import org.dive4elements.river.jfree.AnnotationHelper;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
46 import org.dive4elements.river.jfree.Bounds;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
47 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
48 import org.dive4elements.river.jfree.DoubleBounds;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
49 import org.dive4elements.river.jfree.RiverAnnotation;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
50 import org.dive4elements.river.jfree.StyledAreaSeriesCollection;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
51 import org.dive4elements.river.jfree.StyledXYSeries;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
52 import org.dive4elements.river.themes.ThemeDocument;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
53
7051
c4bacc5ddd9b Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7044
diff changeset
54 import org.w3c.dom.Element;
c4bacc5ddd9b Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7044
diff changeset
55
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
56 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
57 * The main diagram creation class.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
58 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
59 * 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
60 * 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
61 * processors for the state and
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
62 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
63 * 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
64 * <ul>
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
65 * <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
66 * than later ones (only works per-axis). </li>
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
67 * <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
68 * 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
69 * 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
70 * <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
71 * </ul>
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
72 */
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
73 public class DiagramGenerator extends ChartGenerator2 {
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
74
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
75 public static final int AXIS_SPACE = 5;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
76
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
77 /** The logger that is used in this generator. */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
78 private static Logger logger = Logger.getLogger(DiagramGenerator.class);
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 protected List<Marker> domainMarkers = new ArrayList<Marker>();
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 protected List<Marker> valueMarkers = new ArrayList<Marker>();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
83
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
84 /** 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
85 protected Map<Integer, Bounds> xBounds;
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 /** 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
88 protected Map<Integer, Bounds> yBounds;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
89
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
90 /** 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
91 private boolean inverted;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
92
7051
c4bacc5ddd9b Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7044
diff changeset
93 protected DiagramAttributes diagramAttributes;
c4bacc5ddd9b Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7044
diff changeset
94
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
95 public DiagramGenerator() {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
96 super();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
97
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
98 xBounds = new HashMap<Integer, Bounds>();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
99 yBounds = new HashMap<Integer, Bounds>();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
100 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
101
7051
c4bacc5ddd9b Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7044
diff changeset
102 @Override
7087
ada424214b02 Use Object instead of DOM Element as argument for setup of out generators. First step to remove dependency to XML DOM when using configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7086
diff changeset
103 public void setup(Object config) {
ada424214b02 Use Object instead of DOM Element as argument for setup of out generators. First step to remove dependency to XML DOM when using configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7086
diff changeset
104 Element cfg = (Element)config;
7051
c4bacc5ddd9b Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7044
diff changeset
105 logger.debug("DiagramGenerator.setup");
7086
42e243c640a0 Little workaround to make diagram attribute parsing more thread safe. This is not the right solution.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7084
diff changeset
106 // TODO: XML DOM is not thread safe! We have to re-factor this.
7087
ada424214b02 Use Object instead of DOM Element as argument for setup of out generators. First step to remove dependency to XML DOM when using configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7086
diff changeset
107 synchronized (cfg.getOwnerDocument()) {
ada424214b02 Use Object instead of DOM Element as argument for setup of out generators. First step to remove dependency to XML DOM when using configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7086
diff changeset
108 diagramAttributes = new DiagramAttributes(cfg);
7086
42e243c640a0 Little workaround to make diagram attribute parsing more thread safe. This is not the right solution.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7084
diff changeset
109 }
7051
c4bacc5ddd9b Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7044
diff changeset
110 }
c4bacc5ddd9b Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7044
diff changeset
111
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
112 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
113 * 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
114 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
115 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
116 public JFreeChart generateChart() {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
117 logger.debug("DiagramGenerator.generateChart");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
118
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
119 JFreeChart chart = ChartFactory.createXYLineChart(
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
120 getChartTitle(),
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
121 "",
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
122 "",
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
123 null,
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
124 PlotOrientation.VERTICAL,
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
125 isLegendVisible(),
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
126 false,
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
127 false);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
128
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
129 XYPlot plot = (XYPlot) chart.getPlot();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
130 ValueAxis axis = createXAxis(getXAxisLabel());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
131 plot.setDomainAxis(axis);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
132
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
133 chart.setBackgroundPaint(Color.WHITE);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
134 plot.setBackgroundPaint(Color.WHITE);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
135 addSubtitles(chart);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
136 adjustPlot(plot);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
137
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
138 //debugAxis(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 addDatasets(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 //debugDatasets(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 addMarkers(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 recoverEmptyPlot(plot);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
147 preparePointRanges(plot);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
148
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
149 //debugAxis(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 localizeAxes(plot);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
152 adjustAxes(plot);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
153 if (!(axis instanceof LogarithmicAxis)) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
154 // XXX:
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
155 // The auto zoom without a range tries
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
156 // to include 0 in a logarithmic axis
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
157 // which triggers a bug in jfreechart that causes
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
158 // the values to be drawn carthesian
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
159 autoZoom(plot);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
160 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
161
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
162 //debugAxis(plot);
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 // These have to go after the autozoom.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
165 AnnotationHelper.addAnnotationsToRenderer(annotations, plot,
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
166 getChartSettings(), datasets);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
167
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
168 // Add a logo (maybe).
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
169 addLogo(plot);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
170
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
171 aggregateLegendEntries(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 return chart;
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
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
176 public String getOutName() {
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
177 return outName;
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
178 }
7044
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 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
181 * 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
182 * 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
183 * axis could be inverted.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
184 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
185 protected double getLeftX() {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
186 return (Double)getXBounds(0).getLower();
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 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
191 * 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
192 * 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
193 * axis could be inverted.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
194 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
195 protected double getRightX() {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
196 return (Double)getXBounds(0).getUpper();
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
200 /** Add a logo as background annotation to plot. */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
201 protected void addLogo(XYPlot plot) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
202 String logo = showLogo();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
203 if (logo == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
204 logger.debug("No logo to show chosen");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
205 return;
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
208 ImageIcon imageIcon = null;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
209 if (logo.equals("none")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
210 return;
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 /*
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
213 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
214 flys-artifacts:
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
215 DiagramGenerator.java
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
216 Timeseries*Generator.java and
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
217 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
218 Also, these images have to be put in
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
219 flys-artifacts/src/main/resources/images/
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
220 flys-client/src/main/webapp/images/
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
221 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
222 java.net.URL imageURL;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
223 if (logo.equals("Intevation")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
224 imageURL = DiagramGenerator.class.getResource("/images/intevation.png");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
225 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
226 else { // TODO else if ...
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
227 imageURL = DiagramGenerator.class.getResource("/images/bfg_logo.gif");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
228 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
229 imageIcon = new ImageIcon(imageURL);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
232 double xPos = 0d, yPos = 0d;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
233
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
234 String placeh = logoHPlace();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
235 String placev = logoVPlace();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
236
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
237 if (placev == null || placev.equals("none")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
238 placev = "top";
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
239 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
240 if (placev.equals("top")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
241 yPos = (Double)getYBounds(0).getUpper();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
242 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
243 else if (placev.equals("bottom")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
244 yPos = (Double)getYBounds(0).getLower();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
245 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
246 else if (placev.equals("center")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
247 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
248 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
249 else {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
250 logger.debug("Unknown place-v value: " + placev);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
253 if (placeh == null || placeh.equals("none")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
254 placeh = "center";
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
255 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
256 if (placeh.equals("left")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
257 xPos = getLeftX();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
258 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
259 else if (placeh.equals("right")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
260 xPos = getRightX();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
261 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
262 else if (placeh.equals("center")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
263 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
264 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
265 else {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
266 logger.debug("Unknown place-h value: " + placeh);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
269 logger.debug("logo position: " + xPos + "/" + yPos);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
270
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
271 org.jfree.ui.RectangleAnchor anchor
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
272 = org.jfree.ui.RectangleAnchor.TOP;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
273 if (placev.equals("top")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
274 if (placeh.equals("left")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
275 anchor = org.jfree.ui.RectangleAnchor.TOP_LEFT;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
276 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
277 else if (placeh.equals("right")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
278 anchor = org.jfree.ui.RectangleAnchor.TOP_RIGHT;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
279 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
280 else if (placeh.equals("center")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
281 anchor = org.jfree.ui.RectangleAnchor.TOP;
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 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
284 else if (placev.equals("bottom")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
285 if (placeh.equals("left")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
286 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_LEFT;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
287 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
288 else if (placeh.equals("right")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
289 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_RIGHT;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
290 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
291 else if (placeh.equals("center")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
292 anchor = org.jfree.ui.RectangleAnchor.BOTTOM;
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 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
295 else if (placev.equals("center")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
296 if (placeh.equals("left")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
297 anchor = org.jfree.ui.RectangleAnchor.LEFT;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
298 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
299 else if (placeh.equals("right")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
300 anchor = org.jfree.ui.RectangleAnchor.RIGHT;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
301 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
302 else if (placeh.equals("center")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
303 anchor = org.jfree.ui.RectangleAnchor.CENTER;
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
307 XYAnnotation xyannotation =
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
308 new XYImageAnnotation(xPos, yPos, imageIcon.getImage(), anchor);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
309 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
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
313 protected NumberAxis createXAxis(String label) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
314 return new NumberAxis(label);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
318 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
319 protected Series getSeriesOf(XYDataset dataset, int idx) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
320 return ((XYSeriesCollection) dataset).getSeries(idx);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
324 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
325 protected AxisDataset createAxisDataset(int idx) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
326 logger.debug("Create new AxisDataset for index: " + idx);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
327 return new AxisDataset(idx);
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 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
332 * Put debug output about datasets.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
333 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
334 public void debugDatasets(XYPlot plot) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
335 logger.debug("Number of datasets: " + plot.getDatasetCount());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
336 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
337 if (plot.getDataset(i) == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
338 logger.debug("Dataset #" + i + " is null");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
339 continue;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
340 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
341 logger.debug("Dataset #" + i + ":" + plot.getDataset(i));
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
342 XYSeriesCollection series = (XYSeriesCollection) plot.getDataset(i);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
343 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
344 + " " + series.getSeries(0).getMaxX());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
345 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
346 + " " + series.getSeries(0).getMaxY());
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 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
352 * Put debug output about axes.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
353 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
354 public void debugAxis(XYPlot plot) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
355 logger.debug("...............");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
356 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
357 if (plot.getRangeAxis(i) == null)
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
358 logger.debug("Range-Axis #" + i + " == null");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
359 else {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
360 logger.debug("Range-Axis " + i + " != null [" +
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
361 plot.getRangeAxis(i).getRange().getLowerBound() +
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
362 " " + plot.getRangeAxis(i).getRange().getUpperBound() +
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 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
366 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
367 if (plot.getDomainAxis(i) == null)
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
368 logger.debug("Domain-Axis #" + i + " == null");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
369 else {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
370 logger.debug("Domain-Axis " + i + " != null [" +
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
371 plot.getDomainAxis(i).getRange().getLowerBound() +
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
372 " " + plot.getDomainAxis(i).getRange().getUpperBound() +
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 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
376 logger.debug("...............");
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
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
379 /**
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
380 * Registers an area to be drawn.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
381 * @param area Area to be drawn.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
382 * @param axisName Name of the axis.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
383 * @param visible Whether or not to be visible (important for range calculations).
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
384 */
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
385 public void addAreaSeries(StyledAreaSeriesCollection area, String axisName, boolean visible) {
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
386 addAreaSeries(area, diagramAttributes.getAxisIndex(axisName), visible);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
387 }
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
388
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 * Registers an area to be drawn.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
391 * @param area Area to be drawn.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
392 * @param index 'axis index'
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
393 * @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
394 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
395 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
396 if (area == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
397 logger.warn("Cannot yet render above/under curve.");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
398 return;
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 AxisDataset axisDataset = (AxisDataset) getAxisDataset(index);
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 if (visible) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
404 axisDataset.addArea(area);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
405 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
406 else {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
407 /* 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
408 * causes problems. */
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 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
411
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
412 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
413 * 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
414 * all points in data would be plotted once visible).
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
415 * @param series the data series to include in plot.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
416 * @param index index of the axis.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
417 * @param visible whether or not the data should be plotted.
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
418 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
419 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
420 if (series == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
421 return;
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 logger.debug("Y Range of XYSeries: " +
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
425 series.getMinY() + " | " + series.getMaxY());
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 addAxisDataset(new XYSeriesCollection(series), index, visible);
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
428 }
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
429
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
430 /**
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
431 * Add given series if visible, if not visible adjust ranges (such that
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
432 * all points in data would be plotted once visible).
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
433 * @param series the data series to include in plot.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
434 * @param axisName name of the axis.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
435 * @param visible whether or not the data should be plotted.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
436 */
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
437 public void addAxisSeries(XYSeries series, String axisName, boolean visible) {
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
438 addAxisSeries(series, diagramAttributes.getAxisIndex(axisName), visible);
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
439 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
440
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 * Add the given vertical marker to the chart.
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 public void addDomainMarker(Marker marker) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
446 addDomainMarker(marker, true);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
449
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 * 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
452 * 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
453 * @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
454 * @param visible The visibility of the marker.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
455 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
456 public void addDomainMarker(Marker marker, boolean visible) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
457 if (visible && marker != null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
458 domainMarkers.add(marker);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
459 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
460 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
461
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 * Add the given vertical marker to the chart.
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 public void addValueMarker(Marker marker) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
467 addValueMarker(marker, true);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
468 }
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
471 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
472 * 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
473 * 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
474 * @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
475 * @param visible The visibility of the marker.
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 public void addValueMarker(Marker marker, boolean visible) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
478 if (visible && marker != null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
479 valueMarkers.add(marker);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
480 }
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
483
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
484 protected void addMarkers(XYPlot plot) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
485 for(Marker marker : domainMarkers) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
486 plot.addDomainMarker(marker);
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 for(Marker marker : valueMarkers) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
489 plot.addRangeMarker(marker);
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 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
492
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
493
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
494 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
495 * 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
496 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
497 * @param bounds the given ("minimal") bounds.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
498 * @param index index of axis to be merged.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
499 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
500 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
501 protected void combineXBounds(Bounds bounds, int index) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
502 if (!(bounds instanceof DoubleBounds)) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
503 logger.warn("Unsupported Bounds type: " + bounds.getClass());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
504 return;
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 DoubleBounds dBounds = (DoubleBounds) bounds;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
508
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
509 if (dBounds == null
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
510 || Double.isNaN((Double) dBounds.getLower())
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
511 || Double.isNaN((Double) dBounds.getUpper())) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
512 return;
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
515 Bounds old = getXBounds(index);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
516
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
517 if (old != null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
518 dBounds = (DoubleBounds) dBounds.combine(old);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
519 }
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 setXBounds(index, dBounds);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
522 }
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
525 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
526 protected void combineYBounds(Bounds bounds, int index) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
527 if (!(bounds instanceof DoubleBounds)) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
528 logger.warn("Unsupported Bounds type: " + bounds.getClass());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
529 return;
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 DoubleBounds dBounds = (DoubleBounds) bounds;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
533
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
534 if (dBounds == null
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
535 || Double.isNaN((Double) dBounds.getLower())
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
536 || Double.isNaN((Double) dBounds.getUpper())) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
537 return;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
538 }
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 Bounds old = getYBounds(index);
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 if (old != null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
543 dBounds = (DoubleBounds) dBounds.combine(old);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
544 }
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 setYBounds(index, dBounds);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
547 }
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
550 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
551 * 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
552 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
553 private void recoverEmptyPlot(XYPlot plot) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
554 if (plot.getRangeAxis() == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
555 logger.debug("debug: No range axis");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
556 plot.setRangeAxis(createYAxis(0));
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 * 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
563 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
564 private void preparePointRanges(XYPlot plot) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
565 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
566
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
567 Integer key = Integer.valueOf(i);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
568 Bounds b = getXBounds(key);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
571 if (b != null && b.getLower().equals(b.getUpper())) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
572 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
573 setXBounds(key, ChartHelper.expandBounds(b, 5));
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
574 }
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 }
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
579 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
580 * 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
581 * 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
582 * 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
583 * 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
584 * right of the data area.
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 * @param plot The XYPlot.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
587 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
588 protected void autoZoom(XYPlot plot) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
589 logger.debug("Zoom to specified ranges.");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
590
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
591 Range xrange = getDomainAxisRange();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
592 Range yrange = getValueAxisRange();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
593
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
594 ValueAxis xAxis = plot.getDomainAxis();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
595
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
596 Range fixedXRange = getRangeForAxisFromSettings("X");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
597 if (fixedXRange != null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
598 xAxis.setRange(fixedXRange);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
599 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
600 else {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
601 zoomX(plot, xAxis, getXBounds(0), xrange);
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 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
605 ValueAxis yaxis = plot.getRangeAxis(i);
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 if (yaxis instanceof IdentifiableNumberAxis) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
608 IdentifiableNumberAxis idAxis = (IdentifiableNumberAxis) yaxis;
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 Range fixedRange = getRangeForAxisFromSettings(idAxis.getId());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
611 if (fixedRange != null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
612 yaxis.setRange(fixedRange);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
613 continue;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
614 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
615 }
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 if (yaxis == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
618 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
619 continue;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
620 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
621
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
622 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
623 zoomY(plot, yaxis, getYBounds(Integer.valueOf(i)), yrange);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
624 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
625 }
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 protected Range getDomainAxisRange() {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
629 String[] ranges = getDomainAxisRangeFromRequest();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
630
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
631 if (ranges == null || ranges.length < 2) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
632 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
633 return null;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
634 }
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 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
637 try {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
638 double from = Double.parseDouble(ranges[0]);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
639 double to = Double.parseDouble(ranges[1]);
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 if (from == 0 && to == 0) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
642 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
643 return null;
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
646 if (from > to) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
647 double tmp = to;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
648 to = from;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
649 from = tmp;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
650 }
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 return new Range(from, to);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
653 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
654 catch (NumberFormatException nfe) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
655 logger.warn("Wrong values for domain axis range.");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
656 }
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
659 return null;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
660 }
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 protected Range getValueAxisRange() {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
664 String[] ranges = getValueAxisRangeFromRequest();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
665
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
666 if (ranges == null || ranges.length < 2) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
667 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
668 return null;
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 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
672 try {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
673 double from = Double.parseDouble(ranges[0]);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
674 double to = Double.parseDouble(ranges[1]);
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 if (from == 0 && to == 0) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
677 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
678 return null;
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 return from > to
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
682 ? new Range(to, from)
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
683 : new Range(from, to);
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 catch (NumberFormatException nfe) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
686 logger.warn("Wrong values for value axis range.");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
687 }
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
690 return null;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
691 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
692
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 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
695 return zoom(plot, axis, bounds, x);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
696 }
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
699 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
700 return zoom(plot, axis, bounds, x);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
703
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
704 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
705 * 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
706 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
707 * @param plot The XYPlot.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
708 * @param axis The axis the shoud be modified.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
709 * @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
710 * @param x A user defined range (null permitted).
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
711 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
712 * @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
713 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
714 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
715
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
716 if (bounds == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
717 return false;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
718 }
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 if (x != null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
721 Bounds computed = calculateZoom(bounds, x);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
722 computed.applyBounds(axis, AXIS_SPACE);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
723
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
724 logger.debug("Zoom axis to: " + computed);
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 return true;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
727 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
728
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
729 bounds.applyBounds(axis, AXIS_SPACE);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
730 return false;
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 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
734 * 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
735 * @param bounds The given total bounds (unzoomed).
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
736 * @param range The range specifying the zoom.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
737 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
738 * @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
739 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
740 protected Bounds calculateZoom(Bounds bounds, Range range) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
741 double min = bounds.getLower().doubleValue();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
742 double max = bounds.getUpper().doubleValue();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
743
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
744 if (logger.isDebugEnabled()) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
745 logger.debug("Minimum is: " + min);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
746 logger.debug("Maximum is: " + max);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
747 logger.debug("Lower zoom is: " + range.getLowerBound());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
748 logger.debug("Upper zoom is: " + range.getUpperBound());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
749 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
750
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
751 double diff = max > min ? max - min : min - max;
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 DoubleBounds computed = new DoubleBounds(
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
754 min + range.getLowerBound() * diff,
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
755 min + range.getUpperBound() * diff);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
756 return computed;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
757 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
758
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
759 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
760 * 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
761 * 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
762 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
763 * @param index The index of the y-Axis.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
764 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
765 * @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
766 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
767 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
768 public Range[] getRangesForAxis(int index) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
769 logger.debug("getRangesForAxis " + index);
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 Bounds rx = getXBounds(Integer.valueOf(0));
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
772 Bounds ry = getYBounds(Integer.valueOf(index));
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 if (rx == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
775 logger.warn("Range for x axis not set." +
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
776 " Using default values: 0 - 1.");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
777 rx = new DoubleBounds(0, 1);
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 if (ry == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
780 logger.warn("Range for y" + index +
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
781 " axis not set. Using default values: 0 - 1.");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
782 ry = new DoubleBounds(0, 1);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
783 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
784
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
785 return new Range[] {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
786 new Range(rx.getLower().doubleValue(), rx.getUpper().doubleValue()),
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
787 new Range(ry.getLower().doubleValue(), ry.getUpper().doubleValue())
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
788 };
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 /** Get X (usually horizontal) extent for given axis. */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
793 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
794 public Bounds getXBounds(int axis) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
795 return xBounds.get(axis);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
796 }
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 /** Set X (usually horizontal) extent for given axis. */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
800 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
801 protected void setXBounds(int axis, Bounds bounds) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
802 if (bounds.getLower() == bounds.getUpper()) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
803 xBounds.put(axis, ChartHelper.expandBounds(bounds, 5d));
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 else {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
806 xBounds.put(axis, bounds);
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 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
809
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 /** Get Y (usually vertical) extent for given axis. */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
812 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
813 public Bounds getYBounds(int axis) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
814 return yBounds.get(axis);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
815 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
816
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 /** Set Y (usually vertical) extent for given axis. */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
819 @Override
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
820 protected void setYBounds(int axis, Bounds bounds) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
821 yBounds.put(axis, bounds);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
824
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
825 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
826 * 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
827 * X axis.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
828 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
829 * (Duplicate in TimeseriesChartGenerator)
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 * @param plot The XYPlot of the chart.
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 protected void adjustAxes(XYPlot plot) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
834 ValueAxis xaxis = plot.getDomainAxis();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
835
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
836 ChartSettings chartSettings = getChartSettings();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
837 if (chartSettings == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
838 return;
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
841 Font labelFont = new Font(
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
842 DEFAULT_FONT_NAME,
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
843 Font.BOLD,
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
844 getXAxisLabelFontSize());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
845
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
846 xaxis.setLabelFont(labelFont);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
847 xaxis.setTickLabelFont(labelFont);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
848 }
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 * 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
853 * calls localizeDomainAxis() for domain axes or localizeRangeAxis() for
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
854 * range axes.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
855 *
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
856 * @param plot The XYPlot.
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 private void localizeAxes(XYPlot plot) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
859 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
860 ValueAxis axis = plot.getDomainAxis(i);
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 if (axis != null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
863 localizeDomainAxis(axis);
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 else {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
866 logger.warn("Domain axis at " + i + " is null.");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
867 }
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
870 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
871 ValueAxis axis = plot.getRangeAxis(i);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
872
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
873 if (axis != null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
874 localizeRangeAxis(axis);
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 else {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
877 logger.warn("Range axis at " + i + " is null.");
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
878 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
879 }
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
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 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
884 * 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
885 * that is provided by getLocale().
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 * @param domainAxis The domain axis that needs localization.
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 protected void localizeDomainAxis(ValueAxis domainAxis) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
890 NumberFormat nf = NumberFormat.getInstance(getLocale());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
891 ((NumberAxis) domainAxis).setNumberFormatOverride(nf);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
892 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
893
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
894
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
895 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
896 * 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
897 * that is provided by getLocale().
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 * @param rangeAxis The domain axis that needs localization.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
900 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
901 protected void localizeRangeAxis(ValueAxis rangeAxis) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
902 NumberFormat nf = NumberFormat.getInstance(getLocale());
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
903 ((NumberAxis) rangeAxis).setNumberFormatOverride(nf);
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
906
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
907 /**
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
908 * Create a hash from a legenditem.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
909 * 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
910 * @return hash for given legenditem to identify mergeables.
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
911 */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
912 public static String legendItemHash(LegendItem li) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
913 // 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
914 // getFillPaint()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
915 // getFillPaintTransformer()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
916 // getLabel()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
917 // getLine()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
918 // getLinePaint()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
919 // getLineStroke()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
920 // getOutlinePaint()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
921 // getOutlineStroke()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
922 // Shape getShape()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
923 // String getToolTipText()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
924 // String getURLText()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
925 // boolean isLineVisible()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
926 // boolean isShapeFilled()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
927 // boolean isShapeOutlineVisible()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
928 // boolean isShapeVisible()
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
929 String hash = li.getLinePaint().toString();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
930 String label = li.getLabel();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
931 if (label.startsWith("W (") || label.startsWith("W(")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
932 hash += "-W-";
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
933 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
934 else if (label.startsWith("Q(") || label.startsWith("Q (")) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
935 hash += "-Q-";
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 // 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
939
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
940 return hash;
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
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
943 /** True if x axis has been inverted. */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
944 public boolean isInverted() {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
945 return inverted;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
946 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
947
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
948
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
949 /** 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
950 public void setInverted(boolean inverted) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
951 this.inverted = inverted;
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
952 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
953
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
954 @Override
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
955 public String getDefaultChartTitle() {
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
956 DiagramAttributes.Title dTitle = diagramAttributes.getTitle();
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
957 if (dTitle == null) {
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
958 return "Title not configured in conf.xml";
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
959 }
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
960
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
961 return dTitle.evaluate((D4EArtifact)getMaster(), context);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
962 }
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
963
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
964 @Override
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
965 public String getDefaultChartSubtitle() {
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
966 DiagramAttributes.Title dTitle = diagramAttributes.getSubtitle();
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
967 if (dTitle == null) {
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
968 return "Subtitle not configured in conf.xml";
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
969 }
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
970
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
971 return dTitle.evaluate((D4EArtifact)getMaster(), context);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
972 }
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
973
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
974 /**
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
975 * Get internationalized label for the x axis.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
976 */
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
977 @Override
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
978 protected String getDefaultXAxisLabel() {
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
979 DiagramAttributes.Title dTitle = diagramAttributes.getDomainAxisTitle();
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
980 if (dTitle == null) {
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
981 return "Domain Axis Title not configured in conf.xml";
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
982 }
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
983
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
984 return dTitle.evaluate((D4EArtifact)getMaster(), context);
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
985 }
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
986
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
987 @Override
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
988 protected String getDefaultYAxisLabel(String axisName) {
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
989 Processor pr = diagramAttributes.getProcessorForAxisName(axisName);
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
990 return pr == null ? "" : pr.getAxisLabel(this);
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
991 }
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
992
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
993
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
994 /**
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
995 * Creates a list of Section for the chart's Y axes.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
996 *
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
997 * @return a list of Y axis sections.
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
998 */
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
999 protected List<AxisSection> buildYAxisSections() {
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1000 List<AxisSection> axisSections = new ArrayList<AxisSection>();
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1001
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1002 List<DiagramAttributes.AxisAttributes> axesAttrs = diagramAttributes.getAxesAttributes();
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1003
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1004 for (int i = 0, n = axesAttrs.size(); i < n; i++) {
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1005 AxisSection ySection = new AxisSection();
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1006 String axisName = diagramAttributes.getAxisName(i);
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1007 ySection.setIdentifier(axisName);
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1008 ySection.setLabel(getYAxisLabel(axisName));
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1009 ySection.setFontSize(14);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1010 ySection.setFixed(false);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1011
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1012 // XXX We are able to find better default ranges that [0,0], the
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1013 // only problem is, that we do NOT have a better range than [0,0]
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1014 // for each axis, because the initial chart will not have a dataset
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1015 // for each axis set!
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1016 ySection.setUpperRange(0d);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1017 ySection.setLowerRange(0d);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1018
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1019 axisSections.add(ySection);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1020 }
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1021
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1022 return axisSections;
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1023 }
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1024
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1025 /**
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1026 * Returns the Y-Axis label of a chart at position <i>pos</i>.
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1027 *
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1028 * @return the Y-Axis label of a chart at position <i>0</i>.
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1029 */
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1030 protected String getYAxisLabel(String axisName) {
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1031 ChartSettings chartSettings = getChartSettings();
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1032 if (chartSettings == null) {
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1033 return getDefaultYAxisLabel(axisName);
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1034 }
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1035 AxisSection as = chartSettings.getAxisSection(axisName);
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1036 if (as != null) {
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1037 String label = as.getLabel();
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1038 if (label != null) {
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1039 return label;
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1040 }
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1041 }
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1042
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1043 return getDefaultYAxisLabel(axisName);
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1044 }
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
1045
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1046 protected String axisIndexToName(int index) {
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1047 return diagramAttributes.getAxisName(index);
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1048 }
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1049
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1050 /** 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
1051 * For every outable facets, this function is
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1052 * called and handles the data accordingly. */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1053 @Override
7052
7056fa3b1f75 Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7051
diff changeset
1054 public void doOut(
7056fa3b1f75 Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7051
diff changeset
1055 ArtifactAndFacet bundle,
7056fa3b1f75 Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7051
diff changeset
1056 ThemeDocument theme,
7056fa3b1f75 Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7051
diff changeset
1057 boolean visible
7056fa3b1f75 Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7051
diff changeset
1058 ) {
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1059 String facetName = bundle.getFacetName();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1060 Facet facet = bundle.getFacet();
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1061
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1062 /* A conservative security check */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1063 if (facetName == null || facet == null) {
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1064 /* Can't happen,.. */
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1065 logger.error("doOut called with null facet.");
7052
7056fa3b1f75 Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7051
diff changeset
1066 return;
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1067 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1068
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1069 logger.debug("DoOut for facet: " + facetName);
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1070
7096
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1071 boolean found = false;
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1072 List<Processor> prL = diagramAttributes.getProcessors();
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1073 for (Processor pr: prL) {
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1074 if (pr.canHandle(facetName)) {
7096
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1075 found = true;
7068
726d998dce29 Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
1076 pr.doOut(this, bundle, theme, visible);
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1077 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1078 }
7096
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1079 if (!found) {
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1080 logger.warn("No processor found for: " + facetName);
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1081 if (logger.isDebugEnabled()) {
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1082 logger.debug("Configured processors for this diagram are:");
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1083 for (Processor pr: prL) {
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1084 logger.debug(pr.getClass().getName());
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1085 }
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1086 }
5c059c05b100 Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents: 7088
diff changeset
1087 }
7044
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1088 }
6ab1464021ae Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1089 }

http://dive4elements.wald.intevation.org