Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixWQCurveGenerator.java @ 7691:fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
The SyncNumberAxis was completely broken. It only synced
in one direction and even that did not work correctly when
data was added to the axis (and the syncAxis rescaled but
forgot the old axis) then there were lots of ways to bypass
that scaling. And i also think the trans calculation was wrong.
It has been replaced by a "mostly" simple method to just keep
the W in M and W in CM+Datum axes in sync. I say "Mostly" because
it had to deal with the Bounds interface.
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 13 Dec 2013 19:03:00 +0100 |
parents | 4dbbdf0c8b2c |
children | 75ef6963f1c9 |
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:
5978
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:
5978
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:
5740
diff
changeset
|
9 package org.dive4elements.river.exports.fixings; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
10 |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
11 import java.awt.BasicStroke; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
12 import java.awt.Color; |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
13 import java.awt.Font; |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
14 import java.text.DateFormat; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
15 import java.util.ArrayList; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
16 import java.util.List; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
17 |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
18 import org.apache.log4j.Logger; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
19 import org.jfree.chart.JFreeChart; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
20 import org.jfree.chart.annotations.XYTextAnnotation; |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
21 import org.jfree.chart.axis.NumberAxis; |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
22 import org.jfree.chart.plot.Marker; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
23 import org.jfree.chart.plot.ValueMarker; |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
24 import org.jfree.chart.plot.XYPlot; |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
25 import org.jfree.chart.title.TextTitle; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
26 import org.jfree.data.xy.XYSeries; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
27 import org.jfree.ui.RectangleAnchor; |
3911
36507c71725b
W(Q) chart: q sectors are now black and labeled by default
Christian Lins <christian.lins@intevation.de>
parents:
3770
diff
changeset
|
28 import org.jfree.ui.RectangleInsets; |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
29 import org.jfree.ui.TextAnchor; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
30 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
31 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
32 import org.dive4elements.artifactdatabase.state.Facet; |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
33 import org.dive4elements.river.artifacts.D4EArtifact; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
34 import org.dive4elements.river.artifacts.StaticWKmsArtifact; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
35 import org.dive4elements.river.artifacts.WINFOArtifact; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
36 import org.dive4elements.river.artifacts.access.FixAnalysisAccess; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
37 import org.dive4elements.river.artifacts.model.DateRange; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
38 import org.dive4elements.river.artifacts.model.FacetTypes; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
39 import org.dive4elements.river.artifacts.model.NamedDouble; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
40 import org.dive4elements.river.artifacts.model.QWDDateRange; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
41 import org.dive4elements.river.artifacts.model.WKms; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
42 import org.dive4elements.river.artifacts.model.WQKms; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
43 import org.dive4elements.river.artifacts.model.fixings.FixFunction; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
44 import org.dive4elements.river.artifacts.model.fixings.FixWQCurveFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
45 import org.dive4elements.river.artifacts.model.fixings.QWD; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
46 import org.dive4elements.river.artifacts.model.fixings.QWI; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
47 import org.dive4elements.river.artifacts.resources.Resources; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
48 import org.dive4elements.river.exports.ChartGenerator; |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
49 import org.dive4elements.river.exports.DischargeCurveGenerator; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
50 import org.dive4elements.river.exports.StyledSeriesBuilder; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
51 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation; |
5864
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
52 import org.dive4elements.river.jfree.RiverAnnotation; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
53 import org.dive4elements.river.jfree.JFreeUtil; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
54 import org.dive4elements.river.jfree.StickyAxisAnnotation; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
55 import org.dive4elements.river.jfree.StyledXYSeries; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
56 import org.dive4elements.river.model.Gauge; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5740
diff
changeset
|
57 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:
6876
diff
changeset
|
58 import org.dive4elements.river.themes.ThemeDocument; |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5864
diff
changeset
|
59 import org.dive4elements.river.utils.RiverUtils; |
7542
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
60 import org.dive4elements.river.java2d.ShapeUtils; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
61 |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
62 import org.dive4elements.river.jfree.Bounds; |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
63 import org.dive4elements.river.jfree.DoubleBounds; |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
64 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
65 import org.jfree.data.Range; |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
66 |
3254
9a4707ec7800
Add styles for W(t) chart domain markers
Christian Lins <christian.lins@intevation.de>
parents:
3215
diff
changeset
|
67 /** |
3286
f062b5a90e26
Add showpointlabel style attribute
Christian Lins <christian.lins@intevation.de>
parents:
3256
diff
changeset
|
68 * Generator for WQ fixing charts. |
3254
9a4707ec7800
Add styles for W(t) chart domain markers
Christian Lins <christian.lins@intevation.de>
parents:
3215
diff
changeset
|
69 * @author <a href="mailto:christian.lins@intevation.de">Christian Lins</a> |
9a4707ec7800
Add styles for W(t) chart domain markers
Christian Lins <christian.lins@intevation.de>
parents:
3215
diff
changeset
|
70 */ |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3073
diff
changeset
|
71 public class FixWQCurveGenerator |
3215
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3212
diff
changeset
|
72 extends FixChartGenerator |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3212
diff
changeset
|
73 implements FacetTypes |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
74 { |
4147
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4143
diff
changeset
|
75 /** Private logger. */ |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
76 private static Logger logger = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
77 Logger.getLogger(FixWQCurveGenerator.class); |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
78 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
79 public static final String I18N_CHART_TITLE = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
80 "chart.fixings.wq.title"; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
81 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
82 public static final String I18N_CHART_SUBTITLE = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
83 "chart.fixings.wq.subtitle"; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
84 |
3410
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
85 public static final String I18N_CHART_SUBTITLE1 = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
86 "chart.fixings.wq.subtitle1"; |
3410
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
87 |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
88 public static final String I18N_XAXIS_LABEL = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
89 "chart.fixings.wq.xaxis.label"; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
90 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
91 public static final String I18N_YAXIS_LABEL = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
92 "chart.fixings.wq.yaxis.label"; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
93 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
94 public static final String I18N_CHART_TITLE_DEFAULT = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
95 "Fixierungsanalyse"; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
96 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
97 public static final String I18N_XAXIS_LABEL_DEFAULT = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
98 "Q [m\u00B3/s]"; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
99 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
100 public static final String I18N_YAXIS_LABEL_DEFAULT = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
101 "W [NN + m]"; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
102 |
5739
9950cbb7dba3
FixWQCurveGenerator: issue1149, show calculated wq as points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5731
diff
changeset
|
103 public static final double EPSILON = 0.001d; |
9950cbb7dba3
FixWQCurveGenerator: issue1149, show calculated wq as points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5731
diff
changeset
|
104 |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
105 public static enum YAXIS { |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
106 WCm(0), |
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
107 W(1); |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
108 public int idx; |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
109 private YAXIS(int c) { |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
110 idx = c; |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
111 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
112 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
113 |
3406
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
114 |
4147
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4143
diff
changeset
|
115 /** Needed to access data to create subtitle. */ |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
116 protected D4EArtifact artifact; |
3406
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
117 |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
118 /** Returns value != 0 if the current km is not at a gauge. */ |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
119 public double getCurrentGaugeDatum() { |
7525
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
120 Object ckm = context.getContextValue(CURRENT_KM); |
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
121 if (ckm != null) { |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
122 return DischargeCurveGenerator.getCurrentGaugeDatum( |
7525
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
123 (Double) ckm, |
6531
52d160b16a4c
FixWQCurveGenerator: Set same tolerance to "at Gauge?"-definition as in other w/q cases.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6530
diff
changeset
|
124 (D4EArtifact) getMaster(), 1e-4); |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
125 } |
7525
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
126 return 0d; |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
127 } |
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
128 |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
129 /** 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:
6542
diff
changeset
|
130 @Override |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
131 protected void adjustAxes(XYPlot plot) { |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
132 super.adjustAxes(plot); |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
133 if (getCurrentGaugeDatum() != 0d) { |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
134 // 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:
6542
diff
changeset
|
135 plot.setRangeAxis(1, createYAxis(YAXIS.W.idx)); |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
136 syncWAxisRanges(); |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
137 } |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
138 } |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6542
diff
changeset
|
139 |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
140 // XXX This is a copy of DischargeCurveGenerator syncWAxisRanges |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
141 // even without fancy Q Symetry this class should inherit |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
142 // from there.. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
143 protected void syncWAxisRanges() { |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
144 // Syncronizes the ranges of both W Axes to make sure |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
145 // that the Data matches for both axes. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
146 Bounds boundsInMGauge = getYBounds(YAXIS.W.idx); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
147 Bounds boundsInCM = getYBounds(YAXIS.WCm.idx); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
148 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
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:
7545
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:
7545
diff
changeset
|
151 // thing that is configureable. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
152 Range fixedWinMRange = getRangeForAxisFromSettings( |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
153 getYAxisWalker().getId(YAXIS.W.idx)); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
154 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
155 // The combination of Range and Bounds is crazy.. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
156 if (fixedWinMRange != null) { |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
157 boundsInMGauge = new DoubleBounds(fixedWinMRange.getLowerBound(), |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
158 fixedWinMRange.getUpperBound()); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
159 } |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
160 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
161 logger.debug("Syncing Axis Bounds. Bounds W: " + boundsInMGauge.toString() + |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
162 " Bounds Wcm: " + boundsInCM.toString()); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
163 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
164 double datum = getCurrentGaugeDatum(); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
165 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
166 // Convert boundsInMGauge to Datum+cm |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
167 double convertedLower = ((Double)boundsInMGauge.getLower() - datum) * 100; |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
168 double convertedUpper = ((Double)boundsInMGauge.getUpper() - datum) * 100; |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
169 Bounds convertedBounds = new DoubleBounds(convertedLower, convertedUpper); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
170 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
171 // Now combine both Ranges |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
172 boundsInCM = boundsInCM.combine(convertedBounds); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
173 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
174 // Recalculate absolute bounds |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
175 boundsInMGauge = new DoubleBounds((Double)boundsInCM.getLower() / 100d + datum, |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
176 (Double)boundsInCM.getUpper() / 100d + datum); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
177 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
178 // Set the new combined bounds |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
179 setYBounds(YAXIS.W.idx, boundsInMGauge); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
180 setYBounds(YAXIS.WCm.idx, boundsInCM); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
181 logger.debug("Synced Bounds W: " + boundsInMGauge.toString() + |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
182 " Bounds Wcm: " + boundsInCM.toString()); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
183 } |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
7545
diff
changeset
|
184 |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
185 @Override |
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:
6876
diff
changeset
|
186 public void doOut(ArtifactAndFacet aaf, ThemeDocument doc, boolean visible) { |
4361
7302c635dfda
FixWQCurveGenerator: Refac, extracted a prepareChartData from doOut, to be reused.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4346
diff
changeset
|
187 logger.debug("doOut: " + aaf.getFacetName()); |
7302c635dfda
FixWQCurveGenerator: Refac, extracted a prepareChartData from doOut, to be reused.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4346
diff
changeset
|
188 if (!prepareChartData(aaf, doc, visible)) { |
7302c635dfda
FixWQCurveGenerator: Refac, extracted a prepareChartData from doOut, to be reused.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4346
diff
changeset
|
189 logger.warn("Unknown facet, name " + aaf.getFacetName()); |
7302c635dfda
FixWQCurveGenerator: Refac, extracted a prepareChartData from doOut, to be reused.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4346
diff
changeset
|
190 } |
7302c635dfda
FixWQCurveGenerator: Refac, extracted a prepareChartData from doOut, to be reused.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4346
diff
changeset
|
191 } |
7302c635dfda
FixWQCurveGenerator: Refac, extracted a prepareChartData from doOut, to be reused.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4346
diff
changeset
|
192 |
6472 | 193 /** |
194 * Return true if data could be handled, | |
195 * to be overridden to add more handled data. | |
196 */ | |
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:
6876
diff
changeset
|
197 public boolean prepareChartData(ArtifactAndFacet aaf, ThemeDocument doc, boolean visible) { |
3056
0b5a7a2c3724
Try to workaround some exception in FixWQCurveFacet and FixWQCurveGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3055
diff
changeset
|
198 String name = aaf.getFacetName(); |
0b5a7a2c3724
Try to workaround some exception in FixWQCurveFacet and FixWQCurveGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3055
diff
changeset
|
199 |
6426
ed27a894292a
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6101
diff
changeset
|
200 this.artifact = (D4EArtifact) aaf.getArtifact(); |
3406
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
201 |
3133
6f6a8e5fb7a4
Theme updates for sector average wq curves/points
Christian Lins <christian.lins@intevation.de>
parents:
3132
diff
changeset
|
202 if(name.startsWith(FIX_SECTOR_AVERAGE_WQ)) { |
3056
0b5a7a2c3724
Try to workaround some exception in FixWQCurveFacet and FixWQCurveGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3055
diff
changeset
|
203 doSectorAverageOut(aaf, doc, visible); |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
204 } |
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
205 else if(FIX_ANALYSIS_EVENTS_WQ.equals(name)) { |
3056
0b5a7a2c3724
Try to workaround some exception in FixWQCurveFacet and FixWQCurveGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3055
diff
changeset
|
206 doAnalysisEventsOut(aaf, doc, visible); |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
207 } |
7525
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
208 else if(FIX_REFERENCE_EVENTS_WQ.equals(name) |
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
209 || FIX_EVENTS.equals(name)) { |
3056
0b5a7a2c3724
Try to workaround some exception in FixWQCurveFacet and FixWQCurveGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3055
diff
changeset
|
210 doReferenceEventsOut(aaf, doc, visible); |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
211 } |
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
212 else if(FIX_WQ_CURVE.equals(name)) { |
3056
0b5a7a2c3724
Try to workaround some exception in FixWQCurveFacet and FixWQCurveGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3055
diff
changeset
|
213 doWQCurveOut(aaf, doc, visible); |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
214 } |
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
215 else if(FIX_OUTLIER.equals(name)) { |
3056
0b5a7a2c3724
Try to workaround some exception in FixWQCurveFacet and FixWQCurveGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3055
diff
changeset
|
216 doOutlierOut(aaf, doc, visible); |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
217 } |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
218 else if(QSECTOR.equals(name)) { |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
219 doQSectorOut(aaf, doc, visible); |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
220 } |
7525
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
221 /* |
5731
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
222 else if(FIX_EVENTS.equals(name)) { |
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
223 doEventsOut(aaf, doc, visible); |
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
224 } |
7525
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
225 */ |
4143
58864f4f6e3b
Fix issue946 (own style for wkms annotation facets in wq diagrams).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3911
diff
changeset
|
226 else if(/*STATIC_WKMS_INTERPOL.equals(name) ||*/ |
58864f4f6e3b
Fix issue946 (own style for wkms annotation facets in wq diagrams).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3911
diff
changeset
|
227 STATIC_WKMS_MARKS.equals(name) || |
3587
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
228 STATIC_WKMS.equals(name) || |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
229 HEIGHTMARKS_POINTS.equals(name) ) { |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
230 doWAnnotations( |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
231 aaf.getData(context), |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
232 aaf, |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
233 doc, |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
234 visible); |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
235 } |
4143
58864f4f6e3b
Fix issue946 (own style for wkms annotation facets in wq diagrams).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3911
diff
changeset
|
236 else if (LONGITUDINAL_W.equals(name) || STATIC_WQ.equals(name) |
6492
f3e5c6d6b0a2
issue1383: FixWQCurveGenerator: handle new facet type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6474
diff
changeset
|
237 || STATIC_WKMS_INTERPOL.equals(name) |
f3e5c6d6b0a2
issue1383: FixWQCurveGenerator: handle new facet type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6474
diff
changeset
|
238 || FIX_WQ_LS.equals(name)) { |
3585
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
239 doWQOut(aaf.getData(context), aaf, doc, visible); |
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
240 } |
3588
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
241 else if (name.equals(DISCHARGE_CURVE)) { |
7525
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
242 logger.debug("diso " + name); |
3588
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
243 doDischargeOut( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
244 (WINFOArtifact) aaf.getArtifact(), |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
245 aaf.getData(context), |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
246 aaf.getFacetDescription(), |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
247 doc, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
248 visible); |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
249 } |
5978
ebd6e8e234e0
Added mainvalues to fixanalysis wq curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
250 else if (name.equals(MAINVALUES_W) || name.equals(MAINVALUES_Q)) { |
6527
e1e04db79e3c
issue1370: Translate main values if needed.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6492
diff
changeset
|
251 RiverAnnotation mainValues = (RiverAnnotation) aaf.getData(context); |
5978
ebd6e8e234e0
Added mainvalues to fixanalysis wq curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
252 doAnnotations( |
6527
e1e04db79e3c
issue1370: Translate main values if needed.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6492
diff
changeset
|
253 mainValues, |
5978
ebd6e8e234e0
Added mainvalues to fixanalysis wq curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
254 aaf, |
ebd6e8e234e0
Added mainvalues to fixanalysis wq curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
255 doc, |
ebd6e8e234e0
Added mainvalues to fixanalysis wq curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
256 visible); |
ebd6e8e234e0
Added mainvalues to fixanalysis wq curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
5867
diff
changeset
|
257 } |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
258 else if (FacetTypes.IS.MANUALPOINTS(aaf.getFacetName())) { |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
259 doPoints(aaf.getData(context), |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
260 aaf, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
261 doc, visible, YAXIS.W.idx); |
3588
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
262 } |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
263 else { |
4361
7302c635dfda
FixWQCurveGenerator: Refac, extracted a prepareChartData from doOut, to be reused.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4346
diff
changeset
|
264 return false; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
265 } |
4361
7302c635dfda
FixWQCurveGenerator: Refac, extracted a prepareChartData from doOut, to be reused.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4346
diff
changeset
|
266 return true; |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
267 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
268 |
4361
7302c635dfda
FixWQCurveGenerator: Refac, extracted a prepareChartData from doOut, to be reused.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4346
diff
changeset
|
269 |
6426
ed27a894292a
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6101
diff
changeset
|
270 /** Add sector average points to chart. */ |
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:
6876
diff
changeset
|
271 protected void doSectorAverageOut(ArtifactAndFacet aaf, ThemeDocument doc, boolean visible) { |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
272 logger.debug("doSectorAverageOut"); |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
273 |
3551
e7f1556192b3
Avoid class cast exception in FixWQCurveGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3466
diff
changeset
|
274 QWDDateRange qwdd = (QWDDateRange) aaf.getData(context); |
e7f1556192b3
Avoid class cast exception in FixWQCurveGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3466
diff
changeset
|
275 QWD qwd = qwdd != null ? qwdd.getQWD() : null; |
e7f1556192b3
Avoid class cast exception in FixWQCurveGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3466
diff
changeset
|
276 |
3132
459750878157
Adapt doAverageSectorOut() to reflect changes of corresponding facet.
Christian Lins <christian.lins@intevation.de>
parents:
3110
diff
changeset
|
277 if(qwd != null) { |
3194
e815cf20bab2
Add point labels to W/Q curve
Christian Lins <christian.lins@intevation.de>
parents:
3193
diff
changeset
|
278 addQWSeries(new QWD[] { qwd }, aaf, doc, visible); |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
279 } |
3133
6f6a8e5fb7a4
Theme updates for sector average wq curves/points
Christian Lins <christian.lins@intevation.de>
parents:
3132
diff
changeset
|
280 else { |
6f6a8e5fb7a4
Theme updates for sector average wq curves/points
Christian Lins <christian.lins@intevation.de>
parents:
3132
diff
changeset
|
281 logger.debug("doSectorAverageOut: qwd == null"); |
6f6a8e5fb7a4
Theme updates for sector average wq curves/points
Christian Lins <christian.lins@intevation.de>
parents:
3132
diff
changeset
|
282 } |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
283 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
284 |
6426
ed27a894292a
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6101
diff
changeset
|
285 /** Add analysis event points to chart. */ |
7527
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
286 protected void doAnalysisEventsOut( |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
287 ArtifactAndFacet aaf, |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
288 ThemeDocument doc, |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
289 boolean visible |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
290 ) { |
3194
e815cf20bab2
Add point labels to W/Q curve
Christian Lins <christian.lins@intevation.de>
parents:
3193
diff
changeset
|
291 logger.debug("doAnalysisEventsOut"); |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
292 |
3610
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3596
diff
changeset
|
293 QWD qwd = (QWD)aaf.getData(context); |
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3596
diff
changeset
|
294 |
7527
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
295 if (qwd == null) { |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
296 logger.debug("doAnalysisEventsOut: qwd == null"); |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
297 return; |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
298 } |
3610
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3596
diff
changeset
|
299 |
7527
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
300 double gaugeDatum = getCurrentGaugeDatum(); |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
301 boolean atGauge = gaugeDatum != 0d; |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
302 |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
303 double factor = atGauge ? 100d : 1d; |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
304 |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
305 double w = factor*(qwd.getW()-gaugeDatum); |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
306 |
7545
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
307 // Force empty symbol. |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
308 if (qwd.getInterpolated()) { |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
309 doc = new ThemeDocument(doc); // prevent potential side effects. |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
310 doc.setValue(ThemeDocument.USE_FILL_PAINT, "true"); |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
311 } |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
312 |
7542
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
313 XYSeries series = new StyledXYSeries( |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
314 aaf.getFacetDescription(), |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
315 doc, |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
316 qwd.getInterpolated() |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
317 ? ShapeUtils.INTERPOLATED_SHAPE |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
318 : ShapeUtils.MEASURED_SHAPE); |
7527
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
319 |
7542
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
320 series.add(qwd.getQ(), w); |
7527
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
321 |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
322 addAxisSeries(series, atGauge ? YAXIS.WCm.idx : YAXIS.W.idx, visible); |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
323 |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
324 if (visible && doc.parseShowPointLabel()) { |
7542
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
325 |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
326 List<XYTextAnnotation> textAnnos = new ArrayList<XYTextAnnotation>(); |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
327 |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
328 DateFormat dateFormat = DateFormat.getDateInstance( |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
329 DateFormat.SHORT); |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
330 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
331 dateFormat.format(qwd.getDate()), |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
332 qwd.getQ(), |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
333 w); |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
334 textAnnos.add(anno); |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
335 |
7527
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
336 RiverAnnotation flysAnno = new RiverAnnotation(null, null, null, doc); |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
337 flysAnno.setTextAnnotations(textAnnos); |
0ee545a02204
Simplified code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7525
diff
changeset
|
338 addAnnotations(flysAnno); |
3095
6ea299c208cd
Themes for fixing curves and debug output
Christian Lins <christian.lins@intevation.de>
parents:
3091
diff
changeset
|
339 } |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
340 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
341 |
4323
33d6d4025d0f
FixWQCurveGenerator: Handle extreme_wq_curve facets (stub).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
342 |
6426
ed27a894292a
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6101
diff
changeset
|
343 /** Add reference event points to chart. */ |
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:
6876
diff
changeset
|
344 protected void doReferenceEventsOut(ArtifactAndFacet aaf, ThemeDocument doc, boolean visible) { |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
345 logger.debug("doReferenceEventsOut"); |
3110
88d49a0a55f0
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3108
diff
changeset
|
346 |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
347 QWI qwd = (QWI)aaf.getData(context); |
6868
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
348 if (qwd == null) { |
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
349 logger.debug("doReferenceEventsOut: qwds == null"); |
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
350 return; |
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
351 } |
3610
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3596
diff
changeset
|
352 |
7545
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
353 // Force empty symbol. |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
354 if (qwd.getInterpolated()) { |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
355 doc = new ThemeDocument(doc); // prevent potential side effects. |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
356 doc.setValue(ThemeDocument.USE_FILL_PAINT, "true"); |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
357 } |
4dbbdf0c8b2c
More on flys/issue1585: Do not fill circle for interpolated W/Q points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7542
diff
changeset
|
358 |
7542
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
359 XYSeries series = new StyledXYSeries( |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
360 aaf.getFacetDescription(), |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
361 false, true, doc, |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
362 qwd.getInterpolated() |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
363 ? ShapeUtils.INTERPOLATED_SHAPE |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
364 : ShapeUtils.MEASURED_SHAPE); |
6868
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
365 |
7258
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
366 double gaugeDatum = getCurrentGaugeDatum(); |
6868
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
367 |
7542
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
368 boolean atGauge = gaugeDatum != 0d; |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
369 |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
370 double factor = atGauge ? 100d : 1d; |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
371 double w = factor*(qwd.getW()-gaugeDatum); |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
372 |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
373 series.add(qwd.getQ(), w, false); |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
374 |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
375 if (visible && doc.parseShowPointLabel()) { |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
376 DateFormat dateFormat = DateFormat.getDateInstance( |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
377 DateFormat.SHORT); |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
378 |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
379 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( |
6868
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
380 dateFormat.format(qwd.getDate()), |
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
381 qwd.getQ(), |
7542
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
382 w); |
6868
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
383 |
7542
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
384 List<XYTextAnnotation> textAnnos = new ArrayList<XYTextAnnotation>(); |
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
385 textAnnos.add(anno); |
6868
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
386 RiverAnnotation flysAnno = new RiverAnnotation(null, null, null, doc); |
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
387 flysAnno.setTextAnnotations(textAnnos); |
08e3c22500f3
Fix Analysis: Code simplification in facets.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6687
diff
changeset
|
388 addAnnotations(flysAnno); |
3610
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3596
diff
changeset
|
389 } |
7258
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
390 |
7542
db780379ea82
issue1585: Part 2/2 of patch from Sascha Teichmann to define datapoint shapes.
sascha.teichmann@intevation.de
parents:
7527
diff
changeset
|
391 addAxisSeries(series, atGauge ? YAXIS.WCm.idx : YAXIS.W.idx, visible); |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
392 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
393 |
5740
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
394 |
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
395 private void addPointFromWQKms(WQKms wqkms, |
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:
6876
diff
changeset
|
396 String title, |
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6876
diff
changeset
|
397 ThemeDocument theme, |
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6876
diff
changeset
|
398 boolean visible |
5740
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
399 ) { |
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
400 XYSeries series = new StyledXYSeries(title, theme); |
5731
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
401 Double ckm = (Double) context.getContextValue(CURRENT_KM); |
5739
9950cbb7dba3
FixWQCurveGenerator: issue1149, show calculated wq as points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5731
diff
changeset
|
402 if (wqkms == null || wqkms.getKms().length == 0 || ckm == null) { |
5740
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
403 logger.info("addPointFromWQKms: No event data to show."); |
5739
9950cbb7dba3
FixWQCurveGenerator: issue1149, show calculated wq as points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5731
diff
changeset
|
404 return; |
9950cbb7dba3
FixWQCurveGenerator: issue1149, show calculated wq as points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5731
diff
changeset
|
405 } |
5731
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
406 double[] kms = wqkms.getKms(); |
7260
0b32f8980fed
issue1490: Fix text annotations of latest points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7259
diff
changeset
|
407 double gaugeDatum = getCurrentGaugeDatum(); |
0b32f8980fed
issue1490: Fix text annotations of latest points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7259
diff
changeset
|
408 double factor = (gaugeDatum == 0d) ? 1d : 100d; |
5731
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
409 for (int i = 0 ; i< kms.length; i++) { |
5739
9950cbb7dba3
FixWQCurveGenerator: issue1149, show calculated wq as points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5731
diff
changeset
|
410 if (Math.abs(kms[i] - ckm) <= EPSILON) { |
6876
a071f0a80883
FixA W/Q Diagram: Allow duplicate points. It should work but it doesn't. :-/
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6868
diff
changeset
|
411 series.add(wqkms.getQ(i), wqkms.getW(i), false); |
5731
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
412 addAxisSeries(series, YAXIS.W.idx, visible); |
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:
6876
diff
changeset
|
413 if(visible && theme.parseShowPointLabel()) { |
6542
c5945aca0c8d
issue1149: Be able to add label/annotation to event points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6531
diff
changeset
|
414 List<XYTextAnnotation> textAnnos = new ArrayList<XYTextAnnotation>(); |
c5945aca0c8d
issue1149: Be able to add label/annotation to event points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6531
diff
changeset
|
415 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( |
c5945aca0c8d
issue1149: Be able to add label/annotation to event points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6531
diff
changeset
|
416 title, |
c5945aca0c8d
issue1149: Be able to add label/annotation to event points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6531
diff
changeset
|
417 wqkms.getQ(i), |
7260
0b32f8980fed
issue1490: Fix text annotations of latest points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7259
diff
changeset
|
418 factor*(wqkms.getW(i)-gaugeDatum)); |
6542
c5945aca0c8d
issue1149: Be able to add label/annotation to event points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6531
diff
changeset
|
419 textAnnos.add(anno); |
c5945aca0c8d
issue1149: Be able to add label/annotation to event points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6531
diff
changeset
|
420 RiverAnnotation flysAnno = new RiverAnnotation(null, null, null, theme); |
c5945aca0c8d
issue1149: Be able to add label/annotation to event points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6531
diff
changeset
|
421 flysAnno.setTextAnnotations(textAnnos); |
c5945aca0c8d
issue1149: Be able to add label/annotation to event points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6531
diff
changeset
|
422 addAnnotations(flysAnno); |
c5945aca0c8d
issue1149: Be able to add label/annotation to event points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6531
diff
changeset
|
423 } |
5731
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
424 return; |
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
425 } |
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
426 } |
0152d639d7a7
FixWQCurveGenerator: Render fix events.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5339
diff
changeset
|
427 } |
4323
33d6d4025d0f
FixWQCurveGenerator: Handle extreme_wq_curve facets (stub).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
428 |
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:
6876
diff
changeset
|
429 protected void doEventsOut(ArtifactAndFacet aaf, ThemeDocument doc, boolean visible) { |
5740
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
430 logger.debug("doEventsOut"); |
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
431 // Find W/Q at km. |
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
432 addPointFromWQKms((WQKms) aaf.getData(context), |
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
433 aaf.getFacetDescription(), doc, visible); |
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
434 } |
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
435 |
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
436 |
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:
6876
diff
changeset
|
437 protected void doWQCurveOut(ArtifactAndFacet aaf, ThemeDocument doc, boolean visible) { |
3056
0b5a7a2c3724
Try to workaround some exception in FixWQCurveFacet and FixWQCurveGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3055
diff
changeset
|
438 logger.debug("doWQCurveOut"); |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
439 |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
440 FixWQCurveFacet facet = (FixWQCurveFacet)aaf.getFacet(); |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
441 FixFunction func = (FixFunction)facet.getData( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
442 aaf.getArtifact(), context); |
3073
0ace00c0c12a
FixA: Improved W/Q facet code
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3066
diff
changeset
|
443 |
0ace00c0c12a
FixA: Improved W/Q facet code
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3066
diff
changeset
|
444 if (func == null) { |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
445 logger.warn("doWQCurveOut: Facet does not contain FixFunction"); |
3073
0ace00c0c12a
FixA: Improved W/Q facet code
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3066
diff
changeset
|
446 return; |
0ace00c0c12a
FixA: Improved W/Q facet code
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3066
diff
changeset
|
447 } |
3110
88d49a0a55f0
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3108
diff
changeset
|
448 |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
449 double maxQ = func.getMaxQ(); |
3073
0ace00c0c12a
FixA: Improved W/Q facet code
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3066
diff
changeset
|
450 |
3215
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3212
diff
changeset
|
451 if (maxQ > 0) { |
3192
cd309f8597f6
Fix for 'linecolor ignored' issue
Christian Lins <christian.lins@intevation.de>
parents:
3155
diff
changeset
|
452 StyledXYSeries series = JFreeUtil.sampleFunction2D( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
453 func.getFunction(), |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
454 doc, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
455 aaf.getFacetDescription(), |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
456 500, // number of samples |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
457 0.0 , // start |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
458 maxQ); // end |
3155
74c974b10c75
Output code to trackdown the linecolor problem
Christian Lins <christian.lins@intevation.de>
parents:
3133
diff
changeset
|
459 |
6474
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
460 double gaugeDatum = getCurrentGaugeDatum(); |
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
461 |
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
462 if (gaugeDatum == 0d) { |
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
463 addAxisSeries(series, YAXIS.W.idx, visible); |
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
464 } |
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
465 else { |
6530
2afe2fe12576
FixWQCurveGenerator: Make second axis initial extends match first one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6527
diff
changeset
|
466 StyledXYSeries series2 = JFreeUtil.sampleFunction2D( |
2afe2fe12576
FixWQCurveGenerator: Make second axis initial extends match first one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6527
diff
changeset
|
467 func.getFunction(), |
2afe2fe12576
FixWQCurveGenerator: Make second axis initial extends match first one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6527
diff
changeset
|
468 doc, |
2afe2fe12576
FixWQCurveGenerator: Make second axis initial extends match first one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6527
diff
changeset
|
469 aaf.getFacetDescription(), |
2afe2fe12576
FixWQCurveGenerator: Make second axis initial extends match first one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6527
diff
changeset
|
470 500, // number of samples |
2afe2fe12576
FixWQCurveGenerator: Make second axis initial extends match first one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6527
diff
changeset
|
471 0.0 , // start |
2afe2fe12576
FixWQCurveGenerator: Make second axis initial extends match first one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6527
diff
changeset
|
472 maxQ); // end |
2afe2fe12576
FixWQCurveGenerator: Make second axis initial extends match first one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6527
diff
changeset
|
473 addAxisSeries(series2, YAXIS.W.idx, false); |
6474
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
474 // Use second axis at cm if at gauge. |
7525
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
475 for (int i = 0, N = series.getItemCount(); i < N; i++) { |
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
476 series.updateByIndex( |
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
477 i, new Double(100d*(series.getY(i).doubleValue()-gaugeDatum))); |
6474
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
478 } |
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
479 addAxisSeries(series, YAXIS.WCm.idx, visible); |
6aac9ad1f8a8
issue1370: FixWQCurveGenerator: second y axis for fix-w/q diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6473
diff
changeset
|
480 } |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
481 } |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
482 else { |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
483 logger.warn("doWQCurveOut: maxQ <= 0"); |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
484 } |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
485 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
486 |
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:
6876
diff
changeset
|
487 protected void doOutlierOut(ArtifactAndFacet aaf, ThemeDocument doc, boolean visible) { |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
488 logger.debug("doOutlierOut"); |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
489 |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
490 QWI[] qws = (QWI[])aaf.getData(context); |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
491 addQWSeries(qws, aaf, doc, visible); |
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
492 } |
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
493 |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
494 |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
495 /** Add markers for q sectors. */ |
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:
6876
diff
changeset
|
496 protected void doQSectorOut(ArtifactAndFacet aaf, ThemeDocument theme, boolean visible) { |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
497 logger.debug("doQSectorOut"); |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
498 if (!visible) { |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
499 return; |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
500 } |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
501 |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
502 Object qsectorsObj = aaf.getData(context); |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
503 if (qsectorsObj == null || !(qsectorsObj instanceof List)) { |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
504 logger.warn("No QSectors coming from data."); |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
505 return; |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
506 } |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
507 |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
508 List<?> qsectorsList = (List<?>) qsectorsObj; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
509 if (qsectorsList.size() == 0 || !(qsectorsList.get(0) instanceof NamedDouble)) { |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
510 logger.warn("No QSectors coming from data."); |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
511 return; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
512 } |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
513 |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
514 @SuppressWarnings("unchecked") |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
515 List<NamedDouble> qsectors = (List<NamedDouble>) qsectorsList; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
516 |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
517 for (NamedDouble qsector : qsectors) { |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
518 if (Double.isNaN(qsector.getValue())) { |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
519 continue; |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
520 } |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
521 Marker m = new ValueMarker(qsector.getValue()); |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
522 m.setPaint(Color.black); |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
523 |
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:
6876
diff
changeset
|
524 float[] dashes = theme.parseLineStyle(); |
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6876
diff
changeset
|
525 int size = theme.parseLineWidth(); |
3593
0ac28739ee15
Simplified code
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3588
diff
changeset
|
526 BasicStroke stroke; |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
527 if (dashes.length <= 1) { |
3593
0ac28739ee15
Simplified code
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3588
diff
changeset
|
528 stroke = new BasicStroke(size); |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
529 } |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
530 else { |
3593
0ac28739ee15
Simplified code
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3588
diff
changeset
|
531 stroke = new BasicStroke(size, |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
532 BasicStroke.CAP_BUTT, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
533 BasicStroke.JOIN_ROUND, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
534 1.0f, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
535 dashes, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
536 0.0f); |
3593
0ac28739ee15
Simplified code
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3588
diff
changeset
|
537 } |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
538 m.setStroke(stroke); |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
539 |
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:
6876
diff
changeset
|
540 if (theme.parseShowLineLabel()) { |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
541 m.setLabel(qsector.getName()); |
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:
6876
diff
changeset
|
542 m.setPaint(theme.parseTextColor()); |
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6876
diff
changeset
|
543 m.setLabelFont(theme.parseTextFont()); |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
544 } |
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:
6876
diff
changeset
|
545 Color paint = theme.parseLineColorField(); |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
546 if (paint != null) { |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
547 m.setPaint(paint); |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
548 } |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
549 m.setLabelAnchor(RectangleAnchor.TOP_LEFT); |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
550 m.setLabelTextAnchor(TextAnchor.TOP_LEFT); |
3911
36507c71725b
W(Q) chart: q sectors are now black and labeled by default
Christian Lins <christian.lins@intevation.de>
parents:
3770
diff
changeset
|
551 m.setLabelOffset(new RectangleInsets(5, 5, 10, 10)); |
3578
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
552 addDomainMarker(m); |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
553 } |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
554 } |
bae185bf9d2d
Theme the qsector markers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3551
diff
changeset
|
555 |
3596
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
556 |
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
557 /** |
3587
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
558 * Add W-Annotations to plot. |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
559 * @param wqkms actual data (double[][]). |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
560 * @param theme theme to use. |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
561 */ |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
562 protected void doWAnnotations( |
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:
6876
diff
changeset
|
563 Object wqkms, |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
564 ArtifactAndFacet aandf, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6876
diff
changeset
|
565 ThemeDocument theme, |
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6876
diff
changeset
|
566 boolean visible |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
567 ) { |
3587
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
568 Facet facet = aandf.getFacet(); |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
569 |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
570 List<StickyAxisAnnotation> xy = new ArrayList<StickyAxisAnnotation>(); |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
571 if (wqkms instanceof double[][]) { |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
572 logger.debug("Got double[][]"); |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
573 double [][] data = (double [][]) wqkms; |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
574 for (int i = 0; i< data[0].length; i++) { |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
575 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
576 (float) data[1][i], StickyAxisAnnotation.SimpleAxis.Y_AXIS)); |
3587
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
577 } |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
578 |
5864
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
579 doAnnotations(new RiverAnnotation(facet.getDescription(), xy), |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
580 aandf, theme, visible); |
3587
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
581 } |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
582 else { |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
583 // Assume its WKms. |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
584 logger.debug("Got WKms"); |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
585 WKms data = (WKms) wqkms; |
3596
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
586 |
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
587 Double ckm = (Double) context.getContextValue(CURRENT_KM); |
3587
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
588 double location = (ckm != null) |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
589 ? ckm.doubleValue() |
4147
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4143
diff
changeset
|
590 : getRange()[0]; |
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4143
diff
changeset
|
591 double w = StaticWKmsArtifact.getWAtKmLin(data, location); |
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4143
diff
changeset
|
592 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), |
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4143
diff
changeset
|
593 (float) w, StickyAxisAnnotation.SimpleAxis.Y_AXIS)); |
3587
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
594 |
5864
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
595 doAnnotations(new RiverAnnotation(facet.getDescription(), xy), |
4147
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4143
diff
changeset
|
596 aandf, theme, visible); |
3587
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
597 } |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
598 } |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
599 |
9dfbd36474b8
Add more facets to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3585
diff
changeset
|
600 |
3585
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
601 /** |
3588
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
602 * Add series with discharge curve to diagram. |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
603 */ |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
604 protected void doDischargeOut( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
605 WINFOArtifact artifact, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
606 Object o, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
607 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:
6876
diff
changeset
|
608 ThemeDocument theme, |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
609 boolean visible) |
3588
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
610 { |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
611 WQKms wqkms = (WQKms) o; |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
612 |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
613 String gaugeName = wqkms.getName(); |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
614 |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5864
diff
changeset
|
615 River river = RiverUtils.getRiver(artifact); |
3588
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
616 |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
617 if (river == null) { |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
618 logger.debug("no river found"); |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
619 return; |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
620 } |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
621 |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
622 Gauge gauge = river.determineGaugeByName(gaugeName); |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
623 |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
624 if (gauge == null) { |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
625 logger.debug("no gauge found"); |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
626 return; |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
627 } |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
628 |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
629 XYSeries series = new StyledXYSeries(description, theme); |
7258
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
630 |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
631 double gaugeDatum = getCurrentGaugeDatum(); |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
632 |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
633 if (true || gaugeDatum == 0d) { |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
634 StyledSeriesBuilder.addPointsQW(series, wqkms); |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
635 addAxisSeries(series, YAXIS.W.idx, visible); |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
636 } |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
637 else { |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
638 XYSeries series2 = new StyledXYSeries(description, theme); |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
639 StyledSeriesBuilder.addPointsQW(series2, wqkms); |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
640 addAxisSeries(series2, YAXIS.W.idx, false); |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
641 |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
642 // Use second axis... |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
643 StyledSeriesBuilder.addPointsQW(series, wqkms, -gaugeDatum, 100d); |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
644 addAxisSeries(series, YAXIS.WCm.idx, visible); |
0e6b399e72f9
issue1490: Translate text annotations position when displaying w/q- curve at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7257
diff
changeset
|
645 } |
3588
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
646 } |
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
647 |
3596
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
648 |
3588
76571c601d06
Add more discharge curve data to DC and W/Q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3587
diff
changeset
|
649 /** |
3585
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
650 * Add WQ Data to plot. |
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
651 * @param wqkms data as double[][] |
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
652 */ |
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
653 protected void doWQOut( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
654 Object wqkms, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
655 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:
6876
diff
changeset
|
656 ThemeDocument theme, |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
657 boolean visible |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
658 ) { |
3585
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
659 logger.debug("FixWQCurveGenerator: doWQOut"); |
3596
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
660 if (wqkms instanceof WQKms) { |
5739
9950cbb7dba3
FixWQCurveGenerator: issue1149, show calculated wq as points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5731
diff
changeset
|
661 // TODO As in doEventsOut, the value-searching should |
9950cbb7dba3
FixWQCurveGenerator: issue1149, show calculated wq as points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5731
diff
changeset
|
662 // be delivered by the facet already (instead of in the Generator). |
9950cbb7dba3
FixWQCurveGenerator: issue1149, show calculated wq as points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5731
diff
changeset
|
663 logger.debug("FixWQCurveGenerator: doWQOut: WQKms"); |
3585
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
664 |
5740
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
665 addPointFromWQKms((WQKms) aaf.getData(context), aaf.getFacetDescription(), theme, visible); |
3596
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
666 } |
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
667 else { |
5740
0516c1f8f674
FixWQCurveGenerator: Minor Refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5739
diff
changeset
|
668 logger.debug("FixWQCurveGenerator: doWQOut: double[][]"); |
3596
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
669 double [][] data = (double [][]) wqkms; |
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
670 |
6876
a071f0a80883
FixA W/Q Diagram: Allow duplicate points. It should work but it doesn't. :-/
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6868
diff
changeset
|
671 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), false, true, theme); |
3596
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
672 StyledSeriesBuilder.addPoints(series, data, true); |
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
673 |
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
674 addAxisSeries(series, YAXIS.W.idx, visible); |
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
675 } |
3585
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
676 } |
c105b4466b4e
Basedata in FixA WQ DC and diagram.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3578
diff
changeset
|
677 |
3596
6aea625190da
Handle former W calculations in fixA W/Q out.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3593
diff
changeset
|
678 |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
679 protected void addQWSeries( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
680 QWI [] qws, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
681 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:
6876
diff
changeset
|
682 ThemeDocument theme, |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
683 boolean visible |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
684 ) { |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
685 if (qws == null) { |
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
686 return; |
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
687 } |
3194
e815cf20bab2
Add point labels to W/Q curve
Christian Lins <christian.lins@intevation.de>
parents:
3193
diff
changeset
|
688 |
6876
a071f0a80883
FixA W/Q Diagram: Allow duplicate points. It should work but it doesn't. :-/
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6868
diff
changeset
|
689 XYSeries series = new StyledXYSeries( |
a071f0a80883
FixA W/Q Diagram: Allow duplicate points. It should work but it doesn't. :-/
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6868
diff
changeset
|
690 aaf.getFacetDescription(), |
a071f0a80883
FixA W/Q Diagram: Allow duplicate points. It should work but it doesn't. :-/
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6868
diff
changeset
|
691 false, true, |
a071f0a80883
FixA W/Q Diagram: Allow duplicate points. It should work but it doesn't. :-/
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6868
diff
changeset
|
692 theme); |
a071f0a80883
FixA W/Q Diagram: Allow duplicate points. It should work but it doesn't. :-/
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6868
diff
changeset
|
693 |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
694 List<XYTextAnnotation> textAnnos = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
695 new ArrayList<XYTextAnnotation>(qws.length); |
3062
7660cfe5e8f6
FixWQCurveGenerator can generate charts from Fix*-Facets (in theory and not complete)
Christian Lins <christian.lins@intevation.de>
parents:
3060
diff
changeset
|
696 |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
697 DateFormat dateFormat = DateFormat.getDateInstance( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
698 DateFormat.SHORT); |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
699 |
7259
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
700 double gaugeDatum = getCurrentGaugeDatum(); |
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
701 double factor = (gaugeDatum == 0d) ? 1d : 100d; |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
702 for (QWI qw: qws) { |
7259
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
703 series.add(qw.getQ(), factor*(qw.getW()-gaugeDatum), false); |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
704 |
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
705 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
706 dateFormat.format(qw.getDate()), |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
707 qw.getQ(), |
7259
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
708 factor*(qw.getW()-gaugeDatum)); |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
709 textAnnos.add(anno); |
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
710 } |
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
711 |
7259
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
712 if (gaugeDatum == 0d) { |
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
713 addAxisSeries(series, YAXIS.W.idx, visible); |
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
714 } |
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
715 else { |
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
716 addAxisSeries(series, YAXIS.WCm.idx, visible); |
a36e26abcf54
issue1490: Translate other points as well, when at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7258
diff
changeset
|
717 } |
7270
a365e587af67
Little workaround not to crash uf there is no theme style. TODO: Figure out why the theme style is null at this point.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
718 if (visible && theme != null && theme.parseShowPointLabel()) { |
5864
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
719 RiverAnnotation flysAnno = |
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
720 new RiverAnnotation(null, null, null, theme); |
3729
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
721 flysAnno.setTextAnnotations(textAnnos); |
e727e3ebdf85
Factored out a pure QW model to be more reusable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
722 addAnnotations(flysAnno); |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
723 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
724 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
725 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
726 @Override |
3406
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
727 protected String getChartTitle() { |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
728 return Resources.format( |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
729 context.getMeta(), |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
730 I18N_CHART_TITLE, |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
731 I18N_CHART_TITLE_DEFAULT, |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
732 context.getContextValue(CURRENT_KM)); |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
733 } |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
734 |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
735 @Override |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
736 protected String getDefaultChartTitle() { |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
737 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT); |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
738 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
739 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
740 @Override |
3406
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
741 protected String getDefaultChartSubtitle() { |
6101
a0078e5e3b39
Removed unused context from RangeAccess and subclasses leading to some dead code removal.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
742 FixAnalysisAccess access = new FixAnalysisAccess(artifact); |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
3408
diff
changeset
|
743 DateRange dateRange = access.getDateRange(); |
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
3408
diff
changeset
|
744 DateRange refRange = access.getReferencePeriod(); |
3466
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
745 |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
746 if (dateRange != null && refRange != null) { |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
747 return Resources.format( |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
748 context.getMeta(), |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
749 I18N_CHART_SUBTITLE, |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
750 "", |
7261
a56fe3bc6700
Refactoring: Let RiverAccess.getRiver return an River.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7260
diff
changeset
|
751 access.getRiverName(), |
3466
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
752 dateRange.getFrom(), |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
753 dateRange.getTo(), |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
754 refRange.getFrom(), |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
755 refRange.getTo()); |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
756 } |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
757 |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
758 return null; |
3406
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
759 } |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
760 |
3732e1bab0aa
Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents:
3286
diff
changeset
|
761 @Override |
3410
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
762 protected void addSubtitles(JFreeChart chart) { |
3466
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
763 String defaultSubtitle = getDefaultChartSubtitle(); |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
764 |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
765 if (defaultSubtitle == null || defaultSubtitle.length() == 0) { |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
766 return; |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
767 } |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
768 |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
769 chart.addSubtitle(new TextTitle(defaultSubtitle)); |
8160e62bbb3a
Registered new output 'fix_vollmer_wq_curve' for the vollmer path of fixings analysis module; create required Facets for it after calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3410
diff
changeset
|
770 |
3410
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
771 StringBuilder buf = new StringBuilder(); |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
772 |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
773 // Add analysis periods as additional subtitle |
6101
a0078e5e3b39
Removed unused context from RangeAccess and subclasses leading to some dead code removal.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
774 FixAnalysisAccess access = new FixAnalysisAccess(artifact); |
3410
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
775 DateRange[] aperiods = access.getAnalysisPeriods(); |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
776 buf.append(msg("fix.analysis.periods")); |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
777 buf.append(": "); |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
778 for(int n = 0; n < aperiods.length; n++) { |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
779 buf.append( |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
780 Resources.format( |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
781 context.getMeta(), |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
782 I18N_CHART_SUBTITLE1, |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
783 "", |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
784 aperiods[n].getFrom(), |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
785 aperiods[n].getTo())); |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
786 if(n + 1 < aperiods.length) { |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
787 buf.append("; "); |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
788 } |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
789 } |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
790 |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
791 chart.addSubtitle(new TextTitle(buf.toString())); |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
792 } |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
793 |
f382127df48e
Add analysis periods as subtitle to W/Q chart
Christian Lins <christian.lins@intevation.de>
parents:
3409
diff
changeset
|
794 @Override |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
795 protected String getDefaultXAxisLabel() { |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
796 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
797 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
798 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
799 @Override |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
800 protected String getDefaultYAxisLabel(int pos) { |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
801 D4EArtifact flys = (D4EArtifact) master; |
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
802 |
7525
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
803 String unit = pos == 0 |
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
804 ? "cm" |
6650485c2c9b
Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7270
diff
changeset
|
805 : RiverUtils.getRiver(flys).getWstUnit().getName(); |
6467
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
806 |
0f997d6397c6
FixWQCurveGenerator: Introduce second (cm) axis.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6438
diff
changeset
|
807 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT, new Object[] { unit }); |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
808 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
809 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
810 @Override |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
811 protected ChartGenerator.YAxisWalker getYAxisWalker() { |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
812 return new YAxisWalker() { |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
813 @Override |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
814 public int length() { |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
815 return YAXIS.values().length; |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
816 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
817 |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
818 @Override |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3729
diff
changeset
|
819 public String getId(int idx) { |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
820 YAXIS[] yaxes = YAXIS.values(); |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
821 return yaxes[idx].toString(); |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
822 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
823 }; |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3073
diff
changeset
|
824 } |
3055
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
825 } |
1fbf8462f808
FixWQCurveGenerator generates randomized curves as the Facets crashes when retrieving data
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
826 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |