Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/DischargeCurveGenerator.java @ 9040:5294114b1df4
Fixed/changed some FIXMEs/TODOs
author | gernotbelger |
---|---|
date | Wed, 02 May 2018 12:19:31 +0200 |
parents | 5e38e2924c07 |
children | 1cc7653ca84f 0a5239a1e46e |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
9 package org.dive4elements.river.exports; |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
11 import java.util.ArrayList; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
12 import java.util.List; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
13 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
15 import org.dive4elements.river.artifacts.D4EArtifact; |
8726
7f1fb07e4e3d
Remove misuse of method for determining gauge for a long range.
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
16 import org.dive4elements.river.artifacts.access.RiverAccess; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
17 import org.dive4elements.river.artifacts.model.FacetTypes; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
18 import org.dive4elements.river.artifacts.model.WQKms; |
8181
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
7930
diff
changeset
|
19 import org.dive4elements.river.exports.process.MiscDischargeProcessor; |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
20 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
21 import org.dive4elements.river.jfree.Bounds; |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
22 import org.dive4elements.river.jfree.DoubleBounds; |
5864
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
23 import org.dive4elements.river.jfree.RiverAnnotation; |
6453
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
24 import org.dive4elements.river.jfree.StickyAxisAnnotation; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
25 import org.dive4elements.river.jfree.StyledXYSeries; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
26 import org.dive4elements.river.model.Gauge; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
27 import org.dive4elements.river.model.River; |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
28 import org.dive4elements.river.themes.ThemeDocument; |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
29 |
7701
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
30 import org.dive4elements.artifactdatabase.state.State; |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
31 import org.dive4elements.river.artifacts.GaugeDischargeCurveArtifact; |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
32 |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 import org.apache.log4j.Logger; |
6453
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
34 import org.jfree.chart.annotations.XYTextAnnotation; |
728
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
35 import org.jfree.chart.axis.ValueAxis; |
375
60f63539d004
Ws and Qs of a longitudinal section chart are mapped to an own range axis now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
369
diff
changeset
|
36 import org.jfree.chart.plot.XYPlot; |
728
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
37 import org.jfree.data.Range; |
923
7ca4a287cd0e
#135 Modified the way to store datasets for different chart axes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
743
diff
changeset
|
38 import org.jfree.data.xy.XYSeries; |
1103
e0243627ba62
Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1070
diff
changeset
|
39 |
2302
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
40 |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 /** |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 * An OutGenerator that generates discharge curves. |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 * |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 */ |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
46 public class DischargeCurveGenerator |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
47 extends XYChartGenerator |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
48 implements FacetTypes { |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 |
6882
a77dca301419
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6739
diff
changeset
|
50 /** Beware, in this implementation, the W axis is also in cm! */ |
1933
9e9cfc036a3f
Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
51 public static enum YAXIS { |
6453
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
52 WCm(0), |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
53 W(1); |
1933
9e9cfc036a3f
Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
54 protected int idx; |
9e9cfc036a3f
Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
55 private YAXIS(int c) { |
9e9cfc036a3f
Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
56 idx = c; |
9e9cfc036a3f
Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
57 } |
9e9cfc036a3f
Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
58 } |
9e9cfc036a3f
Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
59 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
60 /** The log used in this generator. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
61 private static Logger log = |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 Logger.getLogger(DischargeCurveGenerator.class); |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 |
408
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
64 public static final String I18N_CHART_TITLE = |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
65 "chart.discharge.curve.title"; |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
66 |
414
0385bcc4229a
Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
408
diff
changeset
|
67 public static final String I18N_CHART_SUBTITLE = |
0385bcc4229a
Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
408
diff
changeset
|
68 "chart.discharge.curve.subtitle"; |
0385bcc4229a
Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
408
diff
changeset
|
69 |
408
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
70 public static final String I18N_XAXIS_LABEL = |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
71 "chart.discharge.curve.xaxis.label"; |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
72 |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
73 public static final String I18N_YAXIS_LABEL = |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
74 "chart.discharge.curve.yaxis.label"; |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
75 |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
76 public static final String I18N_CHART_TITLE_DEFAULT = "Abflusskurven"; |
664
e006da5679d2
s@m³/s@m\u00b3/s@
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
454
diff
changeset
|
77 public static final String I18N_XAXIS_LABEL_DEFAULT = "Q [m\u00b3/s]"; |
408
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
78 public static final String I18N_YAXIS_LABEL_DEFAULT = "W [cm]"; |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
79 |
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
80 |
6445
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
81 /** |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
82 * Returns the PNP (Datum) of gauge, if at gauge, 0 otherwise. |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
83 */ |
8856 | 84 public static double getCurrentGaugeDatum( |
85 double km, | |
86 D4EArtifact artifact, | |
87 double tolerance | |
88 ) { | |
6739
be8a5e1911ed
issue1418: Fetch correct (not necessarily first) gauge
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6559
diff
changeset
|
89 // Look if there is a gauge at chosen km: |
be8a5e1911ed
issue1418: Fetch correct (not necessarily first) gauge
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6559
diff
changeset
|
90 // Get gauge which is defined for km |
8726
7f1fb07e4e3d
Remove misuse of method for determining gauge for a long range.
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
91 Gauge gauge = new RiverAccess(artifact).getRiver() |
7f1fb07e4e3d
Remove misuse of method for determining gauge for a long range.
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
92 .determineGaugeAtStation(km); |
6939
765cf5fe26c3
DischargeCurveGenerator: Prevent NPE when no gauge can be found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6905
diff
changeset
|
93 if (gauge == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
94 log.error("No Gauge could be found at station " + km + "!"); |
6939
765cf5fe26c3
DischargeCurveGenerator: Prevent NPE when no gauge can be found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6905
diff
changeset
|
95 return 0d; |
765cf5fe26c3
DischargeCurveGenerator: Prevent NPE when no gauge can be found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6905
diff
changeset
|
96 } |
6445
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
97 double subtractPNP = 0d; |
6739
be8a5e1911ed
issue1418: Fetch correct (not necessarily first) gauge
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6559
diff
changeset
|
98 // Compare to km. |
6463
378b0d780e36
add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6453
diff
changeset
|
99 if (Math.abs(km - gauge.getStation().doubleValue()) < tolerance) { |
6445
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
100 subtractPNP = gauge.getDatum().doubleValue(); |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
101 } |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
102 return subtractPNP; |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
103 } |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
104 |
6453
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
105 |
6882
a77dca301419
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6739
diff
changeset
|
106 /** Get the current Gauge datum with default distance tolerance. */ |
6445
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
107 public double getCurrentGaugeDatum() { |
6463
378b0d780e36
add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6453
diff
changeset
|
108 return getCurrentGaugeDatum(getRange()[0], |
378b0d780e36
add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6453
diff
changeset
|
109 (D4EArtifact) getMaster(), 1e-4); |
6445
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
110 } |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
111 |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
112 |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
113 /** Overriden to show second axis also if no visible data present. */ |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
114 @Override |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
115 protected void adjustAxes(XYPlot plot) { |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
116 super.adjustAxes(plot); |
7701
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
117 // XXX Hacking around that there were two axes shown in official Gauge |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
118 // Discharge, the one from the WINFO module. |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
119 // This should be made unecessary in a Q Diagram refactoring with |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
120 // decent inheritance. |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
121 if (getMaster() instanceof GaugeDischargeCurveArtifact) { |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
122 GaugeDischargeCurveArtifact myMaster = |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
123 (GaugeDischargeCurveArtifact) getMaster(); |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
124 State state = myMaster.getCurrentState(context); |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
125 if (myMaster.STATIC_STATE_NAME.equals(state.getID())) { |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
126 return; |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
127 } |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
128 } |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
129 // End Hack |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
130 |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
131 if (getCurrentGaugeDatum() != 0d) { |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
132 // Show the W[*m] axis even if there is no data. |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
133 plot.setRangeAxis(1, createYAxis(YAXIS.W.idx)); |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
134 syncWAxisRanges(); |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
135 } |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
136 } |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
137 |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
138 protected void syncWAxisRanges() { |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
139 // Syncronizes the ranges of both W Axes to make sure |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
140 // that the Data matches for both axes. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
141 Bounds boundsInMGauge = getYBounds(YAXIS.W.idx); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
142 Bounds boundsInCM = getYBounds(YAXIS.WCm.idx); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
143 |
7701
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
144 if (boundsInMGauge == null || boundsInCM == null) { |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
145 // One axis does not exist. Nothing to sync |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
146 return; |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
147 } |
e47b1ea5baf4
(issue1579) Add Hack to not syncronize and add second axis in static GaugeDischarge
Andre Heinecke <aheinecke@intevation.de>
parents:
7691
diff
changeset
|
148 |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
149 // XXX Q-Symetry: I am assuming here that there can only |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
150 // be a fixed Range for WinM as this is currently the only |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
151 // thing that is configureable. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
152 Range fixedWinMRange = getRangeForAxisFromSettings( |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
153 getYAxisWalker().getId(YAXIS.W.idx)); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
154 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
155 // The combination of Range and Bounds is crazy.. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
156 if (fixedWinMRange != null) { |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
157 boundsInMGauge = new DoubleBounds(fixedWinMRange.getLowerBound(), |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
158 fixedWinMRange.getUpperBound()); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
159 } |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
160 |
8856 | 161 log.debug("Syncing Axis Bounds. Bounds W: " |
162 + boundsInMGauge.toString() | |
163 + " Bounds Wcm: " + boundsInCM.toString()); | |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
164 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
165 double datum = getCurrentGaugeDatum(); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
166 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
167 // Convert boundsInMGauge to Datum+cm |
8856 | 168 double convertedLower = |
169 ((Double)boundsInMGauge.getLower() - datum) * 100; | |
170 double convertedUpper = | |
171 ((Double)boundsInMGauge.getUpper() - datum) * 100; | |
172 Bounds convertedBounds = | |
173 new DoubleBounds(convertedLower, convertedUpper); | |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
174 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
175 // Now combine both Ranges |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
176 boundsInCM = boundsInCM.combine(convertedBounds); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
177 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
178 // Recalculate absolute bounds |
8856 | 179 boundsInMGauge = new DoubleBounds( |
180 (Double)boundsInCM.getLower() / 100d + datum, | |
181 (Double)boundsInCM.getUpper() / 100d + datum); | |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
182 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
183 // Set the new combined bounds |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
184 setYBounds(YAXIS.W.idx, boundsInMGauge); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
185 setYBounds(YAXIS.WCm.idx, boundsInCM); |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
186 log.debug("Synced Bounds W: " + boundsInMGauge.toString() + |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
187 " Bounds Wcm: " + boundsInCM.toString()); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
188 } |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
189 |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
190 public DischargeCurveGenerator() { |
348
635af5381a4d
Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
299
diff
changeset
|
191 super(); |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
192 } |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
193 |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
194 |
2000
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
195 @Override |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
196 protected YAxisWalker getYAxisWalker() { |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
197 return new YAxisWalker() { |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
198 @Override |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
199 public int length() { |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
200 return YAXIS.values().length; |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
201 } |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
202 |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
203 @Override |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
204 public String getId(int idx) { |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
205 YAXIS[] yaxes = YAXIS.values(); |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
206 return yaxes[idx].toString(); |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
207 } |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
208 }; |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
209 } |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
210 |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
211 |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
212 /** |
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
213 * Returns always null to suppress subtitles. |
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
214 */ |
2048
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2000
diff
changeset
|
215 @Override |
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2000
diff
changeset
|
216 protected String getDefaultChartTitle() { |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
217 return null; |
414
0385bcc4229a
Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
408
diff
changeset
|
218 } |
0385bcc4229a
Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
408
diff
changeset
|
219 |
0385bcc4229a
Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
408
diff
changeset
|
220 |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
221 @Override |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
222 protected String getDefaultXAxisLabel() { |
408
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
223 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); |
369
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
224 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
225 |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
226 @Override |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
227 protected String getDefaultYAxisLabel(int pos) { |
408
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
228 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT); |
369
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
229 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
230 |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
231 |
2302
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
232 /* TODO is this one really needed? */ |
728
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
233 @Override |
8856 | 234 protected boolean zoomX( |
235 XYPlot plot, | |
236 ValueAxis axis, | |
237 Bounds bounds, | |
238 Range x | |
239 ) { | |
2587
bece6f604899
Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2325
diff
changeset
|
240 boolean zoomin = super.zoom(plot, axis, bounds, x); |
728
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
241 |
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
242 if (!zoomin) { |
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
243 axis.setLowerBound(0d); |
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
244 } |
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
245 |
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
246 return zoomin; |
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
247 } |
56bcf56b1fe0
#157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
723
diff
changeset
|
248 |
6526 | 249 /** Translate River annotations if a gauge. */ |
6453
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
250 public void translateRiverAnnotation(RiverAnnotation riverAnnotation) { |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
251 if (getCurrentGaugeDatum() == 0d) { |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
252 return; |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
253 } |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
254 log.debug("Translate some river annotation."); |
6453
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
255 double translate = getCurrentGaugeDatum(); |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
256 double factor = 100d; |
8856 | 257 for (StickyAxisAnnotation annotation: |
258 riverAnnotation.getAxisTextAnnotations() | |
259 ){ | |
6453
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
260 if (!annotation.atX()) { |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
261 annotation.setPos((annotation.getPos() - translate)*factor); |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
262 } |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
263 } |
8856 | 264 for ( |
265 XYTextAnnotation annotation: riverAnnotation.getTextAnnotations() | |
266 ) { | |
6453
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
267 annotation.setY((annotation.getY() - translate)*factor); |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
268 } |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
269 } |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
270 |
2302
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
271 |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
272 @Override |
1684
bdb05dc9b763
Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1680
diff
changeset
|
273 public void doOut( |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
274 ArtifactAndFacet artifactFacet, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
275 ThemeDocument theme, |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
276 boolean visible |
1684
bdb05dc9b763
Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1680
diff
changeset
|
277 ) { |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
278 String name = artifactFacet.getFacetName(); |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
279 log.debug("DischargeCurveGenerator.doOut: " + name); |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
280 |
8856 | 281 MiscDischargeProcessor dProcessor = new MiscDischargeProcessor( |
282 getRange()[0]); | |
6899
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
283 if (dProcessor.canHandle(name)) { |
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
284 // In Base DischargeCurveGenerator, always at gauge, use WCm axis. |
8856 | 285 dProcessor.doOut( |
286 this, artifactFacet, theme, visible, YAXIS.WCm.idx); | |
6899
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
287 } |
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
288 else if (name.equals(DISCHARGE_CURVE) |
3997
a9cdd5fae878
Add Facet type for GaugeDischargeCurveArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3409
diff
changeset
|
289 || name.equals(GAUGE_DISCHARGE_CURVE)) { |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
290 doDischargeOut( |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
291 (D4EArtifact)artifactFacet.getArtifact(), |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
292 artifactFacet.getData(context), |
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
293 artifactFacet.getFacetDescription(), |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
294 theme, |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
295 visible); |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
296 } |
2302
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
297 else if (FacetTypes.IS.MANUALPOINTS(name)) { |
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
298 doPoints(artifactFacet.getData(context), |
2325
1fcaeced48f2
#485 Fixed broken renaming of chart themes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2302
diff
changeset
|
299 artifactFacet, |
2302
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
300 theme, visible, YAXIS.W.idx); |
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
301 } |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
302 else if (STATIC_WQ.equals(name)) { |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
303 doWQOut(artifactFacet.getData(context), |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
304 artifactFacet, |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
305 theme, |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
306 visible); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
307 } |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
308 else { |
8856 | 309 log.warn("DischargeCurveGenerator.doOut: Unknown facet name: " |
310 + name); | |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
311 return; |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
312 } |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
313 } |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
314 |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
315 |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
316 /** |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
317 * Add series with discharge curve to diagram. |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
318 */ |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
319 protected void doDischargeOut( |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
320 D4EArtifact artifact, |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
321 Object o, |
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
322 String description, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
323 ThemeDocument theme, |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
324 boolean visible) |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
325 { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
326 log.debug("DischargeCurveGenerator.doDischargeOut"); |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
327 WQKms wqkms = (WQKms) o; |
721
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
328 |
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
329 String gaugeName = wqkms.getName(); |
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
330 |
8726
7f1fb07e4e3d
Remove misuse of method for determining gauge for a long range.
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
331 River river = new RiverAccess(artifact).getRiver(); |
721
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
332 |
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
333 if (river == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
334 log.debug("no river found"); |
721
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
335 return; |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
336 } |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
337 |
721
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
338 Gauge gauge = river.determineGaugeByName(gaugeName); |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
339 |
721
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
340 if (gauge == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
341 log.debug("no gauge found"); |
721
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
342 return; |
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
343 } |
454
2c0c22e0935d
Added names for discharge curves (at gauges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
414
diff
changeset
|
344 |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
345 XYSeries series = new StyledXYSeries(description, theme); |
923
7ca4a287cd0e
#135 Modified the way to store datasets for different chart axes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
743
diff
changeset
|
346 |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
347 StyledSeriesBuilder.addPointsQW(series, wqkms); |
923
7ca4a287cd0e
#135 Modified the way to store datasets for different chart axes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
743
diff
changeset
|
348 |
1933
9e9cfc036a3f
Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
349 addAxisSeries(series, YAXIS.W.idx, visible); |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
350 } |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
351 |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
352 /** |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
353 * Add W/Q-Series to plot. |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
354 * @param wqkms actual data |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
355 * @param theme theme to use. |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
356 */ |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
357 protected void doQOut( |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
358 Object wqkms, |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
359 ArtifactAndFacet aaf, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
360 ThemeDocument theme, |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
361 boolean visible |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
362 ) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
363 log.debug("DischargeCurveGenerator: doQOut (add W/Q data)."); |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
364 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
365 |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
366 StyledSeriesBuilder.addPointsQW(series, (WQKms) wqkms); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
367 |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
368 addAxisSeries(series, YAXIS.W.idx, visible); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
369 } |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
370 |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
371 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
372 /** Add a point annotation at given x and y coordinates. */ |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
373 protected void addPointTextAnnotation( |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
374 String title, |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
375 double x, |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
376 double y, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
377 ThemeDocument theme |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
378 ) { |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
379 List<XYTextAnnotation> textAnnos = |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
380 new ArrayList<XYTextAnnotation>(); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
381 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
382 title, |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
383 x, |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
384 y); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
385 textAnnos.add(anno); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
386 RiverAnnotation flysAnno = new RiverAnnotation( |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
387 null, null, null, theme); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
388 flysAnno.setTextAnnotations(textAnnos); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
389 addAnnotations(flysAnno); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
390 } |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
391 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
392 |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
393 /** |
6981
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
394 * Return true if all values in data[0] are smaller than zero |
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
395 * (in imported data they are set to -1 symbolically). |
6889
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
396 * Return false if data is null or empty |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
397 */ |
7930
d3a4b0d5bcd8
Small Java related cosmetics.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7701
diff
changeset
|
398 private static boolean hasNoDischarge(double[][] data) { |
6889
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
399 if (data == null || data.length == 0) { |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
400 return false; |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
401 } |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
402 |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
403 double[] qs = data[0]; |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
404 for (double q: qs) { |
6981
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
405 if (q > 0d) { |
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
406 return false; |
6889
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
407 } |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
408 } |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
409 |
6981
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
410 return true; |
6889
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
411 } |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
412 |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
413 |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
414 /** |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
415 * Add WQ Data to plot. |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
416 * @param wq data as double[][] |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
417 */ |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
418 protected void doWQOut( |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
419 Object wq, |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
420 ArtifactAndFacet aaf, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
421 ThemeDocument theme, |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
422 boolean visible |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
423 ) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8194
diff
changeset
|
424 log.debug("DischargeCurveGenerator: doWQOut"); |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
425 double [][] data = (double [][]) wq; |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
426 String title = aaf.getFacetDescription(); |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
427 |
6889
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
428 double translate = getCurrentGaugeDatum(); |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
429 |
6981
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
430 // If no Q values (i.e. all -1) found, add annotations. |
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
431 if (hasNoDischarge(data)) { |
8856 | 432 List<StickyAxisAnnotation> xy = |
433 new ArrayList<StickyAxisAnnotation>(); | |
6889
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
434 |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
435 for (double y: data[1]) { |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
436 if (translate != 0d) { |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
437 y = (y-translate)*100d; |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
438 } |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
439 |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
440 xy.add(new StickyAxisAnnotation( |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
441 title, |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
442 (float) y, |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
443 StickyAxisAnnotation.SimpleAxis.Y_AXIS)); |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
444 } |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
445 |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
446 doAnnotations( |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
447 new RiverAnnotation(title, xy), |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
448 aaf, theme, visible); |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
449 return; |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
450 } |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
451 |
feaf76b70190
issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6888
diff
changeset
|
452 // Otherwise add points. |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
453 XYSeries series = new StyledXYSeries(title, theme); |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
454 |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
455 if (translate != 0d) { |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
456 StyledSeriesBuilder.addPointsQW(series, data, -translate, 100d); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
457 addAxisSeries(series, YAXIS.W.idx, visible); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
458 } |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
459 else { |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
460 StyledSeriesBuilder.addPoints(series, data, true); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
461 addAxisSeries(series, YAXIS.W.idx, visible); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
462 } |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
463 |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
464 if (visible && theme.parseShowPointLabel() |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
465 && data != null && data.length != 0) { |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
466 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
467 double[] xs = data[0]; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
468 double[] ys = data[1]; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
469 for (int i = 0; i < xs.length; i++) { |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
470 double x = xs[i]; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
471 double y = ys[i]; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
472 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
473 if (translate != 0d) { |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
474 y = (y-translate)*100d; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
475 } |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
476 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
477 addPointTextAnnotation(title, x, y, theme); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
478 } |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
479 } |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
480 } |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
481 } |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
482 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |