Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/TimeseriesChartGenerator.java @ 4255:670e98f5a441
Fixed leak while merging facets.
The ThemeList that is used by OutputHelper to sort the
Facets for an Output now uses a list to store the ManagedFacets.
The correct order is made up by sorting the List using
Collections.sort() function of the Java JDK. Therfore, the
ManagedFacet class implements the Comparable interface. The
return value of its compareTo(other) method depends on the
value of the 'position' field.
author | Ingo Weinzierl <weinzierl.ingo@googlemail.com> |
---|---|
date | Thu, 25 Oct 2012 14:01:46 +0200 |
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 : |