annotate artifacts/src/main/java/org/dive4elements/river/exports/CrossSectionGenerator.java @ 6332:f5bb53106ae8

Remove createBarriersLayer and createBarriers The generated mapfiles did not work and were just confusing. This looks like historical cruft that was never deleted. The real barrier mapfiles are created in the Floodmap state
author Andre Heinecke <aheinecke@intevation.de>
date Thu, 13 Jun 2013 17:24:56 +0200
parents af13ceeba52a
children 1b35b2ddfc28
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 import org.w3c.dom.Document;
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
25
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
26 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
27 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
28 import org.dive4elements.river.artifacts.D4EArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
29 import org.dive4elements.river.artifacts.geom.Lines;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
30 import org.dive4elements.river.artifacts.model.CrossSectionFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
31 import org.dive4elements.river.artifacts.model.FacetTypes;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
32 import org.dive4elements.river.artifacts.model.HYKFactory;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
33 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
34 import org.dive4elements.river.jfree.RiverAnnotation;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
35 import org.dive4elements.river.jfree.StyledXYSeries;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
36 import org.dive4elements.river.model.FastCrossSectionLine;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
37 import org.dive4elements.river.themes.LineStyle;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
38 import org.dive4elements.river.themes.TextStyle;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
39 import org.dive4elements.river.themes.ThemeAccess;
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5864
diff changeset
40 import org.dive4elements.river.utils.RiverUtils;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
41 import org.dive4elements.river.utils.Formatter;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5130
diff changeset
42 import org.dive4elements.river.utils.ThemeUtil;
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
43
2120
f021080cb409 Use improved caching for cross section lines data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2107
diff changeset
44
1111
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 * An OutGenerator that generates cross section graphs.
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 */
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 public class CrossSectionGenerator
2138
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
49 extends LongitudinalSectionGenerator
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 implements FacetTypes
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 {
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52 /** The logger that is used in this generator. */
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 private static Logger logger =
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
54 Logger.getLogger(CrossSectionGenerator.class);
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56 public static final String I18N_CHART_TITLE =
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
57 "chart.cross_section.title";
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59 public static final String I18N_CHART_SUBTITLE =
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
60 "chart.cross_section.subtitle";
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 public static final String I18N_XAXIS_LABEL =
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
63 "chart.cross_section.xaxis.label";
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
65 public static final String I18N_YAXIS_LABEL =
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
66 "chart.cross_section.yaxis.label";
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67
1125
65d8b3340397 Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1122
diff changeset
68 public static final String I18N_CHART_TITLE_DEFAULT = "Querprofildiagramm";
65d8b3340397 Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1122
diff changeset
69 public static final String I18N_XAXIS_LABEL_DEFAULT = "Abstand [m]";
65d8b3340397 Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1122
diff changeset
70 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
71
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73 /** Trivial Constructor. */
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74 public CrossSectionGenerator() {
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 super();
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 }
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78
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
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 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
81 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
82 @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
83 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
84 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
85 }
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
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 /** 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
88 @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
89 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
90 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
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 };
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
93 }
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
94
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
95
1125
65d8b3340397 Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1122
diff changeset
96 /**
65d8b3340397 Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1122
diff changeset
97 * Get localized chart title.
65d8b3340397 Cleanups of CrossSection*.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1122
diff changeset
98 */
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
99 @Override
2104
bb0dede9294f Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
100 public String getDefaultChartTitle() {
1141
bcba246d9c03 Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1125
diff changeset
101 Object[] i18n_msg_args = new Object[] {
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
102 getRiverName()
1141
bcba246d9c03 Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1125
diff changeset
103 };
bcba246d9c03 Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1125
diff changeset
104 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
105 }
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
106
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
107
2138
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
108 /** Always return default subtitle. */
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
109 @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
110 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
111 // XXX NOTE: overriding this method disables ChartSettings subtitle!
2167
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
112 // The default implementation of this method in ChartGenerator returns
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
113 // the subtitle changed via the chart settings dialog. This method
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
114 // always returns the subtitle containing river and km, NEVER the
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
115 // 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
116 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
117 }
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
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
2138
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
120 /** 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
121 @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
122 protected String getDefaultChartSubtitle() {
2042
3f6b519300ec Include selected km in cross section diagrams subtitle.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2033
diff changeset
123 List<DataProvider> providers =
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
124 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
125 double km = 0d;
3f6b519300ec Include selected km in cross section diagrams subtitle.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2033
diff changeset
126 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
127 FastCrossSectionLine csl = (FastCrossSectionLine) providers.get(0).
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
128 provideData(CrossSectionFacet.BLACKBOARD_CS_MASTER_DATA,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
129 null, context);
3602
e1fd2dfdcb80 Issue #806 and NullPointerExceptions in CrossSectionGenerator fixed
Christian Lins <christian.lins@intevation.de>
parents: 3555
diff changeset
130 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
131 }
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133 Object[] args = new Object[] {
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
134 getRiverName(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
135 km
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
136 };
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
137
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
138 logger.debug("Locale: " + Resources.getLocale(context.getMeta()));
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
139
1989
156304542edf Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1975
diff changeset
140 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
141 }
156304542edf Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1975
diff changeset
142
156304542edf Finished the ChartSection part of the chart Settings returned by the XYChartGenerator.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1975
diff changeset
143
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
144 /** 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
145 protected Paint colorForHYKZone(String zoneName) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
146 if (zoneName.startsWith("R")) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
147 // Brownish.
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
148 return new Color(153, 60, 0);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
149 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
150 else if (zoneName.startsWith("V")) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
151 // Greenish.
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
152 return new Color(0, 255, 0);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
153 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
154 else if (zoneName.startsWith("B")) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
155 // Grayish.
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
156 return new Color(128, 128, 128);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
157 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
158 else if (zoneName.startsWith("H")) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
159 // Blueish.
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
160 return new Color(0, 0, 255);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
161 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
162 else {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
163 // Default.
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
164 logger.debug("Unknown zone type found.");
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
165 return new Color(255, 0, 0);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
166 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
167 }
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3278
diff changeset
168
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
169 @Override
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
170 protected void addAnnotationsToRenderer(XYPlot plot) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
171 super.addAnnotationsToRenderer(plot);
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3278
diff changeset
172
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
173 // Paints for the boxes/lines.
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
174 Stroke basicStroke = new BasicStroke(1.0f);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
175
4047
3dc26ec2558d Removed dead code
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3904
diff changeset
176 // 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
177 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
178 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
179
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
180 // OPTMIMIZE: Pre-calculate positions
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
181 ChartArea area = new ChartArea(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
182 plot.getDomainAxis(0).getRange(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
183 plot.getRangeAxis().getRange());
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3278
diff changeset
184
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
185 for(RiverAnnotation fa : this.annotations) {
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3278
diff changeset
186
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
187 // Access text styling, if any.
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
188 Document theme = fa.getTheme();
3464
0b9b2a0c4e64 Point labels can have a background color now.
Christian Lins <christian.lins@intevation.de>
parents: 3453
diff changeset
189 TextStyle textStyle = null;
4047
3dc26ec2558d Removed dead code
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3904
diff changeset
190 // XXX: DEAD CODE // LineStyle lineStyle = null;
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3278
diff changeset
191
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
192 // 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
193 if (theme != null) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
194 ThemeAccess themeAccess = new ThemeAccess(theme);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
195 textStyle = themeAccess.parseTextStyle();
4047
3dc26ec2558d Removed dead code
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3904
diff changeset
196 // 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
197 if (fa.getLabel() != null) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
198 LegendItemCollection lic = new LegendItemCollection();
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
199 LegendItemCollection old = plot.getFixedLegendItems();
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
200 lic.add(createLegendItem(theme, fa.getLabel()));
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
201 // (Re-)Add prior legend entries.
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
202 if (old != null) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
203 old.addAll(lic);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
204 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
205 else {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
206 old = lic;
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
207 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
208 plot.setFixedLegendItems(old);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
209 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
210 }
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3278
diff changeset
211
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
212 // Hyks.
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
213 for (HYKFactory.Zone zone: fa.getBoxes()) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
214 // 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
215 // 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
216 fillPaint = colorForHYKZone(zone.getName());
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3278
diff changeset
217
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
218 XYBoxAnnotation boxA = new XYBoxAnnotation(zone.getFrom(), area.atGround(),
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
219 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
220 XYBoxAnnotation boxB = new XYBoxAnnotation(zone.getFrom(), area.atGround(),
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
221 zone.getTo(), area.atTop(), basicStroke, fillPaint, tranPaint);
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3278
diff changeset
222
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
223 XYTextAnnotation tex = new XYTextAnnotation(zone.getName(),
4653
a93699cb31eb CrossSectionGenerator: Center HYK-labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4047
diff changeset
224 zone.getFrom() + (zone.getTo() - zone.getFrom()) / 2.0d,
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
225 area.ofGround(0.015f));
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
226 if (textStyle != null) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
227 textStyle.apply(tex);
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
228 }
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3278
diff changeset
229
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
230 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
231 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
232 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
233 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
234 }
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
235 }
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
236
2051
4ba5036109d2 Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2048
diff changeset
237 @Override
4ba5036109d2 Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2048
diff changeset
238 protected String getDefaultXAxisLabel() {
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
239 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
240 }
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
241
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
242
2051
4ba5036109d2 Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2048
diff changeset
243 @Override
4ba5036109d2 Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2048
diff changeset
244 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
245 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
246
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5864
diff changeset
247 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
248
b11f3563a117 Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4653
diff changeset
249 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
250 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
251 new Object[] { unit });
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
252 }
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
253
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
254
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
255 /**
1116
05e4ef0f9489 Improved stub for CrossSections (including Factory and Facet).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1113
diff changeset
256 * 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
257 */
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
258 @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
259 public void doOut(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
260 ArtifactAndFacet artifactFacet,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
261 Document attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
262 boolean visible
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
263 ) {
1944
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1931
diff changeset
264 String name = artifactFacet.getFacetName();
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
265
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
266 logger.debug("CrossSectionGenerator.doOut: " + name);
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 if (name == null) {
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
269 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
270 return;
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
271 }
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
272
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
273 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
274 doCrossSectionOut(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
275 artifactFacet.getData(context),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
276 artifactFacet.getFacetDescription(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
277 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
278 visible);
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
279 }
1122
111794adf285 Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1116
diff changeset
280 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
281 doCrossSectionWaterLineOut(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
282 artifactFacet.getData(context),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
283 artifactFacet.getFacetDescription(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
284 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
285 visible);
1122
111794adf285 Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1116
diff changeset
286 }
2020
4f7f781e4481 Improved area rendering workflow.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2006
diff changeset
287 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
288 doArea(artifactFacet.getData(context),
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
289 artifactFacet,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
290 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
291 visible);
2006
5aecebcc4698 Add area dataseries when facet delivers one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1989
diff changeset
292 }
2138
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
293 else if (name.equals(HYK)) {
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
294 doHyk(artifactFacet.getData(context),
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
295 artifactFacet.getFacetDescription(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
296 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
297 visible);
2138
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
298 }
3198
d35f28655fa6 Create and handle new manual line type facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
299 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
300 doCrossSectionWaterLineOut(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
301 artifactFacet.getData(context),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
302 artifactFacet.getFacetDescription(),
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
303 attr,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
304 visible);
3198
d35f28655fa6 Create and handle new manual line type facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
305 }
2206
e2124ca11adb Add manual point handling for many different chart types.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2167
diff changeset
306 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
307 doPoints(artifactFacet.getData(context),
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
308 artifactFacet,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
309 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
310 }
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
311 else {
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
312 logger.warn("CrossSection.doOut: Unknown facet name: " + name);
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
313 return;
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
314 }
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
315 }
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
316
2020
4f7f781e4481 Improved area rendering workflow.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2006
diff changeset
317
2104
bb0dede9294f Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
318 /** 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
319 @Override
2104
bb0dede9294f Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
320 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
321 // 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
322 return 0;
2006
5aecebcc4698 Add area dataseries when facet delivers one.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1989
diff changeset
323 }
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
324
2020
4f7f781e4481 Improved area rendering workflow.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2006
diff changeset
325
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
326 /**
1122
111794adf285 Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1116
diff changeset
327 * 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
328 *
1141
bcba246d9c03 Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1125
diff changeset
329 * @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
330 * @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
331 */
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
332 protected void doCrossSectionWaterLineOut(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
333 Object o,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
334 String seriesName,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
335 Document theme,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
336 boolean visible
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
337 ) {
1122
111794adf285 Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1116
diff changeset
338 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
339
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
340 Lines.LineData lines = (Lines.LineData) o;
2728
306b9d0f0fb3 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2688
diff changeset
341 // 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
342 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
343
3228
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
344 if (!ThemeUtil.parseShowLineLabel(theme)) {
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
345 series.setLabel("");
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
346 }
2663
33d61e2a49a2 Added and respect two new properties of waterlevels in cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2652
diff changeset
347 if (ThemeUtil.parseShowWidth(theme)) {
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
348 NumberFormat nf = Formatter.getMeterFormat(this.context);
3228
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
349 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
350 if (series.getLabel().length() == 0) {
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
351 series.setLabel(labelAdd);
3228
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
352 }
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
353 else {
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
354 series.setLabel(series.getLabel() + ", " + labelAdd);
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
355 }
2663
33d61e2a49a2 Added and respect two new properties of waterlevels in cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2652
diff changeset
356 }
3904
2d2ca7bf70a7 Prevent ArrayIndexOutOfBounds-Exception.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3771
diff changeset
357 if (ThemeUtil.parseShowLevel(theme) && lines.points.length > 1
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
358 && lines.points[1].length > 0) {
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
359 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
360 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
361
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5864
diff changeset
362 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
363
b11f3563a117 Part of fix for flys/issue1128: Use rivers unit in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4653
diff changeset
364 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
365 if (series.getLabel().length() == 0) {
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
366 series.setLabel(labelAdd);
3228
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
367 }
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
368 else {
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
369 series.setLabel(series.getLabel() + ", " + labelAdd);
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
370 }
2663
33d61e2a49a2 Added and respect two new properties of waterlevels in cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2652
diff changeset
371 }
2688
99350b06a780 Improved middle height calculations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2685
diff changeset
372 if (ThemeUtil.parseShowMiddleHeight(theme) && lines.width != 0) {
3278
c27c4e06dd87 Re-add HYK rendering code to CrossSectionGenerator
Christian Lins <christian.lins@intevation.de>
parents: 3228
diff changeset
373 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
374 String labelAdd = "T=" + nf.format(lines.area / lines.width) + "m";
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
375 // : " + 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
376 if (series.getLabel().length() == 0) {
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
377 series.setLabel(labelAdd);
3228
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
378 }
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
379 else {
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
380 series.setLabel(series.getLabel() + ", " + labelAdd);
698d09930329 Fix issue695 (labels of waterlines).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3227
diff changeset
381 }
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
382 }
2728
306b9d0f0fb3 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2688
diff changeset
383
2685
5652a851f1b4 Fix water-through-mountain in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2674
diff changeset
384 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
385
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
386 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
387 }
111794adf285 Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1116
diff changeset
388
111794adf285 Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1116
diff changeset
389
2138
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
390 /** 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
391 protected void doHyk(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
392 Object o,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
393 String seriesName,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
394 Document theme,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
395 boolean visible
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
396 ) {
2138
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
397 logger.debug("CrossSectionGenerator.doHyk");
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
398
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
399 List<HYKFactory.Zone> zones = (List<HYKFactory.Zone>) o;
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
400
3555
b1912514e0f5 s/container.size() == 0/container.isEmpty()/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3464
diff changeset
401 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
402 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
403 return;
2138
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
404 }
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
405
2152
2336927cb096 Add basic (text) styling for HYKS.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2143
diff changeset
406 // Actual Styling is done in XYChartGenerator.
2772
5e8e42a36a90 Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2728
diff changeset
407 if (visible) {
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
408 addAnnotations(new RiverAnnotation(seriesName, null, zones, theme));
2772
5e8e42a36a90 Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2728
diff changeset
409 }
2138
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
410 }
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
411
59bb5c895be3 Improved HYK/Zones- handling.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2126
diff changeset
412
1122
111794adf285 Get real (but yet not parameterized) data to display in CrossSection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1116
diff changeset
413 /**
1116
05e4ef0f9489 Improved stub for CrossSections (including Factory and Facet).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1113
diff changeset
414 * Do cross sections out.
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
415 *
1141
bcba246d9c03 Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1125
diff changeset
416 * @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
417 * @param theme Theme for the data series.
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
418 */
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
419 protected void doCrossSectionOut(
3771
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
420 Object o,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
421 String seriesName,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
422 Document theme,
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
423 boolean visible
04309ca24614 Locales fix
Christian Lins <christian.lins@intevation.de>
parents: 3640
diff changeset
424 ) {
1116
05e4ef0f9489 Improved stub for CrossSections (including Factory and Facet).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1113
diff changeset
425 logger.debug("CrossSectionGenerator.doCrossSectionOut");
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
426
1141
bcba246d9c03 Fix various issues like i18n in cross section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1125
diff changeset
427 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
428
2685
5652a851f1b4 Fix water-through-mountain in cross sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2674
diff changeset
429 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
430
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
431 addAxisSeries(series, 0, visible);
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
432 }
2167
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
433
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
434
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
435 /**
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
436 * Creates a new <i>ChartSection</i>.
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
437 *
3619
1548935582bc Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
438 * Overridden to prevent inclusion of subtitle.
1548935582bc Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
439 *
2167
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
440 * @return a new <i>ChartSection</i>.
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
441 */
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
442 @Override
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
443 protected ChartSection buildChartSection() {
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
444 ChartSection chartSection = new ChartSection();
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
445 chartSection.setTitle(getChartTitle());
3613
dd6e25980c91 Fixed typo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3602
diff changeset
446 chartSection.setDisplayGrid(isGridVisible());
3619
1548935582bc Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
447 chartSection.setDisplayLogo(showLogo());
1548935582bc Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
448 chartSection.setLogoVPlacement(logoVPlace());
1548935582bc Add logo settings to cross section chartsettings.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3613
diff changeset
449 chartSection.setLogoHPlacement(logoHPlace());
2167
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
450 return chartSection;
e0add4b2d4bc Issue 461.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2152
diff changeset
451 }
1111
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
452 }
b96ce07ba56c Added dummy sceleton for Cross Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
453 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org