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

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

http://dive4elements.wald.intevation.org