annotate artifacts/src/main/java/org/dive4elements/river/exports/TimeseriesChartGenerator.java @ 9325:094ed9d1f2ad

Fixed: change of point style of interpolated data did not change in WQ chart of fixanalysis Fixed: change of point style of interpolated data did not change in dWt chart of fixanalysis; also had duplicate legend entries
author gernotbelger
date Fri, 27 Jul 2018 14:33:41 +0200
parents 7c7f73e5e01e
children ef5754ba5573
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5864
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5864
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
9 package org.dive4elements.river.exports;
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
11 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
9123
1cc7653ca84f Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents: 9104
diff changeset
12 import org.dive4elements.artifacts.CallContext;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
13 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
14 import org.dive4elements.river.jfree.Bounds;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
15 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
16 import org.dive4elements.river.jfree.DoubleBounds;
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
17 import org.dive4elements.river.jfree.RiverAnnotation;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
18 import org.dive4elements.river.jfree.StyledTimeSeries;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
19 import org.dive4elements.river.jfree.TimeBounds;
7034
557cb3a3d772 Combine AxisDataset implementations and remove / simplify handling code.
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
20 import org.dive4elements.river.jfree.AxisDataset;
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6795
diff changeset
21 import org.dive4elements.river.themes.ThemeDocument;
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3242
diff changeset
22
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
23 import java.awt.Color;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
24 import java.awt.Font;
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
25 import java.text.DateFormat;
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
26 import java.text.ParseException;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
27 import java.util.ArrayList;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
28 import java.util.Date;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
29 import java.util.HashMap;
4044
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
30 import java.util.Iterator;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
31 import java.util.List;
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
32 import java.util.Map;
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
34 import javax.swing.ImageIcon;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
35
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 import org.apache.log4j.Logger;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
37 import org.jfree.chart.ChartFactory;
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 import org.jfree.chart.JFreeChart;
4044
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
39 import org.jfree.chart.LegendItem;
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
40 import org.jfree.chart.LegendItemCollection;
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
41 import org.jfree.chart.annotations.XYAnnotation;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
42 import org.jfree.chart.annotations.XYImageAnnotation;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
43 import org.jfree.chart.annotations.XYTextAnnotation;
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
44 import org.jfree.chart.axis.ValueAxis;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
45 import org.jfree.chart.plot.Marker;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
46 import org.jfree.chart.plot.XYPlot;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
47 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
48 import org.jfree.data.Range;
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
49 import org.jfree.data.general.Series;
7904
8b8407c71ee2 Potential fix for exception reported in flys/issue1717.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7595
diff changeset
50 import org.jfree.data.time.FixedMillisecond;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
51 import org.jfree.data.time.TimeSeries;
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
52 import org.jfree.data.time.TimeSeriesCollection;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
53 import org.jfree.data.xy.XYDataset;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
54 import org.jfree.ui.Layer;
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
55 import org.json.JSONArray;
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
56 import org.json.JSONException;
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 /**
6795
0747ca95ad6e Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
59 * Generator for diagrams with time on x axis.
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 */
6795
0747ca95ad6e Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
62 public abstract class TimeseriesChartGenerator
0747ca95ad6e Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
63 extends ChartGenerator {
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
64
3130
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
65 protected List<Marker> domainMarker;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
66
3130
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
67 protected List<Marker> valueMarker;
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
68
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
69 protected boolean domainZeroLineVisible;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
70
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
71 private static final Logger log =
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 Logger.getLogger(TimeseriesChartGenerator.class);
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
74 public static final int AXIS_SPACE = 5;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
75
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
76 protected Map<Integer, Bounds> xBounds;
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
77
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
78 protected Map<Integer, Bounds> yBounds;
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
79
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
80
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
81 /**
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
82 * The default constructor that initializes internal datastructures.
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
83 */
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
84 public TimeseriesChartGenerator() {
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
85 super();
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
86
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
87 xBounds = new HashMap<Integer, Bounds>();
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
88 yBounds = new HashMap<Integer, Bounds>();
3130
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
89 domainMarker = new ArrayList<Marker>();
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
90 valueMarker = new ArrayList<Marker>();
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
91 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
92
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 @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
94 protected JFreeChart generateChart(CallContext context) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
95 log.info("Generate Timeseries Chart.");
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
97 JFreeChart chart = ChartFactory.createTimeSeriesChart(
9311
7c7f73e5e01e Moved chart metadata line to top of chart. Minor cleanup.
gernotbelger
parents: 9123
diff changeset
98 null,
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
99 getXAxisLabel(),
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
100 getYAxisLabel(0),
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
101 null,
2422
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2330
diff changeset
102 isLegendVisible(),
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
103 false,
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
104 false);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
105
9311
7c7f73e5e01e Moved chart metadata line to top of chart. Minor cleanup.
gernotbelger
parents: 9123
diff changeset
106 generateTitles(chart);
7c7f73e5e01e Moved chart metadata line to top of chart. Minor cleanup.
gernotbelger
parents: 9123
diff changeset
107
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
108 XYPlot plot = (XYPlot) chart.getPlot();
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
109
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
110 chart.setBackgroundPaint(Color.WHITE);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
111 plot.setBackgroundPaint(Color.WHITE);
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
112
2422
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2330
diff changeset
113 adjustPlot(plot);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
114 addDatasets(plot);
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
115 adjustAxes(plot);
3130
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
116 addDomainAxisMarker(plot);
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
117 addValueAxisMarker(plot);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
118 adaptZoom(plot);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
119
7595
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
120 consumeAxisSettings(plot);
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
121
9123
1cc7653ca84f Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents: 9104
diff changeset
122 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
123
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
124 addLogo(plot);
3185
f1e4b37dcb60 Enable legend item aggreation in time series charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3168
diff changeset
125 aggregateLegendEntries(plot);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
126 return chart;
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
127 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
128
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
129
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
130 /**
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
131 * Return left most data points x value (on first axis).
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
132 * Shortcut, especially to be overridden in (LS) charts where
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
133 * axis could be inverted.
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
134 */
8455
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
135 protected long getLeftX() {
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
136 return (Long)getXBounds(0).getLower();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
137 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
138
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
139
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
140 /**
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
141 * Return right most data points x value (on first axis).
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
142 * Shortcut, especially to be overridden in (LS) charts where
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
143 * axis could be inverted.
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
144 */
8455
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
145 protected long getRightX() {
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
146 return (Long)getXBounds(0).getUpper();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
147 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
148
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
149
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
150 /**
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
151 * Add a logo as background annotation to plot.
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
152 * Copy from XYChartGenerator.
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
153 */
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
154 protected void addLogo(XYPlot plot) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
155 String logo = showLogo();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
156 if (logo == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
157 log.debug("No logo to show chosen");
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
158 return;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
159 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
160
3633
ebfce31c7eec Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3632
diff changeset
161 ImageIcon imageIcon = null;
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
162 if (logo.equals("none")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
163 return;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
164 }
3623
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
165 /*
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
166 If you want to add images, remember to change code in these places:
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
167 flys-artifacts:
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
168 XYChartGenerator.java
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
169 Timeseries*Generator.java and
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
170 in the flys-client projects Chart*Propert*Editor.java.
3638
6bfcbe391393 Better comment for logo-adders.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3637
diff changeset
171 Also, these images have to be put in
6bfcbe391393 Better comment for logo-adders.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3637
diff changeset
172 flys-artifacts/src/main/resources/images/
6bfcbe391393 Better comment for logo-adders.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3637
diff changeset
173 flys-client/src/main/webapp/images/
3623
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
174 */
3637
d5a0602375fb Fixed logo integration in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
175 java.net.URL imageURL;
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
176 if (logo.equals("Intevation")) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
177 imageURL = XYChartGenerator.class.getResource(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
178 "/images/intevation.png");
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
179 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
180 else { // TODO else if ...
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
181 imageURL = XYChartGenerator.class.getResource(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
182 "/images/bfg_logo.gif");
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
183 }
3637
d5a0602375fb Fixed logo integration in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
184 imageIcon = new ImageIcon(imageURL);
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
185 double xPos = 0d, yPos = 0d;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
186
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
187 String placeh = logoHPlace();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
188 String placev = logoVPlace();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
189
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
190 if (placev == null || placev.equals("none")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
191 placev = "top";
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
192 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
193 if (placev.equals("top")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
194 yPos = (Double)getYBounds(0).getUpper();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
195 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
196 else if (placev.equals("bottom")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
197 yPos = (Double)getYBounds(0).getLower();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
198 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
199 else if (placev.equals("center")) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
200 yPos = ((Double)getYBounds(0).getUpper()
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
201 + (Double)getYBounds(0).getLower())/2d;
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
202 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
203 else {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
204 log.debug("Unknown place-v value: " + placev);
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
205 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
206
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
207 if (placeh == null || placeh.equals("none")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
208 placeh = "center";
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
209 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
210 if (placeh.equals("left")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
211 xPos = getLeftX();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
212 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
213 else if (placeh.equals("right")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
214 xPos = getRightX();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
215 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
216 else if (placeh.equals("center")) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
217 xPos = ((Long)getXBounds(0).getUpper()
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
218 + (Long)getXBounds(0).getLower())/2d;
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
219 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
220 else {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
221 log.debug("Unknown place-h value: " + placeh);
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
222 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
223
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
224 log.debug("logo position: " + xPos + "/" + yPos);
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
225
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
226 org.jfree.ui.RectangleAnchor anchor
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
227 = org.jfree.ui.RectangleAnchor.TOP;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
228 if (placev.equals("top")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
229 if (placeh.equals("left")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
230 anchor = org.jfree.ui.RectangleAnchor.TOP_LEFT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
231 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
232 else if (placeh.equals("right")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
233 anchor = org.jfree.ui.RectangleAnchor.TOP_RIGHT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
234 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
235 else if (placeh.equals("center")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
236 anchor = org.jfree.ui.RectangleAnchor.TOP;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
237 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
238 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
239 else if (placev.equals("bottom")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
240 if (placeh.equals("left")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
241 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_LEFT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
242 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
243 else if (placeh.equals("right")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
244 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_RIGHT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
245 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
246 else if (placeh.equals("center")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
247 anchor = org.jfree.ui.RectangleAnchor.BOTTOM;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
248 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
249 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
250 else if (placev.equals("center")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
251 if (placeh.equals("left")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
252 anchor = org.jfree.ui.RectangleAnchor.LEFT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
253 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
254 else if (placeh.equals("right")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
255 anchor = org.jfree.ui.RectangleAnchor.RIGHT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
256 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
257 else if (placeh.equals("center")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
258 anchor = org.jfree.ui.RectangleAnchor.CENTER;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
259 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
260 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
261
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
262 XYAnnotation xyannotation =
3633
ebfce31c7eec Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3632
diff changeset
263 new XYImageAnnotation(xPos, yPos, imageIcon.getImage(), anchor);
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
264 plot.getRenderer().addAnnotation(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
265 xyannotation, org.jfree.ui.Layer.BACKGROUND);
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
266 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
267
7595
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
268 /**
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
269 * This method zooms the plot to the specified ranges in the attribute
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
270 * document or to the ranges specified by the min/max values in the
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
271 * datasets. <b>Note:</b> We determine the range manually if no zoom ranges
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
272 * are given, because JFreeCharts auto-zoom adds a margin to the left and
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
273 * right of the data area.
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
274 *
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
275 * Copy of implementation in XYChartGenerator.
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
276 *
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
277 * @param plot The XYPlot.
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
278 */
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
279 protected void consumeAxisSettings(XYPlot plot) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
280 log.debug("Zoom to specified ranges.");
7595
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
281
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
282 Bounds xrange = getDomainAxisRange();
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
283 Bounds yrange = getValueAxisRange();
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
284
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
285 ValueAxis xAxis = plot.getDomainAxis();
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
286
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
287 Range fixedXRange = getRangeForAxisFromSettings("X");
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
288 if (fixedXRange != null) {
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
289 xAxis.setRange(fixedXRange);
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
290 }
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
291 else {
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
292 zoomX(plot, xAxis, getXBounds(0), xrange);
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
293 }
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
294
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
295 for (int i = 0, num = plot.getRangeAxisCount(); i < num; i++) {
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
296 ValueAxis yaxis = plot.getRangeAxis(i);
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
297
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
298 if (yaxis instanceof IdentifiableNumberAxis) {
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
299 IdentifiableNumberAxis idAxis = (IdentifiableNumberAxis) yaxis;
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
300
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
301 Range fixedRange = getRangeForAxisFromSettings(idAxis.getId());
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
302 if (fixedRange != null) {
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
303 yaxis.setRange(fixedRange);
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
304 continue;
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
305 }
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
306 }
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
307
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
308 if (yaxis == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
309 log.debug("Zoom problem: no Y Axis for index: " + i);
7595
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
310 continue;
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
311 }
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
312
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
313 log.debug("Prepare zoom settings for y axis at index: " + i);
7595
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
314 zoomY(plot, yaxis, getYBounds(Integer.valueOf(i)), yrange);
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
315 }
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
316 }
ce1b8a59934e issue1558: Allow fixed axis for timeseries-diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7034
diff changeset
317
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
318
2242
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
319 @Override
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
320 protected Series getSeriesOf(XYDataset dataset, int idx) {
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
321 return ((TimeSeriesCollection) dataset).getSeries(idx);
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
322 }
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
323
7e8e1d5384c0 Further refactoring of XYChartGenerator / ChartGenerator with the result, that timerange charts are now able to display lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2238
diff changeset
324
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
325 /**
7034
557cb3a3d772 Combine AxisDataset implementations and remove / simplify handling code.
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
326 * This method creates new instances of AxisDataset.
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
327 *
7034
557cb3a3d772 Combine AxisDataset implementations and remove / simplify handling code.
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
328 * @param idx The symbol for the new AxisDataset.
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
329 */
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
330 @Override
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
331 protected AxisDataset createAxisDataset(int idx) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
332 log.debug("Create a new AxisDataset for index: " + idx);
7034
557cb3a3d772 Combine AxisDataset implementations and remove / simplify handling code.
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
333 return new AxisDataset(idx);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
334 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
335
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
336
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
337 @Override
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
338 protected void combineXBounds(Bounds bounds, int index) {
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
339 if (bounds != null) {
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
340 Bounds old = getXBounds(index);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
341
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
342 if (old != null) {
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
343 bounds = bounds.combine(old);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
344 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
345
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
346 setXBounds(index, bounds);
2238
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
347 }
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
348 }
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
349
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
350
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
351 @Override
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
352 protected void combineYBounds(Bounds bounds, int index) {
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
353 if (bounds != null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
354 Bounds old = getYBounds(index);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
355
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
356 if (old != null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
357 bounds = bounds.combine(old);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
358 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
359
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
360 setYBounds(index, bounds);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
361 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
362 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
363
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
364
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
365 // TODO REPLACE THIS METHOD WITH getBoundsForAxis(index)
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
366 @Override
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
367 public Range[] getRangesForAxis(int index) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
368 // TODO
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
369 Bounds[] bounds = getBoundsForAxis(index);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
370
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
371 return new Range[] {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
372 new Range(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
373 bounds[0].getLower().doubleValue(),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
374 bounds[0].getUpper().doubleValue()),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
375 new Range(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
376 bounds[1].getLower().doubleValue(),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
377 bounds[1].getUpper().doubleValue())
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
378 };
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
379 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
380
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
381
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
382 @Override
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
383 public Bounds getXBounds(int axis) {
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
384 return xBounds.get(axis);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
385 }
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
386
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
387
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
388 @Override
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
389 protected void setXBounds(int axis, Bounds bounds) {
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
390 xBounds.put(axis, bounds);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
391 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
392
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
393
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
394 @Override
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
395 public Bounds getYBounds(int axis) {
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
396 return yBounds.get(axis);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
397 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
398
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
399
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
400 @Override
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
401 protected void setYBounds(int axis, Bounds bounds) {
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
402 if (bounds != null) {
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
403 yBounds.put(axis, bounds);
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
404 }
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
405 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
406
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
407
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
408 public Bounds[] getBoundsForAxis(int index) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
409 log.debug("Return x and y bounds for axis at: " + index);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
410
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
411 Bounds rx = getXBounds(Integer.valueOf(index));
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
412 Bounds ry = getYBounds(Integer.valueOf(index));
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
413
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
414 if (rx == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
415 log.warn("Range for x axis not set." +
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
416 " Using default values: 0 - 1.");
8857
0071702ba03f Fix diverse coding issues.
Tom Gottfried <tom@intevation.de>
parents: 8856
diff changeset
417 rx = new TimeBounds(0L, 1L);
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
418 }
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
419
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
420 if (ry == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
421 log.warn("Range for y axis not set." +
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
422 " Using default values: 0 - 1.");
8857
0071702ba03f Fix diverse coding issues.
Tom Gottfried <tom@intevation.de>
parents: 8856
diff changeset
423 ry = new DoubleBounds(0L, 1L);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
424 }
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
425
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
426 log.debug("X Bounds at index " + index + " is: " + rx);
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
427 log.debug("Y Bounds at index " + index + " is: " + ry);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
428
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
429 return new Bounds[] {rx, ry};
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
430 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
431
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
432
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
433 /** Get (zoom)values from request. */
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
434 public Bounds getDomainAxisRange() {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
435 String[] ranges = getDomainAxisRangeFromRequest();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
436
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
437 if (ranges == null || ranges.length < 2) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
438 log.debug("No zoom range for domain axis specified.");
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
439 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
440 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
441
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
442 if (ranges[0] == null || ranges[1] == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
443 log.warn("Invalid ranges for domain axis specified!");
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
444 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
445 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
446
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
447 try {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
448 double lower = Double.parseDouble(ranges[0]);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
449 double upper = Double.parseDouble(ranges[1]);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
450
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
451 return new DoubleBounds(lower, upper);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
452 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
453 catch (NumberFormatException nfe) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
454 log.warn("Invalid ranges for domain axis specified: " + nfe);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
455 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
456
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
457 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
458 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
459
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
460
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
461 public Bounds getValueAxisRange() {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
462 String[] ranges = getValueAxisRangeFromRequest();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
463
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
464 if (ranges == null || ranges.length < 2) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
465 log.debug("No zoom range for domain axis specified.");
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
466 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
467 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
468
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
469 if (ranges[0] == null || ranges[1] == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
470 log.warn("Invalid ranges for domain axis specified!");
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
471 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
472 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
473
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
474 try {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
475 double lower = Double.parseDouble(ranges[0]);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
476 double upper = Double.parseDouble(ranges[1]);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
477
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
478 return new DoubleBounds(lower, upper);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
479 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
480 catch (NumberFormatException nfe) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
481 log.warn("Invalid ranges for domain axis specified: " + nfe);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
482 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
483
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
484 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
485 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
486
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
487
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
488 protected void adaptZoom(XYPlot plot) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
489 log.debug("Adapt zoom of Timeseries chart.");
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
490
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2586
diff changeset
491 zoomX(plot, plot.getDomainAxis(), getXBounds(0), getDomainAxisRange());
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
492
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
493 Bounds valueAxisBounds = getValueAxisRange();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
494
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
495 for (int j = 0, n = plot.getRangeAxisCount(); j < n; j++) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
496 zoomY(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
497 plot,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
498 plot.getRangeAxis(j),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
499 getYBounds(j),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
500 valueAxisBounds);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
501 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
502 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
503
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
504
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
505 /**
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
506 * @param plot the plot.
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
507 * @param axis the value (x, time) axis of which to set bounds.
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
508 * @param total the current bounds (?).
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
509 */
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
510 protected void zoomX(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
511 XYPlot plot,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
512 ValueAxis axis,
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
513 Bounds total,//we could equally nicely getXBounds(0)
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
514 Bounds user
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
515 ) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
516 if (log.isDebugEnabled()) {
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
517 log.debug("== Zoom X axis ==");
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
518 log.debug(" Total axis range : " + total);
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
519 log.debug(" User defined range: " + user);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
520 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
521
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
522 if (user != null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
523 long min = total.getLower().longValue();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
524 long max = total.getUpper().longValue();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
525 long diff = max > min ? max - min : min - max;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
526
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
527 long newMin = Math.round(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
528 min + user.getLower().doubleValue() * diff);
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
529 long newMax = Math.round(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
530 min + user.getUpper().doubleValue() * diff);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
531
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
532 TimeBounds newBounds = new TimeBounds(newMin, newMax);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
533
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
534 log.debug(" Zoom axis to: " + newBounds);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
535
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
536 newBounds.applyBounds(axis, AXIS_SPACE);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
537 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
538 else {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
539 log.debug("No user specified zoom values found!");
3140
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
540 if (total != null && axis != null) {
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
541 total.applyBounds(axis, AXIS_SPACE);
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
542 }
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
543 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
544 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
545
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
546
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
547 /**
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
548 * @param user zoom values in percent.
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
549 */
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
550 protected void zoomY(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
551 XYPlot plot,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
552 ValueAxis axis,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
553 Bounds total,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
554 Bounds user
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
555 ) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
556 if (log.isDebugEnabled()) {
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
557 log.debug("== Zoom Y axis ==");
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
558 log.debug(" Total axis range : " + total);
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
559 log.debug(" User defined range: " + user);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
560 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
561
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
562 if (user != null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
563 double min = total.getLower().doubleValue();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
564 double max = total.getUpper().doubleValue();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
565 double diff = max > min ? max - min : min - max;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
566
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
567 double newMin = min + user.getLower().doubleValue() * diff;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
568 double newMax = min + user.getUpper().doubleValue() * diff;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
569
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
570 DoubleBounds newBounds = new DoubleBounds(newMin, newMax);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
571
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
572 log.debug(" Zoom axis to: " + newBounds);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
573
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
574 newBounds.applyBounds(axis, AXIS_SPACE);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
575 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
576 else {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
577 log.debug("No user specified zoom values found!");
3140
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
578 if (total != null && axis != null) {
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
579 total.applyBounds(axis, AXIS_SPACE);
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
580 }
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
581 }
2261
6aeb71517136 Registered an Info generator for historical discharge curves; made some adaptions in XYChartGenerator, ChartGenerator and TimeseriesChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2242
diff changeset
582 }
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
583
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
584
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
585 /**
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
586 * Adjusts the (look of) axes of a plot.
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
587 * This method sets the <i>labelFont</i> of the
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
588 * X axis.
3726
b679f6048acc Removed trailing whitespace. Back from future.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3650
diff changeset
589 *
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
590 * (Duplicate in XYChartGenerator).
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
591 *
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
592 * @param plot The XYPlot of the chart.
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
593 */
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
594 protected void adjustAxes(XYPlot plot) {
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
595 ValueAxis xaxis = plot.getDomainAxis();
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
596
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
597 ChartSettings chartSettings = getChartSettings();
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
598 if (chartSettings == null) {
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
599 return;
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
600 }
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
601
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
602 Font labelFont = new Font(
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
603 DEFAULT_FONT_NAME,
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
604 Font.BOLD,
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
605 getXAxisLabelFontSize());
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
606
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
607 xaxis.setLabelFont(labelFont);
2590
d75b427da50a #522 Modified axes creation: label and tick label fonts will now always be the same.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2587
diff changeset
608 xaxis.setTickLabelFont(labelFont);
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
609 }
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
610
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
611
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
612 protected Date decodeXAxisValue(JSONArray array)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
613 throws JSONException, ParseException {
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
614 try {
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
615 double x = array.getDouble(0);
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
616 long l = (new Double(x)).longValue();
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
617 return new Date(l);
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
618 }
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
619 catch(JSONException ex) {
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
620 String str = array.getString(0);
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
621 DateFormat df = DateFormat.getDateInstance(
9123
1cc7653ca84f Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents: 9104
diff changeset
622 DateFormat.MEDIUM, Resources.getLocale(getContext().getMeta()));
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
623 return df.parse(str);
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
624 }
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
625 }
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
626
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
627 /**
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
628 * Do Points out.
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
629 */
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
630 protected void doPoints(
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
631 Object o,
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
632 ArtifactAndFacet aandf,
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6795
diff changeset
633 ThemeDocument theme,
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
634 boolean visible,
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
635 int axisIndex
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
636 ) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
637 String seriesName = aandf.getFacetDescription();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
638 TimeSeries series = new StyledTimeSeries(seriesName, theme);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
639
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
640 // Add text annotations for single points.
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
641 List<XYTextAnnotation> xy = new ArrayList<XYTextAnnotation>();
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
642 HashMap<FixedMillisecond, String> names =
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
643 new HashMap<FixedMillisecond, String>();
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
644
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
645 try {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
646 JSONArray points = new JSONArray((String) o);
3087
4a76da133144 Removed repeated x.size() calls from for loops.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2636
diff changeset
647 for (int i = 0, P = points.length(); i < P; i++) {
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
648 JSONArray array = points.getJSONArray(i);
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
649
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
650 double y = array.getDouble(1);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
651 String name = array.getString(2);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
652 boolean act = array.getBoolean(3);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
653 if (!act) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
654 continue;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
655 }
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
656
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
657 Date date = decodeXAxisValue(array);
7904
8b8407c71ee2 Potential fix for exception reported in flys/issue1717.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7595
diff changeset
658 long ms = date.getTime();
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
659
7904
8b8407c71ee2 Potential fix for exception reported in flys/issue1717.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7595
diff changeset
660 FixedMillisecond day = new FixedMillisecond(ms);
8b8407c71ee2 Potential fix for exception reported in flys/issue1717.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7595
diff changeset
661 while (names.containsKey(day)) {
8b8407c71ee2 Potential fix for exception reported in flys/issue1717.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7595
diff changeset
662 day = new FixedMillisecond(++ms);
8b8407c71ee2 Potential fix for exception reported in flys/issue1717.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7595
diff changeset
663 }
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
664 series.add(day, y, false);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
665 names.put(day, name);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
666 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
667 }
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
668 catch(JSONException ex) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
669 log.error("Could not decode json");
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
670 }
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
671 catch(ParseException ex) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
672 log.error("Could not parse date string");
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
673 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
674
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
675 TimeSeriesCollection tsc = new TimeSeriesCollection();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
676 tsc.addSeries(series);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
677 // Add Annotations.
3087
4a76da133144 Removed repeated x.size() calls from for loops.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2636
diff changeset
678 for (int i = 0, S = series.getItemCount(); i < S; i++) {
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
679 double x = tsc.getXValue(0, i);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
680 double y = tsc.getYValue(0, i);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
681 xy.add(new CollisionFreeXYTextAnnotation(
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
682 names.get(series.getTimePeriod(i)), x, y));
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
683 log.debug("doPoints(): x=" + x + " y=" + y);
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
684 }
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
685 RiverAnnotation annotations =
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
686 new RiverAnnotation(null, null, null, theme);
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
687 annotations.setTextAnnotations(xy);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
688
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
689 // Do not generate second legend entry.
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8489
diff changeset
690 // (null was passed for the aand before).
2634
fa015cf5c0af Fixed duplicated legend entry for manual points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2633
diff changeset
691 doAnnotations(annotations, null, theme, visible);
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
692
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
693 addAxisDataset(tsc, axisIndex, visible);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
694 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
695
3130
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
696 public void addDomainAxisMarker(XYPlot plot) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
697 log.debug("domainmarkers: " + domainMarker.size());
3130
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
698 for (Marker marker: domainMarker) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
699 log.debug("adding domain marker");
3130
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
700 plot.addDomainMarker(marker, Layer.BACKGROUND);
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
701 }
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
702 domainMarker.clear();
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
703 }
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
704
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
705 public void addValueAxisMarker(XYPlot plot) {
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
706 for (Marker marker: valueMarker) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7904
diff changeset
707 log.debug("adding value marker..");
3130
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
708 plot.addRangeMarker(marker, Layer.BACKGROUND);
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
709 }
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
710 valueMarker.clear();
0dd569e9b9f1 Added new methods to add domain and value axis markers to time series plots.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3087
diff changeset
711 }
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
712
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
713 /** Two Ranges that span a rectangular area. */
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
714 public static class Area {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
715 protected Range xRange;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
716 protected Range yRange;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
717
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
718 public Area(Range rangeX, Range rangeY) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
719 this.xRange = rangeX;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
720 this.yRange = rangeY;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
721 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
722
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
723 public Area(ValueAxis axisX, ValueAxis axisY) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
724 this.xRange = axisX.getRange();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
725 this.yRange = axisY.getRange();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
726 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
727
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
728 public double ofLeft(double percent) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
729 return xRange.getLowerBound()
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
730 + xRange.getLength() * percent;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
731 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
732
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
733 public double ofRight(double percent) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
734 return xRange.getUpperBound()
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
735 - xRange.getLength() * percent;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
736 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
737
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
738 public double ofGround(double percent) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
739 return yRange.getLowerBound()
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
740 + yRange.getLength() * percent;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
741 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
742
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
743 public double atTop() {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
744 return yRange.getUpperBound();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
745 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
746
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
747 public double atGround() {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
748 return yRange.getLowerBound();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
749 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
750
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
751 public double atRight() {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
752 return xRange.getUpperBound();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
753 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
754
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
755 public double atLeft() {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
756 return xRange.getLowerBound();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
757 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
758
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
759 public double above(double percent, double base) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
760 return base + yRange.getLength() * percent;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
761 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
762 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
763
8455
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
764 /* Create an axis section with setUpperTimeRange and
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
765 * setLowerTimeRange */
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
766 @Override
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
767 protected List<AxisSection> buildXAxisSections() {
9123
1cc7653ca84f Cleanup of ChartGenerator and ChartGenerator2 code. Put some of the copy/pasted code into a common abstraction.
gernotbelger
parents: 9104
diff changeset
768 List<AxisSection> axisSections = new ArrayList<>();
8455
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
769
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
770 String identifier = "X";
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
771
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
772 AxisSection axisSection = new AxisSection();
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
773 axisSection.setIdentifier(identifier);
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
774 axisSection.setLabel(getXAxisLabel());
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
775 axisSection.setFontSize(14);
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
776 axisSection.setFixed(false);
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
777
8489
be5ce2882708 Time series chart: bounds cannot allways be assumed to be given.
Tom Gottfried <tom@intevation.de>
parents: 8455
diff changeset
778 long rightX = xBounds.isEmpty() ? 0 : getRightX();
be5ce2882708 Time series chart: bounds cannot allways be assumed to be given.
Tom Gottfried <tom@intevation.de>
parents: 8455
diff changeset
779 long leftX = xBounds.isEmpty() ? 0 : getLeftX();
be5ce2882708 Time series chart: bounds cannot allways be assumed to be given.
Tom Gottfried <tom@intevation.de>
parents: 8455
diff changeset
780 axisSection.setUpperTimeRange(rightX);
be5ce2882708 Time series chart: bounds cannot allways be assumed to be given.
Tom Gottfried <tom@intevation.de>
parents: 8455
diff changeset
781 axisSection.setLowerTimeRange(leftX);
8455
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
782
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
783 axisSections.add(axisSection);
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
784
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
785 return axisSections;
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
786 }
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
787
6dfc3a1fc70d (issue1764) Set upper-time and lower-time for time series axes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8343
diff changeset
788
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
789 }
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
790 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org