annotate artifacts/src/main/java/org/dive4elements/river/exports/CrossSectionGenerator.java @ 7167:2fd238b681a9

Add debug output triggered by debugging the last commit
author Andre Heinecke <aheinecke@intevation.de>
date Thu, 26 Sep 2013 12:22:01 +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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
125 provideData(CrossSectionFacet.BLACKBOARD_CS_MASTER_DATA,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
131 getRiverName(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
135 logger.debug("Locale: " + Resources.getLocale(context.getMeta()));
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
179 plot.getDomainAxis(0).getRange(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
258 boolean visible
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
271 artifactFacet.getData(context),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
272 artifactFacet.getFacetDescription(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
273 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
278 artifactFacet.getData(context),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
279 artifactFacet.getFacetDescription(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
280 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
285 artifactFacet,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
286 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
291 artifactFacet.getFacetDescription(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
292 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
297 artifactFacet.getData(context),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
298 artifactFacet.getFacetDescription(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
299 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
304 artifactFacet,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
329 Object o,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
332 boolean visible
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
388 Object o,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
391 boolean visible
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
416 Object o,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
419 boolean visible
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
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 :

http://dive4elements.wald.intevation.org