Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java @ 9283:55e2155ab52d
Introduced new option 'tick-units' for axes. Configured the count Axis to only allow for integer ticks.
author | gernotbelger |
---|---|
date | Fri, 20 Jul 2018 15:24:05 +0200 |
parents | 1cc7653ca84f |
children | 7c7f73e5e01e |
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; |
8892
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
15 import java.util.Collection; |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
16 import java.util.HashMap; |
7806
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
17 import java.util.HashSet; |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
18 import java.util.LinkedHashSet; |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 import java.util.List; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 import java.util.Map; |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
21 import java.util.Set; |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
22 import java.util.regex.Matcher; |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
23 import java.util.regex.Pattern; |
7123
1a20738e9a21
Add currentKM context / request mapping to RiverUtils and use it in DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7122
diff
changeset
|
24 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
25 import javax.swing.ImageIcon; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
27 import org.apache.commons.lang.StringUtils; |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
28 import org.apache.log4j.Logger; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
29 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
30 import org.dive4elements.artifactdatabase.state.Facet; |
7123
1a20738e9a21
Add currentKM context / request mapping to RiverUtils and use it in DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7122
diff
changeset
|
31 import org.dive4elements.artifacts.CallContext; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
32 import org.dive4elements.river.artifacts.D4EArtifact; |
8889
f87f435df856
Allow to configure lower and upper margin of a chart axis
gernotbelger
parents:
8885
diff
changeset
|
33 import org.dive4elements.river.exports.DiagramAttributes.AxisAttributes; |
9283
55e2155ab52d
Introduced new option 'tick-units' for axes. Configured the count Axis to only allow for integer ticks.
gernotbelger
parents:
9123
diff
changeset
|
34 import org.dive4elements.river.exports.DiagramAttributes.AxisAttributes.TickUnits; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
35 import org.dive4elements.river.exports.process.Processor; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
36 import org.dive4elements.river.jfree.AxisDataset; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
37 import org.dive4elements.river.jfree.Bounds; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
38 import org.dive4elements.river.jfree.DoubleBounds; |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
39 import org.dive4elements.river.jfree.RiverAnnotation; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
40 import org.dive4elements.river.jfree.StyledAreaSeriesCollection; |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
41 import org.dive4elements.river.jfree.XYMetaSeriesCollection; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
42 import org.dive4elements.river.themes.ThemeDocument; |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 import org.jfree.chart.ChartFactory; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
44 import org.jfree.chart.JFreeChart; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 import org.jfree.chart.LegendItem; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 import org.jfree.chart.annotations.XYAnnotation; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
47 import org.jfree.chart.annotations.XYImageAnnotation; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
48 import org.jfree.chart.axis.LogarithmicAxis; |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
49 import org.jfree.chart.axis.NumberAxis; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
50 import org.jfree.chart.axis.ValueAxis; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
51 import org.jfree.chart.plot.Marker; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
52 import org.jfree.chart.plot.PlotOrientation; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
53 import org.jfree.chart.plot.XYPlot; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
54 import org.jfree.data.Range; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
55 import org.jfree.data.general.Series; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
56 import org.jfree.data.xy.XYDataset; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
57 import org.jfree.data.xy.XYSeries; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
58 import org.jfree.data.xy.XYSeriesCollection; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
59 |
7051
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
60 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 * The main diagram creation class. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
64 * 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
|
65 * The generator creates one diagram and calls the appropiate |
7248
1dff8e71c4d6
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7246
diff
changeset
|
66 * processors for the state and |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
68 * 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
|
69 * <ul> |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
70 * <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
|
71 * than later ones (only works per-axis). </li> |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
72 * <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
|
73 * 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
|
74 * 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
|
75 * <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
|
76 * </ul> |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
77 */ |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
78 public class DiagramGenerator extends ChartGenerator2 { |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
79 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
80 public static final int AXIS_SPACE = 5; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
81 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
82 /** The log that is used in this generator. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
83 private static Logger log = Logger.getLogger(DiagramGenerator.class); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
84 |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
85 protected List<Marker> domainMarkers = new ArrayList<>(); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
86 |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
87 protected List<Marker> valueMarkers = new ArrayList<>(); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
88 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
89 /** The max X range to include all X values of all series for each axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
90 protected Map<Integer, Bounds> xBounds; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
91 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
92 /** The max Y range to include all Y values of all series for each axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
93 protected Map<Integer, Bounds> yBounds; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
94 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
95 /** Whether or not the plot is inverted (left-right). */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
96 private boolean inverted; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
97 |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
98 private static final Pattern UNIT_PATTERN = |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
99 Pattern.compile("\\s*\\[[\\w\\s\\+\\-]*\\]\\s*"); |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
100 |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
101 protected Map<Integer, LinkedHashSet<String>> axesLabels; |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
102 |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
103 protected DiagramAttributes.Instance diagramAttributes; |
7051
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
104 |
7806
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
105 protected HashSet<String> subTitleParts; |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
106 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
107 public DiagramGenerator() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
108 super(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
109 |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
110 axesLabels = new HashMap<Integer, LinkedHashSet<String>>(); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
111 xBounds = new HashMap<Integer, Bounds>(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
112 yBounds = new HashMap<Integer, Bounds>(); |
7806
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
113 subTitleParts = new LinkedHashSet<String>(); |
7044
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 |
7051
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
116 @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
|
117 public void setup(Object config) { |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
118 |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
119 if (!(config instanceof DiagramAttributes)) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
120 log.error("invalid config type"); |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
121 return; |
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
|
122 } |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
123 DiagramAttributes da = (DiagramAttributes)config; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7097
diff
changeset
|
124 diagramAttributes = da.new Instance(); |
7051
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
125 } |
c4bacc5ddd9b
Parse config when setup a new diagram.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7044
diff
changeset
|
126 |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
127 private void setInvertedFromConfig(CallContext context) { |
7143
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
128 DiagramAttributes.DomainAxisAttributes dx = |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
129 diagramAttributes.getDomainAxis(); |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
130 |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
131 if (dx != null) { |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
132 inverted = (Boolean)dx.isInverted() |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
133 .evaluate((D4EArtifact)getMaster(), context); |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
134 log.debug("setInvertedFromConfig: " + inverted); |
7167
2fd238b681a9
Add debug output triggered by debugging the last commit
Andre Heinecke <aheinecke@intevation.de>
parents:
7143
diff
changeset
|
135 } else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
136 log.debug("setInvertedFromConfig no domain axis found?"); |
7143
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
137 } |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
138 } |
7123
1a20738e9a21
Add currentKM context / request mapping to RiverUtils and use it in DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7122
diff
changeset
|
139 |
8723
686d8876edf9
(issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8351
diff
changeset
|
140 protected void postProcess() { |
686d8876edf9
(issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8351
diff
changeset
|
141 return; |
686d8876edf9
(issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8351
diff
changeset
|
142 } |
686d8876edf9
(issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8351
diff
changeset
|
143 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
144 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
145 * 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
|
146 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
147 @Override |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
148 protected JFreeChart generateChart(CallContext context) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
149 log.debug("DiagramGenerator.generateChart"); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
150 |
8723
686d8876edf9
(issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8351
diff
changeset
|
151 postProcess(); |
686d8876edf9
(issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8351
diff
changeset
|
152 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
153 JFreeChart chart = ChartFactory.createXYLineChart( |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
154 getChartTitle(context), |
7084
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
155 "", |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
156 "", |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
157 null, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
158 PlotOrientation.VERTICAL, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
159 isLegendVisible(), |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
160 false, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
161 false); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
162 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
163 XYPlot plot = (XYPlot) chart.getPlot(); |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
164 ValueAxis axis = createXAxis(context, getXAxisLabel()); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
165 plot.setDomainAxis(axis); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
166 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
167 chart.setBackgroundPaint(Color.WHITE); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
168 plot.setBackgroundPaint(Color.WHITE); |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
169 addSubtitles(context, chart); |
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
170 addMetadataSubtitle(context, chart); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
171 adjustPlot(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 //debugAxis(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
174 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
175 addDatasets(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
176 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
177 //debugDatasets(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
178 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
179 addMarkers(plot); |
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 recoverEmptyPlot(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
182 preparePointRanges(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
183 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
184 //debugAxis(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
185 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
186 localizeAxes(plot); |
7246
7ea428c4aca0
Check for inverted setting later.
Andre Heinecke <aheinecke@intevation.de>
parents:
7241
diff
changeset
|
187 |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
188 setInvertedFromConfig(context); |
7246
7ea428c4aca0
Check for inverted setting later.
Andre Heinecke <aheinecke@intevation.de>
parents:
7241
diff
changeset
|
189 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
190 adjustAxes(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
191 if (!(axis instanceof LogarithmicAxis)) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
192 // XXX: |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
193 // The auto zoom without a range tries |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
194 // to include 0 in a logarithmic axis |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
195 // which triggers a bug in jfreechart that causes |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
196 // the values to be drawn carthesian |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
197 autoZoom(plot); |
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 //debugAxis(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
201 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
202 // These have to go after the autozoom. |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
203 addAnnotationsToRenderer(plot); |
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
204 addYAnnotationsToRenderer(plot); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
205 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
206 // Add a logo (maybe). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
207 addLogo(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
208 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
209 aggregateLegendEntries(plot); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
210 |
8892
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
211 /* allow extenders to do some work */ |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
212 final Collection<ChartExtender> extenders = this.diagramAttributes.getExtenders(); |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
213 for (final ChartExtender extender : extenders) { |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
214 extender.afterGenerateChart(this, plot); |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
215 } |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
216 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
217 return chart; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
218 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
219 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
220 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
221 * 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
|
222 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
223 protected double getLeftX() { |
7106
ed8623b989f3
Minor cleanup / doc
Andre Heinecke <aheinecke@intevation.de>
parents:
7104
diff
changeset
|
224 if (inverted) { |
7104
eb3a2bc5d591
Add more Inversion logic to the DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7099
diff
changeset
|
225 return (Double)getXBounds(0).getUpper(); |
eb3a2bc5d591
Add more Inversion logic to the DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7099
diff
changeset
|
226 } |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
227 return (Double)getXBounds(0).getLower(); |
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 |
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 * 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
|
233 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
234 protected double getRightX() { |
7106
ed8623b989f3
Minor cleanup / doc
Andre Heinecke <aheinecke@intevation.de>
parents:
7104
diff
changeset
|
235 if (inverted) { |
7104
eb3a2bc5d591
Add more Inversion logic to the DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7099
diff
changeset
|
236 return (Double)getXBounds(0).getLower(); |
eb3a2bc5d591
Add more Inversion logic to the DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7099
diff
changeset
|
237 } |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
238 return (Double)getXBounds(0).getUpper(); |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
241 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
242 /** Add a logo as background annotation to plot. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
243 protected void addLogo(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
244 String logo = showLogo(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
245 if (logo == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
246 log.debug("No logo to show chosen"); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
247 return; |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
250 ImageIcon imageIcon = null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
251 if (logo.equals("none")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
252 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
253 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
254 /* |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
255 If 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
|
256 flys-artifacts: |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
257 DiagramGenerator.java |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
258 Timeseries*Generator.java and |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
259 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
|
260 Also, these images have to be put in |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
261 flys-artifacts/src/main/resources/images/ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
262 flys-client/src/main/webapp/images/ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
263 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
264 java.net.URL imageURL; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
265 if (logo.equals("Intevation")) { |
8856 | 266 imageURL = DiagramGenerator.class.getResource( |
267 "/images/intevation.png"); | |
7044
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 else { // TODO else if ... |
8856 | 270 imageURL = DiagramGenerator.class.getResource( |
271 "/images/bfg_logo.gif"); | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
272 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
273 imageIcon = new ImageIcon(imageURL); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
274 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
275 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
276 double xPos = 0d, yPos = 0d; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
277 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
278 String placeh = logoHPlace(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
279 String placev = logoVPlace(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
280 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
281 if (placev == null || placev.equals("none")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
282 placev = "top"; |
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 if (placev.equals("top")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
285 yPos = (Double)getYBounds(0).getUpper(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
286 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
287 else if (placev.equals("bottom")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
288 yPos = (Double)getYBounds(0).getLower(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
289 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
290 else if (placev.equals("center")) { |
8856 | 291 yPos = ((Double)getYBounds(0).getUpper() |
292 + (Double)getYBounds(0).getLower())/2d; | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
293 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
294 else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
295 log.debug("Unknown place-v value: " + placev); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
296 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
297 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
298 if (placeh == null || placeh.equals("none")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
299 placeh = "center"; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
300 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
301 if (placeh.equals("left")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
302 xPos = getLeftX(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
303 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
304 else if (placeh.equals("right")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
305 xPos = getRightX(); |
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 else if (placeh.equals("center")) { |
8856 | 308 xPos = ((Double)getXBounds(0).getUpper() |
309 + (Double)getXBounds(0).getLower())/2d; | |
7044
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 else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
312 log.debug("Unknown place-h value: " + placeh); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
313 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
314 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
315 log.debug("logo position: " + xPos + "/" + yPos); |
7044
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 org.jfree.ui.RectangleAnchor anchor |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
318 = org.jfree.ui.RectangleAnchor.TOP; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
319 if (placev.equals("top")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
320 if (placeh.equals("left")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
321 anchor = org.jfree.ui.RectangleAnchor.TOP_LEFT; |
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 else if (placeh.equals("right")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
324 anchor = org.jfree.ui.RectangleAnchor.TOP_RIGHT; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
325 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
326 else if (placeh.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
327 anchor = org.jfree.ui.RectangleAnchor.TOP; |
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 else if (placev.equals("bottom")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
331 if (placeh.equals("left")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
332 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_LEFT; |
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 else if (placeh.equals("right")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
335 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_RIGHT; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
336 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
337 else if (placeh.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
338 anchor = org.jfree.ui.RectangleAnchor.BOTTOM; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
339 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
340 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
341 else if (placev.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
342 if (placeh.equals("left")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
343 anchor = org.jfree.ui.RectangleAnchor.LEFT; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
344 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
345 else if (placeh.equals("right")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
346 anchor = org.jfree.ui.RectangleAnchor.RIGHT; |
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 else if (placeh.equals("center")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
349 anchor = org.jfree.ui.RectangleAnchor.CENTER; |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
353 XYAnnotation xyannotation = |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
354 new XYImageAnnotation(xPos, yPos, imageIcon.getImage(), anchor); |
8856 | 355 plot.getRenderer().addAnnotation( |
356 xyannotation, org.jfree.ui.Layer.BACKGROUND); | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
357 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
358 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
359 |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
360 protected NumberAxis createXAxis(final CallContext context, String label) { |
7241
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
361 boolean logarithmic = (Boolean)diagramAttributes.getDomainAxis(). |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
362 isLog().evaluate((D4EArtifact)getMaster(), context); |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
363 |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
364 if (logarithmic) { |
8892
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
365 final LogarithmicAxis axis = new LogarithmicAxis(label); |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
366 // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied. |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
367 axis.setLowerMargin(0); |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
368 axis.setUpperMargin(0); |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
369 return axis; |
7241
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
370 } |
8885
e5f688820951
Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents:
8856
diff
changeset
|
371 final NumberAxis axis = new NumberAxis(label); |
e5f688820951
Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents:
8856
diff
changeset
|
372 // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied. |
e5f688820951
Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents:
8856
diff
changeset
|
373 axis.setLowerMargin(0); |
e5f688820951
Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents:
8856
diff
changeset
|
374 axis.setUpperMargin(0); |
8892
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
375 // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied. |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
376 axis.setLowerMargin(0); |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
377 axis.setUpperMargin(0); |
8885
e5f688820951
Some minor changes on chart: allow area-themes to consider range; allow for axis-margins
gernotbelger
parents:
8856
diff
changeset
|
378 return axis; |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
379 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
380 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
381 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
382 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
383 protected Series getSeriesOf(XYDataset dataset, int idx) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
384 return ((XYSeriesCollection) dataset).getSeries(idx); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
385 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
386 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
387 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
388 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
389 protected AxisDataset createAxisDataset(int idx) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
390 log.debug("Create new AxisDataset for index: " + idx); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
391 return new AxisDataset(idx); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
392 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
393 |
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 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
396 * Put debug output about datasets. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
397 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
398 public void debugDatasets(XYPlot plot) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
399 log.debug("Number of datasets: " + plot.getDatasetCount()); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
400 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
|
401 if (plot.getDataset(i) == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
402 log.debug("Dataset #" + i + " is null"); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
403 continue; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
404 } |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
405 log.debug("Dataset #" + i + ":" + plot.getDataset(i)); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
406 XYSeriesCollection series = (XYSeriesCollection) plot.getDataset(i); |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
407 log.debug("X-Extend of Dataset: " + series.getSeries(0).getMinX() |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
408 + " " + series.getSeries(0).getMaxX()); |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
409 log.debug("Y-Extend of Dataset: " + series.getSeries(0).getMinY() |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
410 + " " + series.getSeries(0).getMaxY()); |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
414 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
415 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
416 * Put debug output about axes. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
417 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
418 public void debugAxis(XYPlot plot) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
419 log.debug("..............."); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
420 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
|
421 if (plot.getRangeAxis(i) == null) |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
422 log.debug("Range-Axis #" + i + " == null"); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
423 else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
424 log.debug("Range-Axis " + i + " != null [" + |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
425 plot.getRangeAxis(i).getRange().getLowerBound() + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
426 " " + plot.getRangeAxis(i).getRange().getUpperBound() + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
427 "]"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
428 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
429 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
430 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
|
431 if (plot.getDomainAxis(i) == null) |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
432 log.debug("Domain-Axis #" + i + " == null"); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
433 else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
434 log.debug("Domain-Axis " + i + " != null [" + |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
435 plot.getDomainAxis(i).getRange().getLowerBound() + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
436 " " + plot.getDomainAxis(i).getRange().getUpperBound() + |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
437 "]"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
438 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
439 } |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
440 log.debug("..............."); |
7044
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 |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
443 /** |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
444 * Registers an area to be drawn. |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
445 * @param area Area to be drawn. |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
446 * @param axisName Name of the axis. |
8856 | 447 * @param visible Whether or not to be visible |
448 * (important for range calculations). | |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
449 */ |
8856 | 450 public void addAreaSeries( |
451 StyledAreaSeriesCollection area, | |
452 String axisName, | |
453 boolean visible | |
454 ) { | |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
455 addAreaSeries(area, diagramAttributes.getAxisIndex(axisName), visible); |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
456 } |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
457 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
458 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
459 * Registers an area to be drawn. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
460 * @param area Area to be drawn. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
461 * @param index 'axis index' |
8856 | 462 * @param visible Whether or not to be visible |
463 * (important for range calculations). | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
464 */ |
8856 | 465 public void addAreaSeries( |
466 StyledAreaSeriesCollection area, | |
467 int index, | |
468 boolean visible | |
469 ) { | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
470 if (area == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
471 log.warn("Cannot yet render above/under curve."); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
472 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
473 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
474 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
475 AxisDataset axisDataset = (AxisDataset) getAxisDataset(index); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
476 |
8935 | 477 Bounds[] xyBounds = ChartHelper.getBounds(area); |
478 | |
479 if (xyBounds == null) { | |
480 log.warn("Skip XYDataset for Axis (invalid ranges): " + index); | |
481 return; | |
482 } | |
483 | |
484 | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
485 if (visible) { |
8935 | 486 if (log.isDebugEnabled()) { |
487 log.debug("Add new AxisDataset at index: " + index); | |
488 log.debug("X extent: " + xyBounds[0]); | |
489 log.debug("Y extent: " + xyBounds[1]); | |
490 } | |
491 | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
492 axisDataset.addArea(area); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
493 } |
8935 | 494 |
495 /* No range merging, for areas extending to infinity this causes problems. */ | |
496 /* No range merging, for areas extending to infinity this causes problems. */ | |
497 if( StyledSeriesBuilder.isBigDoubleValue( xyBounds[1].getLower() ) || StyledSeriesBuilder.isBigDoubleValue( xyBounds[1].getLower() ) ) | |
498 return; | |
499 | |
500 combineXBounds(xyBounds[0], 0); | |
501 combineYBounds(xyBounds[1], index); | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
502 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
503 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
504 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
505 * 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
|
506 * 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
|
507 * @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
|
508 * @param index index of the axis. |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
509 * @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
|
510 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
511 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
|
512 if (series == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
513 return; |
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 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
516 log.debug("Y Range of XYSeries: " + |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
517 series.getMinY() + " | " + series.getMaxY()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
518 |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
519 addAxisDataset(new XYMetaSeriesCollection(series), index, visible); |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
520 } |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
521 |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
522 /** |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
523 * 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
|
524 * 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
|
525 * @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
|
526 * @param axisName name of the axis. |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
527 * @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
|
528 */ |
8856 | 529 public void addAxisSeries( |
530 XYSeries series, | |
531 String axisName, | |
532 boolean visible | |
533 ) { | |
534 addAxisSeries( | |
535 series, diagramAttributes.getAxisIndex(axisName), visible); | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
536 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
537 |
8856 | 538 public void addAxisDataset( |
539 XYDataset dataset, | |
540 String axisName, | |
541 boolean visible | |
542 ) { | |
543 addAxisDataset( | |
544 dataset, diagramAttributes.getAxisIndex(axisName), visible); | |
7124
49ceab5f2263
Configure Longitudinal section diagram to use the new way.
Andre Heinecke <aheinecke@intevation.de>
parents:
7123
diff
changeset
|
545 } |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
546 |
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 * Add the given vertical marker to the chart. |
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 public void addDomainMarker(Marker marker) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
551 addDomainMarker(marker, true); |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
554 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
555 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
556 * 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
|
557 * 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
|
558 * @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
|
559 * @param visible The visibility of the marker. |
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 public void addDomainMarker(Marker marker, boolean visible) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
562 if (visible && marker != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
563 domainMarkers.add(marker); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
564 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
565 } |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
568 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
569 * Add the given vertical marker to the chart. |
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 public void addValueMarker(Marker marker) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
572 addValueMarker(marker, true); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
573 } |
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 * 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
|
578 * 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
|
579 * @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
|
580 * @param visible The visibility of the marker. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
581 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
582 public void addValueMarker(Marker marker, boolean visible) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
583 if (visible && marker != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
584 valueMarkers.add(marker); |
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 } |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
589 protected void addMarkers(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
590 for(Marker marker : domainMarkers) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
591 plot.addDomainMarker(marker); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
592 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
593 for(Marker marker : valueMarkers) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
594 plot.addRangeMarker(marker); |
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 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
597 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
598 |
8341
130160b8d245
Introduce annotations, which know to which axis they belong.
Tom Gottfried <tom@intevation.de>
parents:
8338
diff
changeset
|
599 public void addYAnnotation( |
130160b8d245
Introduce annotations, which know to which axis they belong.
Tom Gottfried <tom@intevation.de>
parents:
8338
diff
changeset
|
600 RiverAnnotation annotation, |
130160b8d245
Introduce annotations, which know to which axis they belong.
Tom Gottfried <tom@intevation.de>
parents:
8338
diff
changeset
|
601 String axisName |
130160b8d245
Introduce annotations, which know to which axis they belong.
Tom Gottfried <tom@intevation.de>
parents:
8338
diff
changeset
|
602 ) { |
130160b8d245
Introduce annotations, which know to which axis they belong.
Tom Gottfried <tom@intevation.de>
parents:
8338
diff
changeset
|
603 addYAnnotation(annotation, diagramAttributes.getAxisIndex(axisName)); |
130160b8d245
Introduce annotations, which know to which axis they belong.
Tom Gottfried <tom@intevation.de>
parents:
8338
diff
changeset
|
604 } |
130160b8d245
Introduce annotations, which know to which axis they belong.
Tom Gottfried <tom@intevation.de>
parents:
8338
diff
changeset
|
605 |
130160b8d245
Introduce annotations, which know to which axis they belong.
Tom Gottfried <tom@intevation.de>
parents:
8338
diff
changeset
|
606 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
607 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
608 * 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
|
609 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
610 * @param bounds the given ("minimal") bounds. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
611 * @param index index of axis to be merged. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
612 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
613 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
614 protected void combineXBounds(Bounds bounds, int index) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
615 if (!(bounds instanceof DoubleBounds)) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
616 log.warn("Unsupported Bounds type: " + bounds.getClass()); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
617 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
618 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
619 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
620 DoubleBounds dBounds = (DoubleBounds) bounds; |
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 if (dBounds == null |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
623 || Double.isNaN((Double) dBounds.getLower()) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
624 || Double.isNaN((Double) dBounds.getUpper())) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
625 return; |
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 Bounds old = getXBounds(index); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
629 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
630 if (old != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
631 dBounds = (DoubleBounds) dBounds.combine(old); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
632 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
633 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
634 setXBounds(index, dBounds); |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
637 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
638 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
639 protected void combineYBounds(Bounds bounds, int index) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
640 if (!(bounds instanceof DoubleBounds)) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
641 log.warn("Unsupported Bounds type: " + bounds.getClass()); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
642 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
643 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
644 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
645 DoubleBounds dBounds = (DoubleBounds) bounds; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
646 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
647 if (dBounds == null |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
648 || Double.isNaN((Double) dBounds.getLower()) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
649 || Double.isNaN((Double) dBounds.getUpper())) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
650 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
651 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
652 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
653 Bounds old = getYBounds(index); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
654 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
655 if (old != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
656 dBounds = (DoubleBounds) dBounds.combine(old); |
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 setYBounds(index, dBounds); |
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 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
664 * 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
|
665 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
666 private void recoverEmptyPlot(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
667 if (plot.getRangeAxis() == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
668 log.debug("debug: No range axis"); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
669 plot.setRangeAxis(createYAxis(0)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
670 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
671 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
672 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
673 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
674 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
675 * 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
|
676 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
677 private void preparePointRanges(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
678 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
|
679 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
680 Integer key = Integer.valueOf(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
681 Bounds b = getXBounds(key); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
682 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
683 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
684 if (b != null && b.getLower().equals(b.getUpper())) { |
8856 | 685 log.debug("Check whether to expand a x axis.i (" |
686 + b.getLower() + "-" + b.getUpper() + ")"); | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
687 setXBounds(key, ChartHelper.expandBounds(b, 5)); |
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 } |
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 * 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
|
695 * 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
|
696 * 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
|
697 * 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
|
698 * right of the data area. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
699 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
700 * @param plot The XYPlot. |
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 protected void autoZoom(XYPlot plot) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
703 log.debug("Zoom to specified ranges."); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
704 |
8935 | 705 /* allow chart extenders to tweak zoom behavior */ |
706 final Collection<ChartExtender> extenders = this.diagramAttributes.getExtenders(); | |
707 for (final ChartExtender extender : extenders) { | |
708 extender.beforeAutoZoom(this); | |
709 } | |
710 | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
711 Range xrange = getDomainAxisRange(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
712 Range yrange = getValueAxisRange(); |
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 ValueAxis xAxis = plot.getDomainAxis(); |
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 Range fixedXRange = getRangeForAxisFromSettings("X"); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
717 if (fixedXRange != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
718 xAxis.setRange(fixedXRange); |
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 else { |
8338
ac7cb15e1946
Scale second W-axis in cm according to first axis, which is expanded relative to the data, and set bounds for zooming purposes (plus a bit of cleanup in DiagramGenerator).
"Tom Gottfried <tom@intevation.de>"
parents:
8288
diff
changeset
|
721 zoom(plot, xAxis, getXBounds(0), xrange); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
722 } |
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 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
|
725 ValueAxis yaxis = plot.getRangeAxis(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
726 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
727 if (yaxis instanceof IdentifiableNumberAxis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
728 IdentifiableNumberAxis idAxis = (IdentifiableNumberAxis) yaxis; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
729 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
730 Range fixedRange = getRangeForAxisFromSettings(idAxis.getId()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
731 if (fixedRange != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
732 yaxis.setRange(fixedRange); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
733 continue; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
734 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
735 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
736 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
737 if (yaxis == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
738 log.debug("Zoom problem: no Y Axis for index: " + i); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
739 continue; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
740 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
741 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
742 log.debug("Prepare zoom settings for y axis at index: " + i); |
8338
ac7cb15e1946
Scale second W-axis in cm according to first axis, which is expanded relative to the data, and set bounds for zooming purposes (plus a bit of cleanup in DiagramGenerator).
"Tom Gottfried <tom@intevation.de>"
parents:
8288
diff
changeset
|
743 zoom(plot, yaxis, getYBounds(Integer.valueOf(i)), yrange); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
744 } |
8892
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
745 |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
746 for (final ChartExtender extender : extenders) { |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
747 extender.afterAutoZoom(this); |
87a242425467
Introduced ChartExtender that allows to tweak the charts for very specific use cases.
gernotbelger
parents:
8889
diff
changeset
|
748 } |
7044
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 protected Range getDomainAxisRange() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
752 String[] ranges = getDomainAxisRangeFromRequest(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
753 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
754 if (ranges == null || ranges.length < 2) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
755 log.debug("No zoom range for domain axis specified."); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
756 return null; |
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 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
|
760 try { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
761 double from = Double.parseDouble(ranges[0]); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
762 double to = Double.parseDouble(ranges[1]); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
763 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
764 if (from == 0 && to == 0) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
765 log.debug("No range specified. Lower and upper X == 0"); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
766 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
767 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
768 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
769 if (from > to) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
770 double tmp = to; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
771 to = from; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
772 from = tmp; |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
775 return new Range(from, to); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
776 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
777 catch (NumberFormatException nfe) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
778 log.warn("Wrong values for domain axis range."); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
779 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
780 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
781 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
782 return null; |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
786 protected Range getValueAxisRange() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
787 String[] ranges = getValueAxisRangeFromRequest(); |
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 if (ranges == null || ranges.length < 2) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
790 log.debug("No range specified. Lower and upper Y == 0"); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
791 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
792 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
793 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
794 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
|
795 try { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
796 double from = Double.parseDouble(ranges[0]); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
797 double to = Double.parseDouble(ranges[1]); |
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 if (from == 0 && to == 0) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
800 log.debug("No range specified. Lower and upper Y == 0"); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
801 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
802 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
803 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
804 return from > to |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
805 ? new Range(to, from) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
806 : new Range(from, to); |
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 catch (NumberFormatException nfe) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
809 log.warn("Wrong values for value axis range."); |
7044
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 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
812 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
813 return null; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
814 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
815 |
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 /** |
8338
ac7cb15e1946
Scale second W-axis in cm according to first axis, which is expanded relative to the data, and set bounds for zooming purposes (plus a bit of cleanup in DiagramGenerator).
"Tom Gottfried <tom@intevation.de>"
parents:
8288
diff
changeset
|
818 * Zooms the axis to the range specified in the attribute document. |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
819 * |
8338
ac7cb15e1946
Scale second W-axis in cm according to first axis, which is expanded relative to the data, and set bounds for zooming purposes (plus a bit of cleanup in DiagramGenerator).
"Tom Gottfried <tom@intevation.de>"
parents:
8288
diff
changeset
|
820 * @param plot The XYPlot. |
ac7cb15e1946
Scale second W-axis in cm according to first axis, which is expanded relative to the data, and set bounds for zooming purposes (plus a bit of cleanup in DiagramGenerator).
"Tom Gottfried <tom@intevation.de>"
parents:
8288
diff
changeset
|
821 * @param axis The axis that should be modified. |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
822 * @param bounds The whole range specified by a dataset. |
8338
ac7cb15e1946
Scale second W-axis in cm according to first axis, which is expanded relative to the data, and set bounds for zooming purposes (plus a bit of cleanup in DiagramGenerator).
"Tom Gottfried <tom@intevation.de>"
parents:
8288
diff
changeset
|
823 * @param x A user defined range (null permitted). |
7044
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 * @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
|
826 */ |
8856 | 827 protected boolean zoom( |
828 XYPlot plot, | |
829 ValueAxis axis, | |
830 Bounds bounds, | |
831 Range x | |
832 ) { | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
833 if (bounds == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
834 return false; |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
837 if (x != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
838 Bounds computed = calculateZoom(bounds, x); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
839 computed.applyBounds(axis, AXIS_SPACE); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
840 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
841 log.debug("Zoom axis to: " + computed); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
842 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
843 return true; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
844 } |
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 bounds.applyBounds(axis, AXIS_SPACE); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
847 return false; |
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 * 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
|
852 * @param bounds The given total bounds (unzoomed). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
853 * @param range The range specifying the zoom. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
854 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
855 * @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
|
856 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
857 protected Bounds calculateZoom(Bounds bounds, Range range) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
858 double min = bounds.getLower().doubleValue(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
859 double max = bounds.getUpper().doubleValue(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
860 |
8778 | 861 log.debug("Minimum is: " + min); |
862 log.debug("Maximum is: " + max); | |
863 log.debug("Lower zoom is: " + range.getLowerBound()); | |
864 log.debug("Upper zoom is: " + range.getUpperBound()); | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
865 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
866 double diff = max > min ? max - min : min - max; |
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 DoubleBounds computed = new DoubleBounds( |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
869 min + range.getLowerBound() * diff, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
870 min + range.getUpperBound() * diff); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
871 return computed; |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
874 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
875 * 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
|
876 * 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
|
877 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
878 * @param index The index of the y-Axis. |
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 * @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
|
881 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
882 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
883 public Range[] getRangesForAxis(int index) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
884 log.debug("getRangesForAxis " + index); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
885 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
886 Bounds rx = getXBounds(Integer.valueOf(0)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
887 Bounds ry = getYBounds(Integer.valueOf(index)); |
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 if (rx == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
890 log.warn("Range for x axis not set." + |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
891 " Using default values: 0 - 1."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
892 rx = new DoubleBounds(0, 1); |
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 if (ry == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
895 log.warn("Range for y" + index + |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
896 " axis not set. Using default values: 0 - 1."); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
897 ry = new DoubleBounds(0, 1); |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
900 return new Range[] { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
901 new Range(rx.getLower().doubleValue(), rx.getUpper().doubleValue()), |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
902 new Range(ry.getLower().doubleValue(), ry.getUpper().doubleValue()) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
903 }; |
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 /** Get X (usually horizontal) extent for given axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
908 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
909 public Bounds getXBounds(int axis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
910 return xBounds.get(axis); |
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 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
913 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
914 /** Set X (usually horizontal) extent for given axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
915 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
916 protected void setXBounds(int axis, Bounds bounds) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
917 if (bounds.getLower() == bounds.getUpper()) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
918 xBounds.put(axis, ChartHelper.expandBounds(bounds, 5d)); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
919 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
920 else { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
921 xBounds.put(axis, bounds); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
922 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
923 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
924 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
925 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
926 /** Get Y (usually vertical) extent for given axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
927 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
928 public Bounds getYBounds(int axis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
929 return yBounds.get(axis); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
930 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
931 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
932 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
933 /** Set Y (usually vertical) extent for given axis. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
934 @Override |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
935 protected void setYBounds(int axis, Bounds bounds) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
936 yBounds.put(axis, bounds); |
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 |
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 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
941 * Adjusts the axes of a plot. This method sets the <i>labelFont</i> of the |
7106
ed8623b989f3
Minor cleanup / doc
Andre Heinecke <aheinecke@intevation.de>
parents:
7104
diff
changeset
|
942 * X axis and applies the inversion if inverted is true. |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
943 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
944 * (Duplicate in TimeseriesChartGenerator) |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
945 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
946 * @param plot The XYPlot of the chart. |
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 protected void adjustAxes(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
949 ValueAxis xaxis = plot.getDomainAxis(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
950 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
951 ChartSettings chartSettings = getChartSettings(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
952 if (chartSettings == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
953 return; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
954 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
955 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
956 Font labelFont = new Font( |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
957 DEFAULT_FONT_NAME, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
958 Font.BOLD, |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
959 getXAxisLabelFontSize()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
960 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
961 xaxis.setLabelFont(labelFont); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
962 xaxis.setTickLabelFont(labelFont); |
7104
eb3a2bc5d591
Add more Inversion logic to the DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7099
diff
changeset
|
963 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
964 log.debug("Adjusting xAxis. Inverted?: " + inverted); |
7112
7b88b87958ac
Fix applying the inversion of diagrams.
Andre Heinecke <aheinecke@intevation.de>
parents:
7107
diff
changeset
|
965 if (inverted) { |
7104
eb3a2bc5d591
Add more Inversion logic to the DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7099
diff
changeset
|
966 xaxis.setInverted(true); |
eb3a2bc5d591
Add more Inversion logic to the DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
7099
diff
changeset
|
967 } |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
968 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
969 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
970 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
971 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
972 * 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
|
973 * calls localizeDomainAxis() for domain axes or localizeRangeAxis() for |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
974 * range axes. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
975 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
976 * @param plot The XYPlot. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
977 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
978 private void localizeAxes(XYPlot plot) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
979 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
|
980 ValueAxis axis = plot.getDomainAxis(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
981 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
982 if (axis != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
983 localizeDomainAxis(axis); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
984 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
985 else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
986 log.warn("Domain axis at " + i + " is null."); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
987 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
988 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
989 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
990 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
|
991 ValueAxis axis = plot.getRangeAxis(i); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
992 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
993 if (axis != null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
994 localizeRangeAxis(axis); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
995 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
996 else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
997 log.warn("Range axis at " + i + " is null."); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
998 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
999 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1000 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1001 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1002 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1003 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1004 * 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
|
1005 * that is provided by getLocale(). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1006 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1007 * @param domainAxis The domain axis that needs localization. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1008 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1009 protected void localizeDomainAxis(ValueAxis domainAxis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1010 NumberFormat nf = NumberFormat.getInstance(getLocale()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1011 ((NumberAxis) domainAxis).setNumberFormatOverride(nf); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1012 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1013 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1014 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1015 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1016 * 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
|
1017 * that is provided by getLocale(). |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1018 * |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1019 * @param rangeAxis The domain axis that needs localization. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1020 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1021 protected void localizeRangeAxis(ValueAxis rangeAxis) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1022 NumberFormat nf = NumberFormat.getInstance(getLocale()); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1023 ((NumberAxis) rangeAxis).setNumberFormatOverride(nf); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1024 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1025 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1026 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1027 /** |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1028 * Create a hash from a legenditem. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1029 * 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
|
1030 * @return hash for given legenditem to identify mergeables. |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1031 */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1032 public static String legendItemHash(LegendItem li) { |
8856 | 1033 // TODO Do proper implementation. |
1034 // Ensure that only mergable sets are created. | |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1035 // getFillPaint() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1036 // getFillPaintTransformer() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1037 // getLabel() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1038 // getLine() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1039 // getLinePaint() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1040 // getLineStroke() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1041 // getOutlinePaint() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1042 // getOutlineStroke() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1043 // Shape getShape() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1044 // String getToolTipText() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1045 // String getURLText() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1046 // boolean isLineVisible() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1047 // boolean isShapeFilled() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1048 // boolean isShapeOutlineVisible() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1049 // boolean isShapeVisible() |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1050 String hash = li.getLinePaint().toString(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1051 String label = li.getLabel(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1052 if (label.startsWith("W (") || label.startsWith("W(")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1053 hash += "-W-"; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1054 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1055 else if (label.startsWith("Q(") || label.startsWith("Q (")) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1056 hash += "-Q-"; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1057 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1058 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1059 // 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
|
1060 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1061 return hash; |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1062 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1063 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1064 /** True if x axis has been inverted. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1065 public boolean isInverted() { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1066 return inverted; |
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 |
7106
ed8623b989f3
Minor cleanup / doc
Andre Heinecke <aheinecke@intevation.de>
parents:
7104
diff
changeset
|
1070 /** Set to true if x axis should be inverted. |
ed8623b989f3
Minor cleanup / doc
Andre Heinecke <aheinecke@intevation.de>
parents:
7104
diff
changeset
|
1071 * This can not be set to false afterwards. */ |
7112
7b88b87958ac
Fix applying the inversion of diagrams.
Andre Heinecke <aheinecke@intevation.de>
parents:
7107
diff
changeset
|
1072 public void setInverted(boolean value) { |
7b88b87958ac
Fix applying the inversion of diagrams.
Andre Heinecke <aheinecke@intevation.de>
parents:
7107
diff
changeset
|
1073 /* One request to invert dominates. */ |
7b88b87958ac
Fix applying the inversion of diagrams.
Andre Heinecke <aheinecke@intevation.de>
parents:
7107
diff
changeset
|
1074 if (!inverted) { |
7b88b87958ac
Fix applying the inversion of diagrams.
Andre Heinecke <aheinecke@intevation.de>
parents:
7107
diff
changeset
|
1075 inverted = value; |
7b88b87958ac
Fix applying the inversion of diagrams.
Andre Heinecke <aheinecke@intevation.de>
parents:
7107
diff
changeset
|
1076 } |
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 |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1079 @Override |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1080 protected final String getDefaultChartTitle(CallContext context) { |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1081 DiagramAttributes.Title dTitle = diagramAttributes.getTitle(); |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1082 if (dTitle == null) { |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1083 return "Title not configured in conf.xml"; |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1084 } |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1085 |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1086 return dTitle.evaluate((D4EArtifact)getMaster(), context); |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1087 } |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1088 |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1089 |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1090 @Override |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1091 protected String getDefaultChartSubtitle(CallContext context) { |
7806
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1092 String parts = ""; |
7877
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1093 DiagramAttributes.Title dTitle = diagramAttributes.getSubtitle(); |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1094 if (dTitle == null && |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1095 (subTitleParts == null || subTitleParts.isEmpty())) { |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1096 /* Subtitle is optional */ |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1097 return null; |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1098 } |
7806
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1099 if (subTitleParts != null && !subTitleParts.isEmpty()) { |
7877
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1100 boolean first = true; |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1101 if (dTitle != null) { |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1102 first = false; |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1103 } |
7806
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1104 for (String p : subTitleParts) { |
7877
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1105 if (!first) { |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1106 parts += ", "; |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1107 } |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1108 parts += p; |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1109 first = false; |
7806
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1110 } |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1111 } |
7877
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1112 if (dTitle == null && parts.length() > 0) { |
43f18dc56c5a
Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents:
7806
diff
changeset
|
1113 return parts; |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1114 } |
7806
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1115 return dTitle.evaluate((D4EArtifact)getMaster(), context) + parts; |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1116 } |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1117 |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1118 /** |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1119 * Get internationalized label for the x axis. |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1120 */ |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1121 @Override |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1122 protected String getDefaultXAxisLabel(CallContext context) { |
7143
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
1123 DiagramAttributes.DomainAxisAttributes dx = |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
1124 diagramAttributes.getDomainAxis(); |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
1125 |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
1126 if (dx != null) { |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
1127 DiagramAttributes.Title t = dx.getTitle(); |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
1128 if (t != null) { |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
1129 return t.evaluate((D4EArtifact)getMaster(), context); |
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
1130 } |
7084
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1131 } |
7143
053e39436ba3
Diagrams: Determine if axis should be inverted dynamically.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7124
diff
changeset
|
1132 return "Domain Axis Title not configured in conf.xml"; |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1133 } |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1134 |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1135 protected final String getDefaultYAxisLabel(String axisName) { |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1136 Set labelSet = axesLabels.get(diagramAttributes.getAxisIndex(axisName)); |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
1137 log.debug("Labels for axis: " + labelSet); |
7603
25bce6e8beea
(issue1225) Use label code also when only one item is present
Andre Heinecke <aheinecke@intevation.de>
parents:
7597
diff
changeset
|
1138 if (labelSet != null && !labelSet.isEmpty()) { |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1139 String label = StringUtils.join(labelSet, ", "); |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1140 Matcher units = UNIT_PATTERN.matcher(label); |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1141 if (units.find()) { |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1142 String firstUnit = units.group(); |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1143 label = units.replaceAll(""); |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1144 label += firstUnit; |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1145 } |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1146 return label; |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1147 } |
8856 | 1148 for ( |
1149 Processor pr: diagramAttributes.getProcessorsForAxisName(axisName) | |
1150 ) { | |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1151 String label = pr.getAxisLabel(this); |
7122
038a04e001d7
Handle multiple processors for axis labeling.
Andre Heinecke <aheinecke@intevation.de>
parents:
7112
diff
changeset
|
1152 if (label != null) { |
038a04e001d7
Handle multiple processors for axis labeling.
Andre Heinecke <aheinecke@intevation.de>
parents:
7112
diff
changeset
|
1153 return label; |
038a04e001d7
Handle multiple processors for axis labeling.
Andre Heinecke <aheinecke@intevation.de>
parents:
7112
diff
changeset
|
1154 } |
038a04e001d7
Handle multiple processors for axis labeling.
Andre Heinecke <aheinecke@intevation.de>
parents:
7112
diff
changeset
|
1155 } |
038a04e001d7
Handle multiple processors for axis labeling.
Andre Heinecke <aheinecke@intevation.de>
parents:
7112
diff
changeset
|
1156 return "No configured axis label"; |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1157 } |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1158 |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1159 |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1160 /** |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1161 * 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
|
1162 * |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1163 * @return a list of Y axis sections. |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1164 */ |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1165 @Override |
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1166 protected final List<AxisSection> buildYAxisSections() { |
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1167 List<AxisSection> axisSections = new ArrayList<>(); |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1168 |
8856 | 1169 List<DiagramAttributes.AxisAttributes> axesAttrs = |
1170 diagramAttributes.getAxesAttributes(); | |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1171 |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1172 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
|
1173 AxisSection ySection = new AxisSection(); |
7084
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1174 String axisName = diagramAttributes.getAxisName(i); |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1175 ySection.setIdentifier(axisName); |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1176 ySection.setLabel(getYAxisLabel(axisName)); |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1177 ySection.setSuggestedLabel(getDefaultYAxisLabel(axisName)); |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1178 ySection.setFontSize(14); |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1179 ySection.setFixed(false); |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1180 |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1181 // 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
|
1182 // 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
|
1183 // 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
|
1184 // for each axis set! |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1185 ySection.setUpperRange(0d); |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1186 ySection.setLowerRange(0d); |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1187 |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1188 axisSections.add(ySection); |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1189 } |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1190 |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1191 return axisSections; |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1192 } |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1193 |
7241
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1194 protected String getYAxisLabel(int index) { |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1195 return getYAxisLabel(diagramAttributes.getAxisName(index)); |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1196 } |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1197 |
7084
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1198 /** |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1199 * 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
|
1200 * |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1201 * @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
|
1202 */ |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1203 protected String getYAxisLabel(String axisName) { |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1204 ChartSettings chartSettings = getChartSettings(); |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1205 if (chartSettings == null) { |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1206 return getDefaultYAxisLabel(axisName); |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1207 } |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1208 AxisSection as = chartSettings.getAxisSection(axisName); |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1209 if (as != null) { |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1210 String label = as.getLabel(); |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1211 if (label != null && !label.equals(as.getSuggestedLabel())) { |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1212 // Only if the suggested label is not the current label |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1213 // the user has modified the label. Otherwise lets |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1214 // recalculate the label |
7084
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1215 return label; |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1216 } |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1217 } |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1218 |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1219 return getDefaultYAxisLabel(axisName); |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1220 } |
f0731aa7b735
Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents:
7081
diff
changeset
|
1221 |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1222 protected String axisIndexToName(int index) { |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1223 return diagramAttributes.getAxisName(index); |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1224 } |
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1225 |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1226 /** 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
|
1227 * For every outable facets, this function is |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1228 * called and handles the data accordingly. */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1229 @Override |
7052
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
1230 public void doOut( |
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
1231 ArtifactAndFacet bundle, |
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
1232 ThemeDocument theme, |
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
1233 boolean visible |
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
1234 ) { |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1235 String facetName = bundle.getFacetName(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1236 Facet facet = bundle.getFacet(); |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1237 |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1238 /* A conservative security check */ |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1239 if (facetName == null || facet == null) { |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1240 /* Can't happen,.. */ |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
1241 log.error("doOut called with null facet."); |
7052
7056fa3b1f75
Call processors from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7051
diff
changeset
|
1242 return; |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1243 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1244 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
1245 log.debug("DoOut for facet: " + facetName); |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1246 |
7096
5c059c05b100
Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
1247 boolean found = false; |
5c059c05b100
Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
1248 List<Processor> prL = diagramAttributes.getProcessors(); |
5c059c05b100
Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
1249 for (Processor pr: prL) { |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1250 if (pr.canHandle(facetName)) { |
7096
5c059c05b100
Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
1251 found = true; |
7068
726d998dce29
Remove Axis Walker, unabstract Diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
1252 pr.doOut(this, bundle, theme, visible); |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1253 |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1254 if (visible) { |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1255 // Save the label that should be added for this processor |
8856 | 1256 int axisIdx = diagramAttributes.getAxisIndex( |
1257 pr.getAxisName()); | |
7597
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1258 LinkedHashSet<String> curLabels = axesLabels.get(axisIdx); |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1259 if (curLabels == null) { |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1260 curLabels = new LinkedHashSet<String>(5); |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1261 } |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1262 curLabels.add(pr.getAxisLabel(this)); |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1263 axesLabels.put(axisIdx, curLabels); |
fca46ce8e4f5
(issue1225) Implement Magic labels.
Andre Heinecke <aheinecke@intevation.de>
parents:
7248
diff
changeset
|
1264 } |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1265 } |
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1266 } |
7096
5c059c05b100
Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
1267 if (!found) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
1268 log.warn("No processor found for: " + facetName); |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
1269 if (log.isDebugEnabled()) { |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
1270 log.debug("Configured processors for this diagram are:"); |
7096
5c059c05b100
Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
1271 for (Processor pr: prL) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8147
diff
changeset
|
1272 log.debug(pr.getClass().getName()); |
7096
5c059c05b100
Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
1273 } |
5c059c05b100
Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
1274 } |
5c059c05b100
Add useful debug output for diagram generator debugging
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
1275 } |
7044
6ab1464021ae
Add DiagramGenerator which should mainly replace xygenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1276 } |
7107
564033adf9c6
Handle axis include zero setting for the new processing architecture
Andre Heinecke <aheinecke@intevation.de>
parents:
7106
diff
changeset
|
1277 |
564033adf9c6
Handle axis include zero setting for the new processing architecture
Andre Heinecke <aheinecke@intevation.de>
parents:
7106
diff
changeset
|
1278 @Override |
564033adf9c6
Handle axis include zero setting for the new processing architecture
Andre Heinecke <aheinecke@intevation.de>
parents:
7106
diff
changeset
|
1279 protected NumberAxis createYAxis(int index) { |
8889
f87f435df856
Allow to configure lower and upper margin of a chart axis
gernotbelger
parents:
8885
diff
changeset
|
1280 |
f87f435df856
Allow to configure lower and upper margin of a chart axis
gernotbelger
parents:
8885
diff
changeset
|
1281 final AxisAttributes axisAttributes = diagramAttributes.getAxesAttributes().get(index); |
f87f435df856
Allow to configure lower and upper margin of a chart axis
gernotbelger
parents:
8885
diff
changeset
|
1282 |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1283 boolean logarithmic = (Boolean)axisAttributes.isLog().evaluate((D4EArtifact)getMaster(), getContext()); |
8889
f87f435df856
Allow to configure lower and upper margin of a chart axis
gernotbelger
parents:
8885
diff
changeset
|
1284 |
7241
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1285 NumberAxis axis; |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1286 if (logarithmic) { |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1287 axis = new LogarithmicAxis(getYAxisLabel(index)); |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1288 } else { |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1289 axis = super.createYAxis(index); |
32db4f89b65f
Add new option to diagram axes "logarithmic" that can be set to an evaluator
Andre Heinecke <aheinecke@intevation.de>
parents:
7167
diff
changeset
|
1290 } |
7107
564033adf9c6
Handle axis include zero setting for the new processing architecture
Andre Heinecke <aheinecke@intevation.de>
parents:
7106
diff
changeset
|
1291 |
8889
f87f435df856
Allow to configure lower and upper margin of a chart axis
gernotbelger
parents:
8885
diff
changeset
|
1292 if (axisAttributes.includeZero()) { |
7107
564033adf9c6
Handle axis include zero setting for the new processing architecture
Andre Heinecke <aheinecke@intevation.de>
parents:
7106
diff
changeset
|
1293 axis.setAutoRangeIncludesZero(true); |
564033adf9c6
Handle axis include zero setting for the new processing architecture
Andre Heinecke <aheinecke@intevation.de>
parents:
7106
diff
changeset
|
1294 } |
8889
f87f435df856
Allow to configure lower and upper margin of a chart axis
gernotbelger
parents:
8885
diff
changeset
|
1295 |
f87f435df856
Allow to configure lower and upper margin of a chart axis
gernotbelger
parents:
8885
diff
changeset
|
1296 axis.setLowerMargin(axisAttributes.getLowerMargin()); |
f87f435df856
Allow to configure lower and upper margin of a chart axis
gernotbelger
parents:
8885
diff
changeset
|
1297 axis.setUpperMargin(axisAttributes.getUpperMargin()); |
9283
55e2155ab52d
Introduced new option 'tick-units' for axes. Configured the count Axis to only allow for integer ticks.
gernotbelger
parents:
9123
diff
changeset
|
1298 |
55e2155ab52d
Introduced new option 'tick-units' for axes. Configured the count Axis to only allow for integer ticks.
gernotbelger
parents:
9123
diff
changeset
|
1299 TickUnits tickUnits = axisAttributes.getTickUnits(); |
55e2155ab52d
Introduced new option 'tick-units' for axes. Configured the count Axis to only allow for integer ticks.
gernotbelger
parents:
9123
diff
changeset
|
1300 if( tickUnits != TickUnits.standard ) |
55e2155ab52d
Introduced new option 'tick-units' for axes. Configured the count Axis to only allow for integer ticks.
gernotbelger
parents:
9123
diff
changeset
|
1301 axis.setStandardTickUnits(tickUnits.createTickUnits()); |
55e2155ab52d
Introduced new option 'tick-units' for axes. Configured the count Axis to only allow for integer ticks.
gernotbelger
parents:
9123
diff
changeset
|
1302 |
7107
564033adf9c6
Handle axis include zero setting for the new processing architecture
Andre Heinecke <aheinecke@intevation.de>
parents:
7106
diff
changeset
|
1303 return axis; |
564033adf9c6
Handle axis include zero setting for the new processing architecture
Andre Heinecke <aheinecke@intevation.de>
parents:
7106
diff
changeset
|
1304 } |
7806
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1305 |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1306 /** |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1307 * @return the subtitle parts |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1308 */ |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1309 public HashSet<String> getSubTitleParts() { |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1310 return subTitleParts; |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1311 } |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1312 |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1313 /** |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1314 * @param part the subtitle part to set |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1315 */ |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1316 public void addSubtitle(String part) { |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1317 this.subTitleParts.add(part); |
7ac103a49e35
Added subtitle parts to modify the chart subtitle via the outprocessor.
Raimund Renkert <rrenkert@intevation.de>
parents:
7603
diff
changeset
|
1318 } |
9123
1cc7653ca84f
Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents:
9104
diff
changeset
|
1319 } |