annotate artifacts/src/main/java/org/dive4elements/river/exports/TimeseriesChartGenerator.java @ 6955:94cb1845c667

(issue1452) Coalesce to zero to avoid NaN arithmetic.
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 30 Aug 2013 15:45:14 +0200
parents 1b35b2ddfc28
children 557cb3a3d772
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;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
12 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
13 import org.dive4elements.river.jfree.Bounds;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
14 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
15 import org.dive4elements.river.jfree.DoubleBounds;
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
16 import org.dive4elements.river.jfree.RiverAnnotation;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
17 import org.dive4elements.river.jfree.StyledTimeSeries;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4044
diff changeset
18 import org.dive4elements.river.jfree.TimeBounds;
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
19 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
20
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
21 import java.awt.Color;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
22 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
23 import java.text.DateFormat;
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
24 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
25 import java.util.ArrayList;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
26 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
27 import java.util.HashMap;
4044
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
28 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
29 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
30 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
31
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
32 import javax.swing.ImageIcon;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
33
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 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
35 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
36 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
37 import org.jfree.chart.LegendItem;
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
38 import org.jfree.chart.LegendItemCollection;
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
39 import org.jfree.chart.annotations.XYAnnotation;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
40 import org.jfree.chart.annotations.XYImageAnnotation;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
41 import org.jfree.chart.annotations.XYTextAnnotation;
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
42 import org.jfree.chart.axis.ValueAxis;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
43 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
44 import org.jfree.chart.plot.XYPlot;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
45 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
46 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
47 import org.jfree.data.general.Series;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
48 import org.jfree.data.time.Day;
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
49 import org.jfree.data.time.TimeSeries;
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
50 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
51 import org.jfree.data.xy.XYDataset;
3139
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
52 import org.jfree.ui.Layer;
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
53 import org.json.JSONArray;
5888c4685701 Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3134
diff changeset
54 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
55
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 /**
6795
0747ca95ad6e Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
57 * 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
58 * @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
59 */
6795
0747ca95ad6e Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
60 public abstract class TimeseriesChartGenerator
0747ca95ad6e Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
61 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
62
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
63 /**
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 * Inner class TimeseriesAxisDataset stores TimeSeriesCollection.
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
65 */
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 public class TimeseriesAxisDataset implements AxisDataset {
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
67
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
68 protected int axisSymbol;
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
69
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 protected List<TimeSeriesCollection> datasets;
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
71
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
72 protected Range range;
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
73
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
74 protected int plotAxisIndex;
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
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
76 public TimeseriesAxisDataset(int axisSymbol) {
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
77 this.axisSymbol = axisSymbol;
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
78 this.datasets = new ArrayList<TimeSeriesCollection>();
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 @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
83 public void addDataset(XYDataset dataset) {
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 if (!(dataset instanceof TimeSeriesCollection)) {
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 logger.warn("Skip non TimeSeriesCollection dataset.");
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 return;
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
87 }
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
88
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
89 TimeSeriesCollection tsc = (TimeSeriesCollection) dataset;
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
90
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 datasets.add(tsc);
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 mergeRanges(tsc);
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
93 }
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
94
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
95
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
96 @Override
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
97 public XYDataset[] getDatasets() {
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3242
diff changeset
98 return datasets.toArray(new XYDataset[datasets.size()]);
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
99 }
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
100
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
101
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
102 @Override
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 public boolean isEmpty() {
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 return datasets.isEmpty();
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 }
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
106
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
107
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
108 @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
109 public void setRange(Range range) {
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
110 this.range = range;
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
111 }
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
112
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
113
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
114 @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
115 public Range getRange() {
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
116 return range;
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
117 }
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
118
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
119
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
120 @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
121 public void setPlotAxisIndex(int plotAxisIndex) {
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
122 this.plotAxisIndex = plotAxisIndex;
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
123 }
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
124
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
125
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
126 @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
127 public int getPlotAxisIndex() {
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
128 return plotAxisIndex;
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
129 }
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
130
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
131
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
132 @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
133 public boolean isArea(XYDataset dataset) {
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
134 logger.warn("This AxisDataset doesn't support Areas yet!");
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
135 return false;
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
136 }
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
137
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
138
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
139 protected void mergeRanges(TimeSeriesCollection dataset) {
3236
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
140 logger.debug("Range before merging: " + range);
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
141 Range subRange = 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
142
3236
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
143 // Determine min/max of range axis.
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
144 for (int i = 0; i < dataset.getSeriesCount(); i++) {
3610
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3278
diff changeset
145 if (dataset.getSeries(i).getItemCount() == 0) {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3278
diff changeset
146 continue;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3278
diff changeset
147 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3278
diff changeset
148 double min = Double.MAX_VALUE;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3278
diff changeset
149 double max = -Double.MAX_VALUE;
3236
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
150 TimeSeries series = dataset.getSeries(i);
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
151 for (int j = 0; j < series.getItemCount(); j++) {
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
152 double tmp = series.getValue(j).doubleValue();
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
153 min = tmp < min ? tmp : min;
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
154 max = tmp > max ? tmp : max;
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
155 }
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
156 if (subRange != null) {
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
157 subRange = new Range(
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
158 min < subRange.getLowerBound() ?
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
159 min : subRange.getLowerBound(),
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
160 max > subRange.getUpperBound() ?
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
161 max : subRange.getUpperBound());
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
162 }
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
163 else {
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
164 subRange = new Range(min, max);
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
165 }
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
166 }
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
167
3236
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
168 // Avoid merging NaNs, as they take min/max place forever.
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
169 if (subRange == null ||
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
170 Double.isNaN(subRange.getLowerBound()) ||
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
171 Double.isNaN(subRange.getUpperBound())) {
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
172 return;
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
173 }
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
174 if (range == null) {
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
175 range = subRange;
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
176 return;
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
177 }
b0eee4c1eaa0 Implemented mergeRanges to combine y bounds in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3227
diff changeset
178 range = Range.combine(range, subRange);
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
179 }
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
180
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
181 } // end of TimeseriesAxisDataset class
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
182
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
183 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
184
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
185 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
186
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
187 protected Map<String, String> attributes;
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
188
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
189 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
190
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191 private static final Logger logger =
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 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
193
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
194 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
195
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
196 protected Map<Integer, Bounds> xBounds;
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
197
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
198 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
199
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
200
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
201 /**
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
202 * 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
203 */
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
204 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
205 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
206
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
207 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
208 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
209 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
210 valueMarker = new ArrayList<Marker>();
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
211 attributes = new HashMap<String, String>();
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
212 }
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
213
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
214
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
215
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
216 @Override
2234
46ec09c7f578 Refactoring: moved more base code from XYChartGenerator into its parent class ChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2233
diff changeset
217 public JFreeChart generateChart() {
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
218 logger.info("Generate Timeseries Chart.");
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
219
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
220 JFreeChart chart = ChartFactory.createTimeSeriesChart(
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
221 getChartTitle(),
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
222 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
223 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
224 null,
2422
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2330
diff changeset
225 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
226 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
227 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
228
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
229 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
230
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
231 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
232 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
233
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
234 addSubtitles(chart);
2422
44dc117aa2b7 Picked rev 4058,4063,4065,4068,4069 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2330
diff changeset
235 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
236 addDatasets(plot);
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
237 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
238 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
239 addValueAxisMarker(plot);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
240 adaptZoom(plot);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
241
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
242 applySeriesAttributes(plot);
4021
7cc05da7e35c Add message for 'state.chart.km'
Christian Lins <christian.lins@intevation.de>
parents: 3984
diff changeset
243
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
244 addAnnotationsToRenderer(plot);
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
245 addLogo(plot);
3185
f1e4b37dcb60 Enable legend item aggreation in time series charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3168
diff changeset
246 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
247 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
248 }
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
249
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
250
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
251 /**
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
252 * 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
253 * 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
254 * axis could be inverted.
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
255 */
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
256 protected double getLeftX() {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
257 return (Long)getXBounds(0).getLower();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
258 }
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 * 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
263 * 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
264 * axis could be inverted.
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
265 */
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
266 protected double getRightX() {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
267 return (Long)getXBounds(0).getUpper();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
268 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
269
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
270
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
271 /**
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
272 * 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
273 * Copy from XYChartGenerator.
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
274 */
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
275 protected void addLogo(XYPlot plot) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
276 String logo = showLogo();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
277 if (logo == null) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
278 logger.debug("No logo to show chosen");
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
279 return;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
280 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
281
3633
ebfce31c7eec Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3632
diff changeset
282 ImageIcon imageIcon = null;
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
283 if (logo.equals("none")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
284 return;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
285 }
3623
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
286 /*
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
287 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
288 flys-artifacts:
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
289 XYChartGenerator.java
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
290 Timeseries*Generator.java and
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
291 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
292 Also, these images have to be put in
6bfcbe391393 Better comment for logo-adders.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3637
diff changeset
293 flys-artifacts/src/main/resources/images/
6bfcbe391393 Better comment for logo-adders.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3637
diff changeset
294 flys-client/src/main/webapp/images/
3623
119b8ba2b77f Include logos in resources.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3622
diff changeset
295 */
3637
d5a0602375fb Fixed logo integration in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
296 java.net.URL imageURL;
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
297 if (logo.equals("Intevation")) {
3637
d5a0602375fb Fixed logo integration in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
298 imageURL = XYChartGenerator.class.getResource("/images/intevation.png");
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
299 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
300 else { // TODO else if ...
3637
d5a0602375fb Fixed logo integration in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
301 imageURL = XYChartGenerator.class.getResource("/images/bfg_logo.gif");
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
302 }
3637
d5a0602375fb Fixed logo integration in timeseries charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
303 imageIcon = new ImageIcon(imageURL);
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
304 double xPos = 0d, yPos = 0d;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
305
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
306 String placeh = logoHPlace();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
307 String placev = logoVPlace();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
308
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
309 if (placev == null || placev.equals("none")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
310 placev = "top";
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
311 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
312 if (placev.equals("top")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
313 yPos = (Double)getYBounds(0).getUpper();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
314 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
315 else if (placev.equals("bottom")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
316 yPos = (Double)getYBounds(0).getLower();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
317 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
318 else if (placev.equals("center")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
319 yPos = ((Double)getYBounds(0).getUpper() + (Double)getYBounds(0).getLower())/2d;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
320 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
321 else {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
322 logger.debug("Unknown place-v value: " + placev);
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
323 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
324
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
325 if (placeh == null || placeh.equals("none")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
326 placeh = "center";
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
327 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
328 if (placeh.equals("left")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
329 xPos = getLeftX();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
330 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
331 else if (placeh.equals("right")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
332 xPos = getRightX();
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
333 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
334 else if (placeh.equals("center")) {
3632
347096b8cdf6 Fix invalid cast.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3623
diff changeset
335 xPos = ((Long)getXBounds(0).getUpper() + (Long)getXBounds(0).getLower())/2d;
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
336 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
337 else {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
338 logger.debug("Unknown place-h value: " + placeh);
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
339 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
340
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
341 logger.debug("logo position: " + xPos + "/" + yPos);
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
342
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
343 org.jfree.ui.RectangleAnchor anchor
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
344 = org.jfree.ui.RectangleAnchor.TOP;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
345 if (placev.equals("top")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
346 if (placeh.equals("left")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
347 anchor = org.jfree.ui.RectangleAnchor.TOP_LEFT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
348 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
349 else if (placeh.equals("right")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
350 anchor = org.jfree.ui.RectangleAnchor.TOP_RIGHT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
351 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
352 else if (placeh.equals("center")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
353 anchor = org.jfree.ui.RectangleAnchor.TOP;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
354 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
355 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
356 else if (placev.equals("bottom")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
357 if (placeh.equals("left")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
358 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_LEFT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
359 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
360 else if (placeh.equals("right")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
361 anchor = org.jfree.ui.RectangleAnchor.BOTTOM_RIGHT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
362 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
363 else if (placeh.equals("center")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
364 anchor = org.jfree.ui.RectangleAnchor.BOTTOM;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
365 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
366 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
367 else if (placev.equals("center")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
368 if (placeh.equals("left")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
369 anchor = org.jfree.ui.RectangleAnchor.LEFT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
370 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
371 else if (placeh.equals("right")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
372 anchor = org.jfree.ui.RectangleAnchor.RIGHT;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
373 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
374 else if (placeh.equals("center")) {
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
375 anchor = org.jfree.ui.RectangleAnchor.CENTER;
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
376 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
377 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
378
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
379 XYAnnotation xyannotation =
3633
ebfce31c7eec Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3632
diff changeset
380 new XYImageAnnotation(xPos, yPos, imageIcon.getImage(), anchor);
ebfce31c7eec Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3632
diff changeset
381 plot.getRenderer().addAnnotation(xyannotation, org.jfree.ui.Layer.BACKGROUND);
3622
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
382 }
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
383
5e505060a9bf Enable logo rendering in timeseries charts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3610
diff changeset
384
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
385 @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
386 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
387 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
388 }
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
389
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
390
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
391 /**
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
392 * This method creates new instances of TimeseriesAxisDataset.
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
393 *
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
394 * @param idx The symbol for the new TimeseriesAxisDataset.
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
395 */
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
396 @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
397 protected AxisDataset createAxisDataset(int idx) {
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
398 logger.debug("Create a new AxisDataset for index: " + idx);
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
399 return new TimeseriesAxisDataset(idx);
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
400 }
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
401
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
402
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
403 @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
404 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
405 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
406 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
407
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
408 if (old != null) {
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
409 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
410 }
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
411
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
412 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
413 }
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
414 }
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
415
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
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
417 @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
418 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
419 if (bounds != null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
420 Bounds old = getYBounds(index);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
421
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
422 if (old != null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
423 bounds = bounds.combine(old);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
424 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
425
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
426 setYBounds(index, bounds);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
427 }
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
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 // TODO REPLACE THIS METHOD WITH getBoundsForAxis(index)
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
432 @Override
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
433 public Range[] getRangesForAxis(int index) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
434 // TODO
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
435 Bounds[] bounds = getBoundsForAxis(index);
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 return new Range[] {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
438 new Range(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
439 bounds[0].getLower().doubleValue(),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
440 bounds[0].getUpper().doubleValue()),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
441 new Range(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
442 bounds[1].getLower().doubleValue(),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
443 bounds[1].getUpper().doubleValue())
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
444 };
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
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
448 @Override
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
449 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
450 return xBounds.get(axis);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
451 }
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
452
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
453
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
454 @Override
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
455 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
456 xBounds.put(axis, bounds);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
457 }
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 @Override
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
461 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
462 return yBounds.get(axis);
2330
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
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
465
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
466 @Override
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
467 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
468 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
469 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
470 }
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
471 }
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 public Bounds[] getBoundsForAxis(int index) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
475 logger.debug("Return x and y bounds for axis at: " + index);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
476
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
477 Bounds rx = getXBounds(Integer.valueOf(index));
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
478 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
479
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
480 if (rx == null) {
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
481 logger.warn("Range for x axis not set." +
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
482 " Using default values: 0 - 1.");
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
483 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
484 }
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
485
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
486 if (ry == null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
487 logger.warn("Range for y axis not set." +
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
488 " Using default values: 0 - 1.");
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
489 ry = new DoubleBounds(0l, 1l);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
490 }
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
491
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
492 logger.debug("X Bounds at index " + index + " is: " + rx);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
493 logger.debug("Y Bounds at index " + index + " is: " + ry);
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 return new Bounds[] {rx, ry};
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
496 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
497
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
498
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
499 /** Get (zoom)values from request. */
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
500 public Bounds getDomainAxisRange() {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
501 String[] ranges = getDomainAxisRangeFromRequest();
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 if (ranges == null || ranges.length < 2) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
504 logger.debug("No zoom range for domain axis specified.");
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
505 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
506 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
507
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
508 if (ranges[0] == null || ranges[1] == null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
509 logger.warn("Invalid ranges for domain axis specified!");
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
510 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
511 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
512
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
513 try {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
514 double lower = Double.parseDouble(ranges[0]);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
515 double upper = Double.parseDouble(ranges[1]);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
516
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
517 return new DoubleBounds(lower, upper);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
518 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
519 catch (NumberFormatException nfe) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
520 logger.warn("Invalid ranges for domain axis specified: " + nfe);
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
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
523 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
524 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
525
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
526
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
527 public Bounds getValueAxisRange() {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
528 String[] ranges = getValueAxisRangeFromRequest();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
529
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
530 if (ranges == null || ranges.length < 2) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
531 logger.debug("No zoom range for domain axis specified.");
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
532 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
533 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
534
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
535 if (ranges[0] == null || ranges[1] == null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
536 logger.warn("Invalid ranges for domain axis specified!");
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
537 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
538 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
539
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
540 try {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
541 double lower = Double.parseDouble(ranges[0]);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
542 double upper = Double.parseDouble(ranges[1]);
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 return new DoubleBounds(lower, upper);
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 catch (NumberFormatException nfe) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
547 logger.warn("Invalid ranges for domain axis specified: " + nfe);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
548 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
549
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
550 return null;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
551 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
552
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
553
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
554 protected void adaptZoom(XYPlot plot) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
555 logger.debug("Adapt zoom of Timeseries chart.");
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
556
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
557 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
558
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
559 Bounds valueAxisBounds = getValueAxisRange();
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 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
562 zoomY(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
563 plot,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
564 plot.getRangeAxis(j),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
565 getYBounds(j),
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
566 valueAxisBounds);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
567 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
568 }
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
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
571 /**
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
572 * @param plot the plot.
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
573 * @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
574 * @param total the current bounds (?).
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
575 */
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
576 protected void zoomX(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
577 XYPlot plot,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
578 ValueAxis axis,
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
579 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
580 Bounds user
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
581 ) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
582 if (logger.isDebugEnabled()) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
583 logger.debug("== Zoom X axis ==");
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
584 logger.debug(" Total axis range : " + total);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
585 logger.debug(" User defined range: " + user);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
586 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
587
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
588 if (user != null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
589 long min = total.getLower().longValue();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
590 long max = total.getUpper().longValue();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
591 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
592
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3242
diff changeset
593 long newMin = Math.round(min + user.getLower().doubleValue() * diff);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3242
diff changeset
594 long newMax = Math.round(min + user.getUpper().doubleValue() * diff);
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
595
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
596 TimeBounds newBounds = new TimeBounds(newMin, newMax);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
597
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
598 logger.debug(" Zoom axis to: " + newBounds);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
599
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
600 newBounds.applyBounds(axis, AXIS_SPACE);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
601 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
602 else {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
603 logger.debug("No user specified zoom values found!");
3140
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
604 if (total != null && axis != null) {
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
605 total.applyBounds(axis, AXIS_SPACE);
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
606 }
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
607 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
608 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
609
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
610
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
611 /**
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
612 * @param user zoom values in percent.
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
613 */
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
614 protected void zoomY(
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
615 XYPlot plot,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
616 ValueAxis axis,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
617 Bounds total,
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
618 Bounds user
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
619 ) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
620 if (logger.isDebugEnabled()) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
621 logger.debug("== Zoom Y axis ==");
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
622 logger.debug(" Total axis range : " + total);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
623 logger.debug(" User defined range: " + user);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
624 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
625
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
626 if (user != null) {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
627 double min = total.getLower().doubleValue();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
628 double max = total.getUpper().doubleValue();
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
629 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
630
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
631 double newMin = min + user.getLower().doubleValue() * diff;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
632 double newMax = min + user.getUpper().doubleValue() * diff;
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
633
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
634 DoubleBounds newBounds = new DoubleBounds(newMin, newMax);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
635
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
636 logger.debug(" Zoom axis to: " + newBounds);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
637
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
638 newBounds.applyBounds(axis, AXIS_SPACE);
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
639 }
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
640 else {
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
641 logger.debug("No user specified zoom values found!");
3140
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
642 if (total != null && axis != null) {
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
643 total.applyBounds(axis, AXIS_SPACE);
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
644 }
2330
594885703687 Picked changes r4015:4026 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
645 }
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
646 }
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
647
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
648
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
649 /**
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
650 * Adjusts the axes of a plot. This method sets the <i>labelFont</i> of the
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
651 * X axis.
3726
b679f6048acc Removed trailing whitespace. Back from future.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3650
diff changeset
652 *
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3638
diff changeset
653 * (Duplicate in XYChartGenerator).
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
654 *
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
655 * @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
656 */
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
657 protected void adjustAxes(XYPlot plot) {
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
658 ValueAxis xaxis = plot.getDomainAxis();
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
659
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
660 ChartSettings chartSettings = getChartSettings();
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
661 if (chartSettings == null) {
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
662 return;
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
663 }
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
664
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
665 Font labelFont = new Font(
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
666 DEFAULT_FONT_NAME,
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
667 Font.BOLD,
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
668 getXAxisLabelFontSize());
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
669
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
670 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
671 xaxis.setTickLabelFont(labelFont);
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
672 }
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
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
675 protected Date decodeXAxisValue(JSONArray array) throws JSONException, ParseException {
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
676 try {
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
677 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
678 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
679 return new Date(l);
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
680 }
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
681 catch(JSONException ex) {
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
682 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
683 DateFormat df = DateFormat.getDateInstance(
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
684 DateFormat.MEDIUM, Resources.getLocale(context.getMeta()));
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
685 return df.parse(str);
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
686 }
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
687 }
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
688
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
689 /**
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
690 * Do Points out.
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
691 */
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
692 protected void doPoints(
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
693 Object o,
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
694 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
695 ThemeDocument theme,
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
696 boolean visible,
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
697 int axisIndex
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
698 ) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
699 String seriesName = aandf.getFacetDescription();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
700 TimeSeries series = new StyledTimeSeries(seriesName, theme);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
701
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
702 // Add text annotations for single points.
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
703 List<XYTextAnnotation> xy = new ArrayList<XYTextAnnotation>();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
704 HashMap<Day, String> names = new HashMap<Day, String>();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
705
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
706 try {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
707 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
708 for (int i = 0, P = points.length(); i < P; i++) {
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
709 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
710
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
711 double y = array.getDouble(1);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
712 String name = array.getString(2);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
713 boolean act = array.getBoolean(3);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
714 if (!act) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
715 continue;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
716 }
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
717
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
718 Date date = decodeXAxisValue(array);
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
719
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
720 Day day = new Day(date);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
721 series.add(day, y, false);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
722 names.put(day, name);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
723 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
724 }
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
725 catch(JSONException ex) {
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
726 logger.error("Could not decode json");
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
727 }
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
728 catch(ParseException ex) {
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
729 logger.error("Could not parse date string");
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
730 }
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 TimeSeriesCollection tsc = new TimeSeriesCollection();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
733 tsc.addSeries(series);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
734 // Add Annotations.
3087
4a76da133144 Removed repeated x.size() calls from for loops.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2636
diff changeset
735 for (int i = 0, S = series.getItemCount(); i < S; i++) {
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
736 double x = tsc.getXValue(0, i);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
737 double y = tsc.getYValue(0, i);
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
738 xy.add(new CollisionFreeXYTextAnnotation(
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
739 names.get(series.getTimePeriod(i)), x, y));
3984
89d7e97e9c9a Manual points working in fixing Delta W/t char (#462).
Christian Lins <clins@intevation.de>
parents: 3969
diff changeset
740 logger.debug("doPoints(): x=" + x + " y=" + y);
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
741 }
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
742 RiverAnnotation annotations =
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
743 new RiverAnnotation(null, null, null, theme);
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
744 annotations.setTextAnnotations(xy);
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 // Do not generate second legend entry. (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
747 doAnnotations(annotations, null, theme, visible);
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
748
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
749 addAxisDataset(tsc, axisIndex, visible);
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
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
752 public void addDomainAxisMarker(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
753 logger.debug("domainmarkers: " + domainMarker.size());
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
754 for (Marker marker: domainMarker) {
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
755 logger.debug("adding domain 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
756 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
757 }
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
758 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
759 }
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
760
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
761 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
762 for (Marker 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
763 logger.debug("adding value 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
764 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
765 }
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
766 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
767 }
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
768
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
769 public void addAttribute(String seriesKey, String name) {
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
770 attributes.put(seriesKey, name);
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
771 }
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
772
4044
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
773 private LegendItem getLegendItemFor(XYPlot plot, String interSeriesKey) {
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
774 LegendItemCollection litems = plot.getLegendItems();
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
775 Iterator<LegendItem> iter = litems.iterator();
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
776 while(iter.hasNext()) {
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
777 LegendItem item = iter.next();
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
778 if(interSeriesKey.startsWith(item.getSeriesKey().toString())) {
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
779 return item;
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
780 }
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
781 }
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
782 return null;
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
783 }
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
784
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
785 protected void applySeriesAttributes(XYPlot plot) {
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
786 int count = plot.getDatasetCount();
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
787 for (int i = 0; i < count; i++) {
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
788 XYDataset data = plot.getDataset(i);
3140
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
789 if (data == null) {
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
790 continue;
3d456d8bca6e TimeseriesChartGenerator: Prevent some NPEs
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3139
diff changeset
791 }
4044
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
792
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
793 int seriesCount = data.getSeriesCount();
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
794 for (int j = 0; j < seriesCount; j++) {
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
795 StyledTimeSeries series =
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
796 (StyledTimeSeries)getSeriesOf(data, j);
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
797 String key = series.getKey().toString();
4044
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
798
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
799 if (attributes.containsKey(key)) {
4021
7cc05da7e35c Add message for 'state.chart.km'
Christian Lins <christian.lins@intevation.de>
parents: 3984
diff changeset
800 // Interpolated points are drawn unfilled
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
801 if (attributes.get(key).equals("interpolate")) {
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
802 XYLineAndShapeRenderer renderer =
4044
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
803 series.getStyle().getRenderer();
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
804 renderer.setSeriesPaint(
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
805 j,
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
806 renderer.getSeriesFillPaint(j));
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
807 renderer.setSeriesShapesFilled(j, false);
4044
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
808
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
809 LegendItem legendItem = getLegendItemFor(plot, key);
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
810 if(legendItem != null) {
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
811 LegendItem interLegend = new LegendItem(
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
812 legendItem.getLabel(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
813 legendItem.getDescription(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
814 legendItem.getToolTipText(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
815 legendItem.getURLText(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
816 legendItem.isShapeVisible(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
817 legendItem.getShape(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
818 false, // shapeFilled?
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
819 legendItem.getFillPaint(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
820 true, // shapeOutlineVisible?
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
821 renderer.getSeriesFillPaint(j),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
822 legendItem.getOutlineStroke(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
823 legendItem.isLineVisible(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
824 legendItem.getLine(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
825 legendItem.getLineStroke(),
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
826 legendItem.getLinePaint()
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
827 );
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
828 interLegend.setSeriesKey(series.getKey());
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
829 logger.debug("applySeriesAttributes: draw unfilled legend item");
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
830 plot.getLegendItems().add(interLegend);
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
831 }
3168
e10323bf3cbc Look for the attribut "outline" in TimeseriesChartGenerator to render shape
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3140
diff changeset
832 }
e10323bf3cbc Look for the attribut "outline" in TimeseriesChartGenerator to render shape
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3140
diff changeset
833 }
4044
7eebd9e58641 Add chart legend entries for interpolated series (#838).
Christian Lins <christian.lins@intevation.de>
parents: 4021
diff changeset
834
3168
e10323bf3cbc Look for the attribut "outline" in TimeseriesChartGenerator to render shape
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3140
diff changeset
835 if (attributes.containsKey(key)) {
e10323bf3cbc Look for the attribut "outline" in TimeseriesChartGenerator to render shape
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3140
diff changeset
836 if(attributes.get(key).equals("outline")) {
e10323bf3cbc Look for the attribut "outline" in TimeseriesChartGenerator to render shape
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3140
diff changeset
837 XYLineAndShapeRenderer renderer =
e10323bf3cbc Look for the attribut "outline" in TimeseriesChartGenerator to render shape
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3140
diff changeset
838 series.getStyle().getRenderer();
e10323bf3cbc Look for the attribut "outline" in TimeseriesChartGenerator to render shape
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3140
diff changeset
839 renderer.setSeriesPaint(
e10323bf3cbc Look for the attribut "outline" in TimeseriesChartGenerator to render shape
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3140
diff changeset
840 j,
e10323bf3cbc Look for the attribut "outline" in TimeseriesChartGenerator to render shape
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3140
diff changeset
841 renderer.getSeriesFillPaint(j));
3134
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
842 renderer.setDrawOutlines(true);
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
843 }
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
844 }
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
845 }
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
846 }
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
847 }
5a0aef74c316 Use different stylings for real and interpolated data points.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3130
diff changeset
848
2633
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
849 /** Two Ranges that span a rectangular area. */
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
850 public static class Area {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
851 protected Range xRange;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
852 protected Range yRange;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
853
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
854 public Area(Range rangeX, Range rangeY) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
855 this.xRange = rangeX;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
856 this.yRange = rangeY;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
857 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
858
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
859 public Area(ValueAxis axisX, ValueAxis axisY) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
860 this.xRange = axisX.getRange();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
861 this.yRange = axisY.getRange();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
862 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
863
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
864 public double ofLeft(double percent) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
865 return xRange.getLowerBound()
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
866 + xRange.getLength() * percent;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
867 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
868
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
869 public double ofRight(double percent) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
870 return xRange.getUpperBound()
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
871 - xRange.getLength() * percent;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
872 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
873
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
874 public double ofGround(double percent) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
875 return yRange.getLowerBound()
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
876 + yRange.getLength() * percent;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
877 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
878
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
879 public double atTop() {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
880 return yRange.getUpperBound();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
881 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
882
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
883 public double atGround() {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
884 return yRange.getLowerBound();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
885 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
886
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
887 public double atRight() {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
888 return xRange.getUpperBound();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
889 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
890
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
891 public double atLeft() {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
892 return xRange.getLowerBound();
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
893 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
894
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
895 public double above(double percent, double base) {
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
896 return base + yRange.getLength() * percent;
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
897 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
898 }
894186b4c1d0 Issue 494.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2590
diff changeset
899
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
900 }
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
901 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org