Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/CrossSectionGenerator.java @ 7166:0e1191e34b5f
TRUE != FALSE ;)
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Thu, 26 Sep 2013 12:21:34 +0200 |
parents | ed8623b989f3 |
children | e4606eae8ea5 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
9 package org.dive4elements.river.exports; |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
10 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
11 import java.awt.BasicStroke; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
12 import java.awt.Color; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
13 import java.awt.Paint; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
14 import java.awt.Stroke; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
15 import java.text.NumberFormat; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
16 import java.util.List; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
17 |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
18 import org.apache.log4j.Logger; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
19 import org.jfree.chart.LegendItemCollection; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
20 import org.jfree.chart.annotations.XYBoxAnnotation; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
21 import org.jfree.chart.annotations.XYTextAnnotation; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
22 import org.jfree.chart.plot.XYPlot; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
23 import org.jfree.data.xy.XYSeries; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
24 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
25 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
26 import org.dive4elements.artifacts.DataProvider; |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
27 import org.dive4elements.river.artifacts.D4EArtifact; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
28 import org.dive4elements.river.artifacts.geom.Lines; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
29 import org.dive4elements.river.artifacts.model.CrossSectionFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
30 import org.dive4elements.river.artifacts.model.FacetTypes; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
31 import org.dive4elements.river.artifacts.model.HYKFactory; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
32 import org.dive4elements.river.artifacts.resources.Resources; |
5864
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
33 import org.dive4elements.river.jfree.RiverAnnotation; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
34 import org.dive4elements.river.jfree.StyledXYSeries; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
35 import org.dive4elements.river.model.FastCrossSectionLine; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
36 import org.dive4elements.river.themes.LineStyle; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
37 import org.dive4elements.river.themes.TextStyle; |
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:
5994
diff
changeset
|
38 import org.dive4elements.river.themes.ThemeDocument; |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5864
diff
changeset
|
39 import org.dive4elements.river.utils.RiverUtils; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5130
diff
changeset
|
40 import org.dive4elements.river.utils.Formatter; |
3771 | 41 |
2120
f021080cb409
Use improved caching for cross section lines data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2107
diff
changeset
|
42 |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
43 /** |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
44 * An OutGenerator that generates cross section graphs. |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
45 */ |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
46 public class CrossSectionGenerator |
2138
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
47 extends LongitudinalSectionGenerator |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
48 implements FacetTypes |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
49 { |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
50 /** The logger that is used in this generator. */ |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
51 private static Logger logger = |
3771 | 52 Logger.getLogger(CrossSectionGenerator.class); |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
53 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
54 public static final String I18N_CHART_TITLE = |
3771 | 55 "chart.cross_section.title"; |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
56 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
57 public static final String I18N_CHART_SUBTITLE = |
3771 | 58 "chart.cross_section.subtitle"; |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
59 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
60 public static final String I18N_XAXIS_LABEL = |
3771 | 61 "chart.cross_section.xaxis.label"; |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
62 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
63 public static final String I18N_YAXIS_LABEL = |
3771 | 64 "chart.cross_section.yaxis.label"; |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
65 |
1125
65d8b3340397
Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1122
diff
changeset
|
66 public static final String I18N_CHART_TITLE_DEFAULT = "Querprofildiagramm"; |
65d8b3340397
Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1122
diff
changeset
|
67 public static final String I18N_XAXIS_LABEL_DEFAULT = "Abstand [m]"; |
65d8b3340397
Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1122
diff
changeset
|
68 public static final String I18N_YAXIS_LABEL_DEFAULT = "W [NN + m]"; |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
69 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
70 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
71 /** Trivial Constructor. */ |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
72 public CrossSectionGenerator() { |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
73 } |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
74 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
75 |
2052
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
76 @Override |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
77 protected YAxisWalker getYAxisWalker() { |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
78 return new YAxisWalker() { |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
79 @Override |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
80 public int length() { |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
81 return 1; |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
82 } |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
83 |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
84 /** Get identifier for this index. */ |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
85 @Override |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
86 public String getId(int idx) { |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
87 return "W"; |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
88 } |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
89 }; |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
90 } |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
91 |
c7f18fa0d685
Added missing getYAxisWalker() in CrossSectionGenerator and create new instances of IdentfifiableNumberAxis in XYChartGenerator.createYAxis(int).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2051
diff
changeset
|
92 |
1125
65d8b3340397
Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1122
diff
changeset
|
93 /** |
65d8b3340397
Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1122
diff
changeset
|
94 * Get localized chart title. |
65d8b3340397
Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1122
diff
changeset
|
95 */ |
2048
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2044
diff
changeset
|
96 @Override |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
97 public String getDefaultChartTitle() { |
1141
bcba246d9c03
Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1125
diff
changeset
|
98 Object[] i18n_msg_args = new Object[] { |
3771 | 99 getRiverName() |
1141
bcba246d9c03
Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1125
diff
changeset
|
100 }; |
bcba246d9c03
Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1125
diff
changeset
|
101 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT, i18n_msg_args); |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
102 } |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
103 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
104 |
2138
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
105 /** Always return default subtitle. */ |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
106 @Override |
1989
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1975
diff
changeset
|
107 protected String getChartSubtitle() { |
2048
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2044
diff
changeset
|
108 // XXX NOTE: overriding this method disables ChartSettings subtitle! |
2167
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
109 // The default implementation of this method in ChartGenerator returns |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
110 // the subtitle changed via the chart settings dialog. This method |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
111 // always returns the subtitle containing river and km, NEVER the |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
112 // ChartSettings subtitle! |
2048
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2044
diff
changeset
|
113 return getDefaultChartSubtitle(); |
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2044
diff
changeset
|
114 } |
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2044
diff
changeset
|
115 |
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2044
diff
changeset
|
116 |
2138
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
117 /** Get Charts default subtitle. */ |
2048
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2044
diff
changeset
|
118 @Override |
3157a78e6494
Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2044
diff
changeset
|
119 protected String getDefaultChartSubtitle() { |
2042
3f6b519300ec
Include selected km in cross section diagrams subtitle.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2033
diff
changeset
|
120 List<DataProvider> providers = |
3771 | 121 context.getDataProvider(CrossSectionFacet.BLACKBOARD_CS_MASTER_DATA); |
2042
3f6b519300ec
Include selected km in cross section diagrams subtitle.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2033
diff
changeset
|
122 double km = 0d; |
3f6b519300ec
Include selected km in cross section diagrams subtitle.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2033
diff
changeset
|
123 if (providers.size() > 0) { |
2120
f021080cb409
Use improved caching for cross section lines data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2107
diff
changeset
|
124 FastCrossSectionLine csl = (FastCrossSectionLine) providers.get(0). |
3771 | 125 provideData(CrossSectionFacet.BLACKBOARD_CS_MASTER_DATA, |
126 null, context); | |
3602
e1fd2dfdcb80
Issue #806 and NullPointerExceptions in CrossSectionGenerator fixed
Christian Lins <christian.lins@intevation.de>
parents:
3555
diff
changeset
|
127 km = csl == null ? -1 : csl.getKm(); |
2042
3f6b519300ec
Include selected km in cross section diagrams subtitle.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2033
diff
changeset
|
128 } |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
129 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
130 Object[] args = new Object[] { |
3771 | 131 getRiverName(), |
132 km | |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
133 }; |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
134 |
3771 | 135 logger.debug("Locale: " + Resources.getLocale(context.getMeta())); |
136 | |
1989
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1975
diff
changeset
|
137 return msg(I18N_CHART_SUBTITLE, "", args); |
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1975
diff
changeset
|
138 } |
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1975
diff
changeset
|
139 |
156304542edf
Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1975
diff
changeset
|
140 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
141 /** Get color for hyk zones by their type (which is the name). */ |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
142 protected Paint colorForHYKZone(String zoneName) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
143 if (zoneName.startsWith("R")) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
144 // Brownish. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
145 return new Color(153, 60, 0); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
146 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
147 else if (zoneName.startsWith("V")) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
148 // Greenish. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
149 return new Color(0, 255, 0); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
150 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
151 else if (zoneName.startsWith("B")) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
152 // Grayish. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
153 return new Color(128, 128, 128); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
154 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
155 else if (zoneName.startsWith("H")) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
156 // Blueish. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
157 return new Color(0, 0, 255); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
158 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
159 else { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
160 // Default. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
161 logger.debug("Unknown zone type found."); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
162 return new Color(255, 0, 0); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
163 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
164 } |
3280
4a70525c5b0d
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3278
diff
changeset
|
165 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
166 @Override |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
167 protected void addAnnotationsToRenderer(XYPlot plot) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
168 super.addAnnotationsToRenderer(plot); |
3280
4a70525c5b0d
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3278
diff
changeset
|
169 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
170 // Paints for the boxes/lines. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
171 Stroke basicStroke = new BasicStroke(1.0f); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
172 |
4047
3dc26ec2558d
Removed dead code
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3904
diff
changeset
|
173 // XXX: DEAD CODE // Paint linePaint = new Color(255, 0,0,60); |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
174 Paint fillPaint = new Color(0, 255,0,60); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
175 Paint tranPaint = new Color(0, 0,0, 0); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
176 |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
177 // OPTMIMIZE: Pre-calculate positions |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
178 ChartArea area = new ChartArea( |
3771 | 179 plot.getDomainAxis(0).getRange(), |
180 plot.getRangeAxis().getRange()); | |
3280
4a70525c5b0d
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3278
diff
changeset
|
181 |
5864
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
182 for(RiverAnnotation fa : this.annotations) { |
3280
4a70525c5b0d
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3278
diff
changeset
|
183 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
184 // Access text styling, if any. |
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:
5994
diff
changeset
|
185 ThemeDocument theme = fa.getTheme(); |
3464
0b9b2a0c4e64
Point labels can have a background color now.
Christian Lins <christian.lins@intevation.de>
parents:
3453
diff
changeset
|
186 TextStyle textStyle = null; |
4047
3dc26ec2558d
Removed dead code
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3904
diff
changeset
|
187 // XXX: DEAD CODE // LineStyle lineStyle = null; |
3280
4a70525c5b0d
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3278
diff
changeset
|
188 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
189 // Get Themeing information and add legend item. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
190 if (theme != null) { |
6906
7a9cbb3a3d5a
Artifacts: Moved logic of ThemeUtils into ThemeDocument. TODO: Remove ThemeUtils
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6905
diff
changeset
|
191 textStyle = theme.parseComplexTextStyle(); |
4047
3dc26ec2558d
Removed dead code
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3904
diff
changeset
|
192 // XXX: DEAD CODE // lineStyle = themeAccess.parseLineStyle(); |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
193 if (fa.getLabel() != null) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
194 LegendItemCollection lic = new LegendItemCollection(); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
195 LegendItemCollection old = plot.getFixedLegendItems(); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
196 lic.add(createLegendItem(theme, fa.getLabel())); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
197 // (Re-)Add prior legend entries. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
198 if (old != null) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
199 old.addAll(lic); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
200 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
201 else { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
202 old = lic; |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
203 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
204 plot.setFixedLegendItems(old); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
205 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
206 } |
3280
4a70525c5b0d
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3278
diff
changeset
|
207 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
208 // Hyks. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
209 for (HYKFactory.Zone zone: fa.getBoxes()) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
210 // For each zone, create a box to fill with color, a box to draw |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
211 // the lines and a text to display the type. |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
212 fillPaint = colorForHYKZone(zone.getName()); |
3280
4a70525c5b0d
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3278
diff
changeset
|
213 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
214 XYBoxAnnotation boxA = new XYBoxAnnotation(zone.getFrom(), area.atGround(), |
3771 | 215 zone.getTo(), area.ofGround(0.03f), basicStroke, tranPaint, fillPaint); |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
216 XYBoxAnnotation boxB = new XYBoxAnnotation(zone.getFrom(), area.atGround(), |
3771 | 217 zone.getTo(), area.atTop(), basicStroke, fillPaint, tranPaint); |
3280
4a70525c5b0d
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3278
diff
changeset
|
218 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
219 XYTextAnnotation tex = new XYTextAnnotation(zone.getName(), |
4653
a93699cb31eb
CrossSectionGenerator: Center HYK-labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4047
diff
changeset
|
220 zone.getFrom() + (zone.getTo() - zone.getFrom()) / 2.0d, |
3771 | 221 area.ofGround(0.015f)); |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
222 if (textStyle != null) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
223 textStyle.apply(tex); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
224 } |
3280
4a70525c5b0d
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3278
diff
changeset
|
225 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
226 plot.getRenderer().addAnnotation(boxA, org.jfree.ui.Layer.BACKGROUND); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
227 plot.getRenderer().addAnnotation(boxB, org.jfree.ui.Layer.BACKGROUND); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
228 plot.getRenderer().addAnnotation(tex, org.jfree.ui.Layer.BACKGROUND); |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
229 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
230 } |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
231 } |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
232 |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2048
diff
changeset
|
233 @Override |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2048
diff
changeset
|
234 protected String getDefaultXAxisLabel() { |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
235 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
236 } |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
237 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
238 |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2048
diff
changeset
|
239 @Override |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2048
diff
changeset
|
240 protected String getDefaultYAxisLabel(int pos) { |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
241 D4EArtifact flys = (D4EArtifact) master; |
5130
b11f3563a117
Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4653
diff
changeset
|
242 |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5864
diff
changeset
|
243 String unit = RiverUtils.getRiver(flys).getWstUnit().getName(); |
5130
b11f3563a117
Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4653
diff
changeset
|
244 |
b11f3563a117
Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4653
diff
changeset
|
245 return msg(I18N_YAXIS_LABEL, |
b11f3563a117
Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4653
diff
changeset
|
246 I18N_YAXIS_LABEL_DEFAULT, |
b11f3563a117
Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4653
diff
changeset
|
247 new Object[] { unit }); |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
248 } |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
249 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
250 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
251 /** |
1116
05e4ef0f9489
Improved stub for CrossSections (including Factory and Facet).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1113
diff
changeset
|
252 * Let one facet do its job. |
05e4ef0f9489
Improved stub for CrossSections (including Factory and Facet).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1113
diff
changeset
|
253 */ |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
254 @Override |
1684
bdb05dc9b763
Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1158
diff
changeset
|
255 public void doOut( |
3771 | 256 ArtifactAndFacet artifactFacet, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
257 ThemeDocument attr, |
3771 | 258 boolean visible |
259 ) { | |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
260 String name = artifactFacet.getFacetName(); |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
261 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
262 logger.debug("CrossSectionGenerator.doOut: " + name); |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
263 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
264 if (name == null) { |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
265 logger.error("No facet name for doOut(). No output generated!"); |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
266 return; |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
267 } |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
268 |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
269 if (name.equals(CROSS_SECTION)) { |
1684
bdb05dc9b763
Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1158
diff
changeset
|
270 doCrossSectionOut( |
3771 | 271 artifactFacet.getData(context), |
272 artifactFacet.getFacetDescription(), | |
273 attr, | |
274 visible); | |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
275 } |
1122
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
276 else if (name.equals(CROSS_SECTION_WATER_LINE)) { |
1684
bdb05dc9b763
Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1158
diff
changeset
|
277 doCrossSectionWaterLineOut( |
3771 | 278 artifactFacet.getData(context), |
279 artifactFacet.getFacetDescription(), | |
280 attr, | |
281 visible); | |
1122
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
282 } |
2020
4f7f781e4481
Improved area rendering workflow.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2006
diff
changeset
|
283 else if (FacetTypes.IS.AREA(name)) { |
2006
5aecebcc4698
Add area dataseries when facet delivers one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1989
diff
changeset
|
284 doArea(artifactFacet.getData(context), |
3771 | 285 artifactFacet, |
286 attr, | |
287 visible); | |
2006
5aecebcc4698
Add area dataseries when facet delivers one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1989
diff
changeset
|
288 } |
2138
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
289 else if (name.equals(HYK)) { |
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
290 doHyk(artifactFacet.getData(context), |
3771 | 291 artifactFacet.getFacetDescription(), |
292 attr, | |
293 visible); | |
2138
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
294 } |
3198
d35f28655fa6
Create and handle new manual line type facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
295 else if (FacetTypes.IS.MANUALLINE(name)) { |
d35f28655fa6
Create and handle new manual line type facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
296 doCrossSectionWaterLineOut( |
3771 | 297 artifactFacet.getData(context), |
298 artifactFacet.getFacetDescription(), | |
299 attr, | |
300 visible); | |
3198
d35f28655fa6
Create and handle new manual line type facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
301 } |
2206
e2124ca11adb
Add manual point handling for many different chart types.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2167
diff
changeset
|
302 else if (FacetTypes.IS.MANUALPOINTS(name)) { |
e2124ca11adb
Add manual point handling for many different chart types.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2167
diff
changeset
|
303 doPoints(artifactFacet.getData(context), |
3771 | 304 artifactFacet, |
305 attr, visible, YAXIS.W.idx); | |
2206
e2124ca11adb
Add manual point handling for many different chart types.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2167
diff
changeset
|
306 } |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
307 else { |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
308 logger.warn("CrossSection.doOut: Unknown facet name: " + name); |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
309 return; |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
310 } |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
311 } |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
312 |
2020
4f7f781e4481
Improved area rendering workflow.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2006
diff
changeset
|
313 |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
314 /** Look up the axis identifier for a given facet type. */ |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
315 @Override |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
316 public int axisIdxForFacet(String facetName) { |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
317 // TODO Where to add thid axis too. |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
318 return 0; |
2006
5aecebcc4698
Add area dataseries when facet delivers one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1989
diff
changeset
|
319 } |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
320 |
2020
4f7f781e4481
Improved area rendering workflow.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2006
diff
changeset
|
321 |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
322 /** |
1122
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
323 * Do cross sections waterline out. |
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
324 * |
1141
bcba246d9c03
Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1125
diff
changeset
|
325 * @param seriesName name of the data (line) to display in legend. |
1122
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
326 * @param theme Theme for the data series. |
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
327 */ |
1684
bdb05dc9b763
Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1158
diff
changeset
|
328 protected void doCrossSectionWaterLineOut( |
3771 | 329 Object o, |
330 String seriesName, | |
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:
5994
diff
changeset
|
331 ThemeDocument theme, |
3771 | 332 boolean visible |
333 ) { | |
1122
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
334 logger.debug("CrossSectionGenerator.doCrossSectionWaterLineOut"); |
1141
bcba246d9c03
Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1125
diff
changeset
|
335 |
2652
9d2a06c3a134
Added DataType for lines that also stores width, use it. Added HasLabel interface for some series.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2325
diff
changeset
|
336 Lines.LineData lines = (Lines.LineData) o; |
2728
306b9d0f0fb3
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2688
diff
changeset
|
337 // DO NOT SORT DATA! This destroys the gaps indicated by NaNs. |
2652
9d2a06c3a134
Added DataType for lines that also stores width, use it. Added HasLabel interface for some series.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2325
diff
changeset
|
338 StyledXYSeries series = new StyledXYSeries(seriesName, false, theme); |
1122
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
339 |
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:
5994
diff
changeset
|
340 if (!theme.parseShowLineLabel()) { |
3228
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
341 series.setLabel(""); |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
342 } |
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:
5994
diff
changeset
|
343 if (theme.parseShowWidth()) { |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
344 NumberFormat nf = Formatter.getMeterFormat(this.context); |
3228
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
345 String labelAdd = "b=" + nf.format(lines.width) + "m"; |
3453
e74e707ff650
Replace string comparison with empty string with length equals zero comparison
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3409
diff
changeset
|
346 if (series.getLabel().length() == 0) { |
3771 | 347 series.setLabel(labelAdd); |
3228
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
348 } |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
349 else { |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
350 series.setLabel(series.getLabel() + ", " + labelAdd); |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
351 } |
2663
33d61e2a49a2
Added and respect two new properties of waterlevels in cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2652
diff
changeset
|
352 } |
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:
5994
diff
changeset
|
353 if (theme.parseShowLevel() && lines.points.length > 1 |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
354 && lines.points[1].length > 0) { |
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
355 NumberFormat nf = Formatter.getMeterFormat(this.context); |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
356 D4EArtifact flys = (D4EArtifact) master; |
5130
b11f3563a117
Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4653
diff
changeset
|
357 |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5864
diff
changeset
|
358 String unit = RiverUtils.getRiver(flys).getWstUnit().getName(); |
5130
b11f3563a117
Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4653
diff
changeset
|
359 |
b11f3563a117
Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4653
diff
changeset
|
360 String labelAdd = "W=" + nf.format(lines.points[1][0]) + unit; |
3453
e74e707ff650
Replace string comparison with empty string with length equals zero comparison
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3409
diff
changeset
|
361 if (series.getLabel().length() == 0) { |
3771 | 362 series.setLabel(labelAdd); |
3228
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
363 } |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
364 else { |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
365 series.setLabel(series.getLabel() + ", " + labelAdd); |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
366 } |
2663
33d61e2a49a2
Added and respect two new properties of waterlevels in cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2652
diff
changeset
|
367 } |
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:
5994
diff
changeset
|
368 if (theme.parseShowMiddleHeight() && lines.width != 0) { |
3278
c27c4e06dd87
Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents:
3228
diff
changeset
|
369 NumberFormat nf = Formatter.getMeterFormat(this.context); |
3640
1d2856de489d
issue820: changed label for middle height/depth.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3619
diff
changeset
|
370 String labelAdd = "T=" + nf.format(lines.area / lines.width) + "m"; |
3771 | 371 // : " + lines.area + "/" + lines.width); |
3453
e74e707ff650
Replace string comparison with empty string with length equals zero comparison
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3409
diff
changeset
|
372 if (series.getLabel().length() == 0) { |
3771 | 373 series.setLabel(labelAdd); |
3228
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
374 } |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
375 else { |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
376 series.setLabel(series.getLabel() + ", " + labelAdd); |
698d09930329
Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3227
diff
changeset
|
377 } |
2674
2be59d5b342c
Added and respect theme prop whether or not to display (not yet calculated) middle height.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2663
diff
changeset
|
378 } |
2728
306b9d0f0fb3
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2688
diff
changeset
|
379 |
2685
5652a851f1b4
Fix water-through-mountain in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2674
diff
changeset
|
380 StyledSeriesBuilder.addPoints(series, lines.points, false); |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1741
diff
changeset
|
381 |
1931
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
382 addAxisSeries(series, 0, visible); |
1122
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
383 } |
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
384 |
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
385 |
2138
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
386 /** Add HYK-Annotations (colorize and label some areas, draw lines. */ |
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
387 protected void doHyk( |
3771 | 388 Object o, |
389 String seriesName, | |
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:
5994
diff
changeset
|
390 ThemeDocument theme, |
3771 | 391 boolean visible |
392 ) { | |
2138
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
393 logger.debug("CrossSectionGenerator.doHyk"); |
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
394 |
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
395 List<HYKFactory.Zone> zones = (List<HYKFactory.Zone>) o; |
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
396 |
3555
b1912514e0f5
s/container.size() == 0/container.isEmpty()/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3464
diff
changeset
|
397 if (zones == null || zones.isEmpty()) { |
2789
834b81134b12
Fixed broken crosssection chart creation if no hyks are existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2772
diff
changeset
|
398 logger.warn("CrossSectionGenerator.doHYK: empty zone list received."); |
834b81134b12
Fixed broken crosssection chart creation if no hyks are existing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2772
diff
changeset
|
399 return; |
2138
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
400 } |
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
401 |
2152
2336927cb096
Add basic (text) styling for HYKS.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2143
diff
changeset
|
402 // Actual Styling is done in XYChartGenerator. |
2772
5e8e42a36a90
Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2728
diff
changeset
|
403 if (visible) { |
5864
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
404 addAnnotations(new RiverAnnotation(seriesName, null, zones, theme)); |
2772
5e8e42a36a90
Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2728
diff
changeset
|
405 } |
2138
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
406 } |
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
407 |
59bb5c895be3
Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2126
diff
changeset
|
408 |
1122
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
409 /** |
1116
05e4ef0f9489
Improved stub for CrossSections (including Factory and Facet).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1113
diff
changeset
|
410 * Do cross sections out. |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
411 * |
1141
bcba246d9c03
Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1125
diff
changeset
|
412 * @param seriesName name of the data (line) to display in legend. |
1116
05e4ef0f9489
Improved stub for CrossSections (including Factory and Facet).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1113
diff
changeset
|
413 * @param theme Theme for the data series. |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
414 */ |
1684
bdb05dc9b763
Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1158
diff
changeset
|
415 protected void doCrossSectionOut( |
3771 | 416 Object o, |
417 String seriesName, | |
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:
5994
diff
changeset
|
418 ThemeDocument theme, |
3771 | 419 boolean visible |
420 ) { | |
1116
05e4ef0f9489
Improved stub for CrossSections (including Factory and Facet).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1113
diff
changeset
|
421 logger.debug("CrossSectionGenerator.doCrossSectionOut"); |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
422 |
1141
bcba246d9c03
Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1125
diff
changeset
|
423 XYSeries series = new StyledXYSeries(seriesName, theme); |
1122
111794adf285
Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1116
diff
changeset
|
424 |
2685
5652a851f1b4
Fix water-through-mountain in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2674
diff
changeset
|
425 StyledSeriesBuilder.addPoints(series, (double [][]) o, false); |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1741
diff
changeset
|
426 |
1931
7c52e9cb2a72
Allow more than two datasets and more flexibility with axes in plots. Based on patch by S. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
427 addAxisSeries(series, 0, visible); |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
428 } |
2167
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
429 |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
430 |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
431 /** |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
432 * Creates a new <i>ChartSection</i>. |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
433 * |
3619
1548935582bc
Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3613
diff
changeset
|
434 * Overridden to prevent inclusion of subtitle. |
1548935582bc
Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3613
diff
changeset
|
435 * |
2167
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
436 * @return a new <i>ChartSection</i>. |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
437 */ |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
438 @Override |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
439 protected ChartSection buildChartSection() { |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
440 ChartSection chartSection = new ChartSection(); |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
441 chartSection.setTitle(getChartTitle()); |
3613
dd6e25980c91
Fixed typo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3602
diff
changeset
|
442 chartSection.setDisplayGrid(isGridVisible()); |
3619
1548935582bc
Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3613
diff
changeset
|
443 chartSection.setDisplayLogo(showLogo()); |
1548935582bc
Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3613
diff
changeset
|
444 chartSection.setLogoVPlacement(logoVPlace()); |
1548935582bc
Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3613
diff
changeset
|
445 chartSection.setLogoHPlacement(logoHPlace()); |
2167
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
446 return chartSection; |
e0add4b2d4bc
Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2152
diff
changeset
|
447 } |
1111
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
448 } |
b96ce07ba56c
Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
449 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |