annotate artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator2.java @ 8730:cb33de3434a8

(issue1754) Proper subtitle handling for Radius This deduplicates the subtitle and zoom / radius calculation code by moving it out of the processors. Doing this fixes cases where the subtitle would be removed when a the according filtered facet was removed although it should still have shown the Range for example. Range is now also added as a subtitle for the difference diagrams. This adds some tasty hack (with cheese) to determine wether or not the user has set the subtitle. See the comment in getChartSubtitlePure in LongitudinalSectionGenerator2 for details.
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 30 Apr 2015 13:06:51 +0200
parents 68827654ea7a
children bccc476e78eb
rev   line source
7105
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
3 *
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
7 */
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
8
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.exports;
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
10
7157
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
11 import org.dive4elements.river.artifacts.D4EArtifact;
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
12 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
13 import org.dive4elements.river.artifacts.access.RangeAccess;
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
14 import org.dive4elements.river.jfree.Bounds;
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
15 import org.dive4elements.river.jfree.DoubleBounds;
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
16 import org.dive4elements.river.themes.ThemeDocument;
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
17 import org.dive4elements.river.artifacts.model.FacetTypes;
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
18 import org.dive4elements.river.artifacts.access.RiverAccess;
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
19 import org.dive4elements.river.artifacts.model.ZoomScale;
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
20 import org.dive4elements.river.artifacts.context.RiverContext;
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
21 import org.dive4elements.river.artifacts.resources.Resources;
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
22
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
23 import org.jfree.data.Range;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
24
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
25 import java.util.List;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
26 import java.util.ArrayList;
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
27 import java.util.HashSet;
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
28
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
29 import org.apache.log4j.Logger;
7157
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
30
7105
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
31 public class LongitudinalSectionGenerator2 extends DiagramGenerator
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
32 {
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
33 private static Logger log = Logger.getLogger(LongitudinalSectionGenerator2.class);
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
34
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
35 /** Wrapper around the doOut info for postprocessing. */
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
36 protected static class SuperBundle
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
37 {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
38 public ArtifactAndFacet bundle;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
39 public ThemeDocument theme;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
40 boolean visible;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
41 public SuperBundle(ArtifactAndFacet bundle, ThemeDocument theme, boolean visible) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
42 this.bundle = bundle;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
43 this.theme = theme;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
44 this.visible = visible;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
45 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
46 };
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
47
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
48 protected List<SuperBundle> postOutAF;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
49
7105
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
50 public static final String I18N_CHART_SHORT_SUBTITLE =
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
51 "chart.longitudinal.section.shortsubtitle";
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
52
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
53 public static final String I18N_CHART_LOCATION_SUBTITLE =
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
54 "chart.longitudinal.section.locsubtitle";
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
55
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
56 public static final String I18N_CHART_DISTANCE_SUBTITLE =
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
57 "chart.longitudinal.section.subtitle";
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
58
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
59 public static final String I18N_SUBTITLE_RADIUS =
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
60 "chart.subtitle.radius";
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
61
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
62 @Override
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
63 protected String getChartSubtitlePure() {
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
64 ChartSettings chartSettings = getChartSettings();
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
65
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
66 String titleBeforeParts = null;
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
67
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
68 if (subTitleParts != null && !subTitleParts.isEmpty()) {
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
69 // This is needed here to determine the initial
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
70 // subtitle before the processing happens to distinguis
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
71 // between that subtitle and a subtitle set by the user.
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
72 //
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
73 // The underlying problem is that getChartSubtitle is called
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
74 // to build the chart settings way before the facets are processed.
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
75 // So we have to figure out somehow if the user modified the title
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
76 // in the chartsettings or if it was just put there because it
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
77 // was the default.
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
78
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
79 HashSet<String> buf = subTitleParts;
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
80 subTitleParts = null;
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
81 titleBeforeParts = getDefaultChartSubtitle();
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
82 subTitleParts = buf;
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
83 }
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
84
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
85
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
86 if (chartSettings != null) {
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
87 String userTitle = getChartSubtitle(chartSettings);
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
88 if (userTitle != null && !userTitle.equals(titleBeforeParts)) {
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
89 // set by the user. use this.
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
90 log.debug("Using user subtitle: " + userTitle);
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
91 return userTitle;
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
92 }
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
93 }
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
94 log.debug("Using default subtitle: " + getDefaultChartSubtitle());
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
95 return getDefaultChartSubtitle();
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
96 }
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
97
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
98
7105
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
99 @Override
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
100 public String getDefaultChartSubtitle() {
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
101 double[] dist = getRange();
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
102
7807
ad4a3980092f Concatenate the subtitle parts and add them to the default subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7168
diff changeset
103 String parts = "";
ad4a3980092f Concatenate the subtitle parts and add them to the default subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7168
diff changeset
104 if (subTitleParts != null && !subTitleParts.isEmpty()) {
ad4a3980092f Concatenate the subtitle parts and add them to the default subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7168
diff changeset
105 for (String p : subTitleParts) {
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
106 parts += " " + p;
7807
ad4a3980092f Concatenate the subtitle parts and add them to the default subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7168
diff changeset
107 }
ad4a3980092f Concatenate the subtitle parts and add them to the default subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7168
diff changeset
108 }
7105
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
109 if (dist == null || dist.length != 2 ||
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
110 Double.isNaN(dist[0]) || Double.isNaN(dist[1])) {
7118
4605d6ca4ee9 Removed obsolete imports. Minor code cosmetics.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7107
diff changeset
111 Object [] args = new Object[] {getRiverName()};
7807
ad4a3980092f Concatenate the subtitle parts and add them to the default subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7168
diff changeset
112 return msg(I18N_CHART_SHORT_SUBTITLE, "", args) + parts;
7118
4605d6ca4ee9 Removed obsolete imports. Minor code cosmetics.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7107
diff changeset
113 }
4605d6ca4ee9 Removed obsolete imports. Minor code cosmetics.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7107
diff changeset
114
4605d6ca4ee9 Removed obsolete imports. Minor code cosmetics.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7107
diff changeset
115 if (Math.abs(dist[0] - dist[1]) < 1E-5) {
4605d6ca4ee9 Removed obsolete imports. Minor code cosmetics.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7107
diff changeset
116 Object [] args = new Object[] {getRiverName(), dist[1]};
7807
ad4a3980092f Concatenate the subtitle parts and add them to the default subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7168
diff changeset
117 return msg(I18N_CHART_LOCATION_SUBTITLE, "", args) + parts;
7105
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
118 }
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
119 Object [] args = new Object[] {getRiverName(), dist[0], dist[1]};
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
120 return msg(I18N_CHART_DISTANCE_SUBTITLE, "", args) + parts;
7105
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
121 }
7157
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
122
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
123 protected void calculateRadius() {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
124 // Fixed range in settings is preferred
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
125 Range candidate = getRangeForAxisFromSettings("X");
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
126 Bounds dataBounds = getXBounds(0);
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
127 if (candidate == null) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
128 candidate = getDomainAxisRange(); // Diagram is zoomed
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
129 if (candidate != null && dataBounds == null) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
130 log.debug("Can't calculate the zoom without any X bounds.");
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
131 candidate = null;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
132 } else if (candidate != null) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
133 // domainAxisRange is relative so we have to take
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
134 // this into account.
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
135 Bounds bounds =
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
136 calculateZoom(dataBounds, candidate);
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
137 candidate = new Range(bounds.getLower().doubleValue(),
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
138 bounds.getUpper().doubleValue());
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
139 log.debug("Using X Range from zoom.");
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
140 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
141 } else {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
142 log.debug("Using X Range from settings.");
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
143 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
144
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
145 if (candidate == null) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
146 if (dataBounds == null) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
147 // Diagram is empty.
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
148 candidate = new Range(0d, 0d);
8725
68827654ea7a (issue1754) Fix check for empty data bounds
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8723
diff changeset
149 log.debug("Empty diagram using fake Range");
68827654ea7a (issue1754) Fix check for empty data bounds
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8723
diff changeset
150 } else {
68827654ea7a (issue1754) Fix check for empty data bounds
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8723
diff changeset
151 // Diagram is not zoomed
68827654ea7a (issue1754) Fix check for empty data bounds
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8723
diff changeset
152 candidate = new Range(dataBounds.getLower().doubleValue(),
68827654ea7a (issue1754) Fix check for empty data bounds
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8723
diff changeset
153 dataBounds.getUpper().doubleValue());
68827654ea7a (issue1754) Fix check for empty data bounds
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8723
diff changeset
154 log.debug("Using Full X Range.");
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
155 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
156 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
157 log.debug("startkm for Radius is: " + candidate.getLowerBound() +
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
158 " endkm: " + candidate.getUpperBound());
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
159
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
160 // This might not be neccessary if every facet uses only the
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
161 // radius and does not do its own zoomscale calculation.
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
162 context.putContextValue("startkm", candidate.getLowerBound());
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
163 context.putContextValue("endkm", candidate.getUpperBound());
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
164 context.putContextValue("bounds_defined", true);
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
165
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
166 RiverContext fc = (RiverContext)context.globalContext();
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
167 ZoomScale scales = (ZoomScale)fc.get("zoomscale");
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
168 RiverAccess access = new RiverAccess((D4EArtifact)getMaster());
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
169 String river = access.getRiverName();
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
170
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
171 double radius = scales.getRadius(river, candidate.getLowerBound(),
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
172 candidate.getUpperBound());
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
173 context.putContextValue("radius", radius);
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
174 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
175
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
176 @Override
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
177 protected void postProcess() {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
178 if (postOutAF == null) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
179 log.debug("PostProcess without bundles to process");
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
180 return;
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
181 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
182
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
183 // fake startkm and endkm for the dry run
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
184 context.putContextValue("startkm", 0d);
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
185 context.putContextValue("endkm", 42d);
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
186 for (SuperBundle superbundle: postOutAF) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
187 // Dry run with fake start /end
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
188 // to get the filtered facets also included
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
189 // in the x axis range.
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
190 super.doOut(superbundle.bundle, superbundle.theme, false);
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
191 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
192
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
193 calculateRadius(); // This calculates the real start and end km's
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
194
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
195 boolean haveVisibleFiltered = false;
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
196 for (SuperBundle superbundle: postOutAF) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
197 super.doOut(superbundle.bundle, superbundle.theme, superbundle.visible);
8730
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
198 if (!haveVisibleFiltered) {
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
199 haveVisibleFiltered = superbundle.visible;
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
200 }
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
201 }
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
202 if (haveVisibleFiltered) {
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
203 log.debug("Adding radius subtitle.");
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
204
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
205 addSubtitle(Resources.getMsg(
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
206 getCallContext().getMeta(),
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
207 I18N_SUBTITLE_RADIUS,
cb33de3434a8 (issue1754) Proper subtitle handling for Radius
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8725
diff changeset
208 new Object[] { "$RADIUS" }));
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
209 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
210 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
211
7157
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
212 /* We override doOut here to save the startkm and endkm in the
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
213 * context. Some facets will deliver different data because of
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
214 * that setting. It is mainly used in MINFO where it causes
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
215 * adaptive smoothing on the data if you are zoomed out do
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
216 * reduce the static in the curve. */
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
217 @Override
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
218 public void doOut(
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
219 ArtifactAndFacet bundle,
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
220 ThemeDocument theme,
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
221 boolean visible
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
222 ) {
8723
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
223 String facetName = bundle.getFacetName();
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
224 if (FacetTypes.IS.FILTERED(facetName)) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
225 // We can only process the filtered (smoothed) facets
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
226 // after we know the diagram's extend to correctly calculate
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
227 // the radius of the filter / smoothing operation. So
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
228 // we postprocess them.
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
229
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
230 SuperBundle superbundle = new SuperBundle(bundle, theme, visible);
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
231 if (postOutAF == null) {
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
232 postOutAF = new ArrayList<SuperBundle>();
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
233 }
686d8876edf9 (issue1754) Fix Radius calculation for filtered (smoothed) facets
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8722
diff changeset
234 postOutAF.add(superbundle);
7877
43f18dc56c5a Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7807
diff changeset
235 return;
43f18dc56c5a Fixed subtitle handling and added flowvelocity subtitle.
Raimund Renkert <rrenkert@intevation.de>
parents: 7807
diff changeset
236 }
7157
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
237 super.doOut(bundle, theme, visible);
ab109ae2acc6 Add startkm and endkm setting to longitudinal section generator 2
Andre Heinecke <aheinecke@intevation.de>
parents: 7118
diff changeset
238 }
7105
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
239 }
ab57b6eee71c Add refactored LongitudinalSectionGenerator2 that inherits DiagramGenerator
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
240 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org