annotate flys-artifacts/src/main/java/de/intevation/flys/exports/TimeseriesChartGenerator.java @ 2586:8cd6358eb7f8

Enabeld axes label font sizes for timeseries charts. flys-artifacts/trunk@4141 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 14 Mar 2012 15:12:45 +0000
parents ee5eca3871cb
children bece6f604899
rev   line source
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.exports;
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
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
3 import java.awt.Color;
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
4 import java.awt.Font;
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
5
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
6 import java.util.ArrayList;
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
7 import java.util.HashMap;
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
8 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
9 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
10
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import org.apache.log4j.Logger;
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
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
13 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
14 import org.jfree.chart.JFreeChart;
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
15 import org.jfree.chart.axis.ValueAxis;
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
16 import org.jfree.chart.plot.XYPlot;
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
17
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
18 import org.jfree.data.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
19 import org.jfree.data.time.TimeSeriesCollection;
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
20 import org.jfree.data.general.Series;
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 org.jfree.data.xy.XYDataset;
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
23 import de.intevation.flys.jfree.Bounds;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
24 import de.intevation.flys.jfree.DoubleBounds;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
25 import de.intevation.flys.jfree.TimeBounds;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
26
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 /**
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 * @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
30 */
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 public abstract class TimeseriesChartGenerator extends ChartGenerator {
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32
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
33
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
34 /**
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 * 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
36 */
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
37 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
38
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
39 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
40
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
41 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
42
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
43 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
44
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
45 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
46
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
47
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
48 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
49 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
50 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
51 }
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
52
23c7c51df772 Some more refactoring in XYChartGenerator and ChartGenerator; implemented necessary stuff in TimeseriesChartGenerator and return new empty instances of timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2236
diff changeset
53
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
54 @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
55 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
56 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
57 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
58 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
59 }
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
60
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
61 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
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 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
64 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
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
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 @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
69 public XYDataset[] getDatasets() {
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
70 return (XYDataset[])
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
71 datasets.toArray(new XYDataset[datasets.size()]);
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
72 }
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
73
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
74
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
75 @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
76 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
77 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
78 }
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
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
81 @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
82 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
83 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
84 }
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
85
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
86
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
87 @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
88 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
89 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
90 }
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
91
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
92
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
93 @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
94 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
95 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
96 }
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
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
98
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 @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
100 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
101 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
102 }
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
103
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
104
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
105 @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
106 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
107 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
108 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
109 }
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
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
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
112 protected void mergeRanges(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
113 logger.debug("Range after merging: " + 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
114
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
115 Bounds[] xyRanges = ChartHelper.getBounds(dataset);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
116
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
117 // TODO COMBINE 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
118
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
119 logger.debug("Range after merging: " + 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
120 }
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
121
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
122 } // 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
123
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
124
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
125
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 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
127 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
128
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
130 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
131
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
132
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
133 protected Map<Integer, Bounds> xRanges;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
134
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
135 protected Map<Integer, Bounds> yRanges;
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
136
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
137
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
138
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 /**
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
140 * 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
141 */
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 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
143 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
144
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
145 xRanges = new HashMap<Integer, Bounds>();
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
146 yRanges = new HashMap<Integer, 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
147 }
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
148
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 @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
152 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
153 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
154
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
155 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
156 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
157 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
158 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
159 null,
2554
ee5eca3871cb Apply legend specific settings (show/hide) in timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2553
diff changeset
160 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
161 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
162 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
163
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
164 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
165
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
166 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
167 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
168
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
169 addSubtitles(chart);
2553
c7b0dfa6a52c Some refactoring in chart creation; timeseries charts are now able to apply plot specific settings as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2400
diff changeset
170 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
171 addDatasets(plot);
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
172 adjustAxes(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
173
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
174 adaptZoom(plot);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
175
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
176 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
177 }
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
178
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
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
180 @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
181 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
182 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
183 }
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
184
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
185
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
186 // TODO DECLARE IN UPPER CLASS AND ADD OVERRIDE ANNOTATION
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
187 protected Bounds getXRange(int axis) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
188 return xRanges.get(Integer.valueOf(axis));
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
189 }
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
190
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
191
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
192 @Override
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
193 // TODO setXRange should always await a Bounds instance!
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
194 // TODO SHOULD BE REMOVED WHEN DEFINED IN UPPER CLASS
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
195 protected void setXRange(int axis, Range range) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
196 // do nothing here, we will use setXRange(int, Bounds) now
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
197 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
198
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
199
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
200 @Override
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
201 // TODO setYRange should always await a Bounds instance!
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
202 protected void setYRange(int axis, Range range) {
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
203 if (range == null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
204 logger.warn("Range is null!");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
205 return;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
206 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
207
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
208 setYBounds(Integer.valueOf(axis), new DoubleBounds(
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
209 range.getLowerBound(),
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
210 range.getUpperBound()));
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
211 }
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
212
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
213
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
214 /**
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
215 * 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
216 *
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
217 * @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
218 */
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
219 @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
220 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
221 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
222 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
223 }
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
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
225
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
226 // TODO THIS SHOULD BE DONE IN AN UPPER CLASS!
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
227 @Override
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
228 public void addAxisDataset(XYDataset dataset, int idx, boolean visible) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
229 if (dataset == null || idx < 0) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
230 return;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
231 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
232
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
233 AxisDataset axisDataset = getAxisDataset(idx);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
234
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
235 Bounds[] bounds = ChartHelper.getBounds((TimeSeriesCollection)dataset);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
236
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
237 if (bounds == null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
238 logger.warn("Skip XYDataset for Axis (invalid ranges): " + idx);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
239 return;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
240 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
241
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
242 if (visible) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
243 if (logger.isDebugEnabled()) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
244 logger.debug("Add new AxisDataset at index: " + idx);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
245 logger.debug("X extent: " + bounds[0]);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
246 logger.debug("Y extent: " + bounds[1]);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
247 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
248
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
249 axisDataset.addDataset(dataset);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
250 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
251
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
252 combineXRanges(bounds[0], 0);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
253 combineYRanges(bounds[1], idx);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
254 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
255
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
256
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
257 /**
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
258 * Effect: extend range of x axis to include given limits.
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
259 * @param range the given ("minimal") 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
260 * @param index index of axis to be merged.
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
261 */
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
262 @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
263 protected void combineXRanges(Range range, int index) {
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
264 throw new RuntimeException(
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
265 "TimeseriesChartGenerator.combineXRanges is not implemented!");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
266 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
267
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
268
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
269 protected void combineXRanges(Bounds bounds, int index) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
270 if (bounds != null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
271 Bounds old = getXRange(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
272
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
273 if (old != null) {
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
274 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
275 }
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
276
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
277 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
278 }
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
279 }
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
280
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
281
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
282 protected void combineYRanges(Bounds bounds, int index) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
283 if (bounds != null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
284 Bounds old = getYBounds(index);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
285
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
286 if (old != null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
287 bounds = bounds.combine(old);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
288 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
289
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
290 setYBounds(index, bounds);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
291 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
292 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
293
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
294
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
295 // TODO REPLACE THIS METHOD WITH getBoundsForAxis(index)
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
296 @Override
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
297 public Range[] getRangesForAxis(int index) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
298 // TODO
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
299 Bounds[] bounds = getBoundsForAxis(index);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
300
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
301 return new Range[] {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
302 new Range(
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
303 bounds[0].getLower().doubleValue(),
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
304 bounds[0].getUpper().doubleValue()),
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
305 new Range(
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
306 bounds[1].getLower().doubleValue(),
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
307 bounds[1].getUpper().doubleValue())
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
308 };
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
309 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
310
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
311
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
312 @Override
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
313 public Bounds getXBounds(int axis) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
314 return xRanges.get(axis);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
315 }
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
316
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
317
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
318 @Override
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
319 protected void setXBounds(int axis, Bounds bounds) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
320 xRanges.put(axis, bounds);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
321 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
322
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
323
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
324 @Override
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
325 public Bounds getYBounds(int axis) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
326 return yRanges.get(axis);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
327 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
328
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
329
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
330 @Override
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
331 protected void setYBounds(int axis, Bounds bounds) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
332 yRanges.put(axis, bounds);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
333 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
334
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
335
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
336 public Bounds[] getBoundsForAxis(int index) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
337 logger.debug("Return x and y bounds for axis at: " + index);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
338
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
339 Bounds rx = getXBounds(Integer.valueOf(index));
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
340 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
341
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
342 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
343 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
344 " Using default values: 0 - 1.");
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
345 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
346 }
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
347
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
348 if (ry == null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
349 logger.warn("Range for y axis not set." +
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
350 " Using default values: 0 - 1.");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
351 ry = new DoubleBounds(0l, 1l);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
352 }
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
353
2400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
354 logger.debug("X Bounds at index " + index + " is: " + rx);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
355 logger.debug("Y Bounds at index " + index + " is: " + ry);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
356
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
357 return new Bounds[] {rx, ry};
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
358 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
359
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
360
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
361 public Bounds getDomainAxisRange() {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
362 String[] ranges = getDomainAxisRangeFromRequest();
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
363
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
364 if (ranges == null || ranges.length < 2) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
365 logger.debug("No zoom range for domain axis specified.");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
366 return null;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
367 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
368
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
369 if (ranges[0] == null || ranges[1] == null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
370 logger.warn("Invalid ranges for domain axis specified!");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
371 return null;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
372 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
373
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
374 try {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
375 double lower = Double.parseDouble(ranges[0]);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
376 double upper = Double.parseDouble(ranges[1]);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
377
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
378 return new DoubleBounds(lower, upper);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
379 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
380 catch (NumberFormatException nfe) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
381 logger.warn("Invalid ranges for domain axis specified: " + nfe);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
382 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
383
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
384 return null;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
385 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
386
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
387
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
388 public Bounds getValueAxisRange() {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
389 String[] ranges = getValueAxisRangeFromRequest();
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
390
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
391 if (ranges == null || ranges.length < 2) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
392 logger.debug("No zoom range for domain axis specified.");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
393 return null;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
394 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
395
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
396 if (ranges[0] == null || ranges[1] == null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
397 logger.warn("Invalid ranges for domain axis specified!");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
398 return null;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
399 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
400
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
401 try {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
402 double lower = Double.parseDouble(ranges[0]);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
403 double upper = Double.parseDouble(ranges[1]);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
404
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
405 return new DoubleBounds(lower, upper);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
406 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
407 catch (NumberFormatException nfe) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
408 logger.warn("Invalid ranges for domain axis specified: " + nfe);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
409 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
410
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
411 return null;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
412 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
413
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
414
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
415 protected void adaptZoom(XYPlot plot) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
416 logger.debug("Adapt zoom of Timeseries chart.");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
417
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
418 zoomX(plot, plot.getDomainAxis(), getXRange(0), getDomainAxisRange());
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
419
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
420 Bounds valueAxisBounds = getValueAxisRange();
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
421
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
422 for (int j = 0, n = plot.getRangeAxisCount(); j < n; j++) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
423 zoomY(
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
424 plot,
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
425 plot.getRangeAxis(j),
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
426 getYBounds(j),
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
427 valueAxisBounds);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
428 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
429 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
430
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
431
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
432 protected void zoomX(
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
433 XYPlot plot,
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
434 ValueAxis axis,
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
435 Bounds total,
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
436 Bounds user
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
437 ) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
438 if (logger.isDebugEnabled()) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
439 logger.debug("== Zoom X axis ==");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
440 logger.debug(" Total axis range : " + total);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
441 logger.debug(" User defined range: " + user);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
442 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
443
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
444 if (user != null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
445 long min = total.getLower().longValue();
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
446 long max = total.getUpper().longValue();
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
447 long diff = max > min ? max - min : min - max;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
448
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
449 long newMin = (long) Math.round(min + user.getLower().doubleValue() * diff);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
450 long newMax = (long) Math.round(min + user.getUpper().doubleValue() * diff);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
451
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
452 TimeBounds newBounds = new TimeBounds(newMin, newMax);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
453
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
454 logger.debug(" Zoom axis to: " + newBounds);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
455
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
456 newBounds.applyBounds(axis, AXIS_SPACE);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
457 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
458 else {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
459 logger.debug("No user specified zoom values found!");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
460 total.applyBounds(axis, AXIS_SPACE);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
461 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
462 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
463
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
464
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
465 protected void zoomY(
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
466 XYPlot plot,
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
467 ValueAxis axis,
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
468 Bounds total,
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
469 Bounds user
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
470 ) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
471 if (logger.isDebugEnabled()) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
472 logger.debug("== Zoom Y axis ==");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
473 logger.debug(" Total axis range : " + total);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
474 logger.debug(" User defined range: " + user);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
475 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
476
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
477 if (user != null) {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
478 double min = total.getLower().doubleValue();
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
479 double max = total.getUpper().doubleValue();
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
480 double diff = max > min ? max - min : min - max;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
481
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
482 double newMin = min + user.getLower().doubleValue() * diff;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
483 double newMax = min + user.getUpper().doubleValue() * diff;
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
484
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
485 DoubleBounds newBounds = new DoubleBounds(newMin, newMax);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
486
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
487 logger.debug(" Zoom axis to: " + newBounds);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
488
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
489 newBounds.applyBounds(axis, AXIS_SPACE);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
490 }
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
491 else {
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
492 logger.debug("No user specified zoom values found!");
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
493 total.applyBounds(axis, AXIS_SPACE);
f55984858952 Enabled zooming for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2261
diff changeset
494 }
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
495 }
2586
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
496
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
497
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
498 /**
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
499 * 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
500 * X axis.
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
501 *
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
502 * @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
503 */
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
504 protected void adjustAxes(XYPlot plot) {
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
505 ValueAxis xaxis = plot.getDomainAxis();
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
506
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
507 ChartSettings chartSettings = getChartSettings();
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
508 if (chartSettings == null) {
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
509 return;
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
510 }
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
511
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
512 Font labelFont = new Font(
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
513 DEFAULT_FONT_NAME,
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
514 Font.BOLD,
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
515 getXAxisLabelFontSize());
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
516
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
517 xaxis.setLabelFont(labelFont);
8cd6358eb7f8 Enabeld axes label font sizes for timeseries charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2554
diff changeset
518 }
2233
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
519 }
958a10e2e246 Added a new ChartGenerator for timeseries charts and refactored some code in XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
520 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org