annotate gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontal/HorizontalProfileOutputTransition.java @ 331:1c427acb6c76

Added subtitles to charts. gnv-artifacts/trunk@397 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 04 Dec 2009 15:30:20 +0000
parents 22a6493e8460
children
rev   line source
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2 *
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 */
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 package de.intevation.gnv.transition.profile.horizontal;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
6 import com.vividsolutions.jts.geom.Point;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
7 import com.vividsolutions.jts.io.WKTReader;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
8 import com.vividsolutions.jts.io.ParseException;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
9
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10 import java.io.IOException;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
11 import java.io.OutputStream;
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
12 import java.io.UnsupportedEncodingException;
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
13 import java.text.SimpleDateFormat;
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
14 import java.util.Collection;
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
15 import java.util.Date;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
16 import java.util.Iterator;
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
17 import java.util.Locale;
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
18
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
19 import org.apache.log4j.Logger;
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
20
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
21 import de.intevation.gnv.chart.Chart;
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
22 import de.intevation.gnv.chart.ChartLabels;
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
23 import de.intevation.gnv.chart.HorizontalProfileChart;
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
24 import de.intevation.gnv.geobackend.base.Result;
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
25 import de.intevation.gnv.statistics.HorizontalProfileStatistics;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
26 import de.intevation.gnv.statistics.Statistics;
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
27 import de.intevation.gnv.transition.exception.TransitionException;
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
29
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
30 import de.intevation.gnv.exports.DefaultExport;
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 234
diff changeset
31 import de.intevation.gnv.exports.ShapeDataCollector;
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
32 import de.intevation.gnv.exports.DefaultProfile;
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
33 import de.intevation.gnv.exports.Export.Profile;
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
34 import de.intevation.gnv.transition.describedata.KeyValueDescibeData;
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
35
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
36 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 * @author Tim Englich <tim.englich@intevation.de>
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
38 *
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39 */
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
40 public class HorizontalProfileOutputTransition extends
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
41 TimeSeriesOutputTransition {
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
42 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 * The UID of this class
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 */
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 private static final long serialVersionUID = 4401516087492028840L;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
47 private static Logger log = Logger
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
48 .getLogger(HorizontalProfileOutputTransition.class);
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
49
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
50 public static final String DATE_FORMAT = "yyyy.MM.dd HH:mm:ss";
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
51
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
52 public static final String [] CHART_TITLE_META = {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
53 "CRUISE",
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
54 "DEPTH",
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
55 "SHAPE"
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
56 };
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
57
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
58
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
59 public static final String [] CHART_TITLE_META_RESSOURCES = {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
60 "cruiseid",
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
61 "depth",
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
62 "coordinate"
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
63 };
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
64
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
65 public static final String [] TIMESERIES_CSV_PROFILE_NAMES = {
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
66 "SHAPE",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
67 "YORDINATE",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
68 "GROUP1",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
69 "GROUP2",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
70 "GROUP3"
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
71 };
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
72
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
73 public static final Profile TIMESERIES_CSV_PROFILE =
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
74 new DefaultProfile(
239
75da91eca29f Added possibility to print column labels in the first line of an export. Added labels for odv export as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 235
diff changeset
75 null,
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
76 ',',
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
77 '"',
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
78 '"',
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
79 "CSV",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
80 "ISO-8859-1");
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
81
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
82 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
83 * Constructor
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
84 */
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
85 public HorizontalProfileOutputTransition() {
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
86 super();
185
5fc8f41669a6 Added Calculation of the Distance in the unit km for Geodetic-Coordinates according to the Specification GT_0030.004
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
87 super.domainLable = "Distance [km]";
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
88 }
310
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 307
diff changeset
89
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 307
diff changeset
90
307
f0f106c7b906 Fixed some broken Method-Extentions.
Tim Englich <tim.englich@intevation.de>
parents: 301
diff changeset
91 @Override
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
92 protected Chart getChart(
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
93 ChartLabels chartLables,
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
94 Collection parameters,
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
95 Collection measurements,
310
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 307
diff changeset
96 Collection dates,
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
97 Collection result,
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
98 Locale locale,
327
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 324
diff changeset
99 String uuid,
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 324
diff changeset
100 boolean linesVisible,
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 324
diff changeset
101 boolean shapesVisible
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
102 ) {
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
103 Chart chart = null;
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
104
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
105 if (CACHE_CHART) {
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
106 log.info("Try to get horizontalprofile chart from cache.");
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
107 chart = (Chart) getChartFromCache(uuid);
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
108 }
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
109
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
110 if (chart != null)
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
111 return chart;
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
112
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
113 log.info("Chart not in cache yet.");
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
114 chart = new HorizontalProfileChart(
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
115 chartLables,
307
f0f106c7b906 Fixed some broken Method-Extentions.
Tim Englich <tim.englich@intevation.de>
parents: 301
diff changeset
116 createStyle(),
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
117 parameters,
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
118 measurements,
310
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 307
diff changeset
119 dates,
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
120 result,
310
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 307
diff changeset
121 null,
327
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 324
diff changeset
122 locale,
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 324
diff changeset
123 linesVisible,
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 324
diff changeset
124 shapesVisible
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
125 );
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
126 chart.generateChart();
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
127
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
128 if (CACHE_CHART) {
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
129 log.info("Put chart into cache.");
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
130 purifyChart(chart, uuid);
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
131 }
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
132
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
133 return chart;
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
134 }
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
135
300
6a3a02e004d9 Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 239
diff changeset
136
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
137 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
138 * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#getStatisticsGenerator()
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
139 */
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
140 @Override
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
141 protected Statistics getStatisticsGenerator() {
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
142 return new HorizontalProfileStatistics();
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
143 }
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
144
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
145 @Override
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
146 protected void createCSV(OutputStream outputStream,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
147 Collection<Result> chartResult)
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
148 throws UnsupportedEncodingException,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
149 IOException,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
150 TransitionException {
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
151
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
152 log.debug("createCSV for HorizontalProfileOutputTransition.");
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
153 DefaultExport export = new DefaultExport(
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 234
diff changeset
154 new ShapeDataCollector(TIMESERIES_CSV_PROFILE_NAMES));
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
155
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
156 export.create(TIMESERIES_CSV_PROFILE, outputStream, chartResult);
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
157 }
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
158
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
159
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
160 protected String createChartTitle(Locale locale, String uuid) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
161 String fisName = getFisName(locale);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
162 log.debug("created title for horizontal profile chart: " + fisName);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
163
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
164 return fisName;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
165 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
166
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
167
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
168 protected String createChartSubtitle(Locale locale, String uuid) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
169 log.debug("create chart subtitle.");
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
170 String subtitle = createTimePeriod(locale, uuid);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
171
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
172 // ODV results contain meta information about cruise, station and so on
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
173 Collection results = getODVResult(uuid);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
174 if (results != null) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
175 Iterator iter = results.iterator();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
176 Result result = iter.hasNext() ? (Result) iter.next() : null;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
177
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
178 subtitle += subtitle.length() != 0 ? "\n" : "";
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
179 subtitle += createMetaChartSubtitle(locale, result);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
180 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
181
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
182 return subtitle;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
183 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
184
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
185
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
186 protected String createMetaChartSubtitle(Locale locale, Result result) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
187 log.debug("Fetch meta information and put it into subtitle.");
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
188 if (result == null)
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
189 return "";
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
190
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
191 StringBuilder meta = new StringBuilder();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
192 WKTReader wktReader = new WKTReader();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
193
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
194
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
195 for (int i = 0; i < CHART_TITLE_META.length; i++) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
196 String qry = CHART_TITLE_META[i];
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
197
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
198 if (qry.equals("SHAPE")) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
199 try {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
200 Point p = (Point) wktReader.read(result.getString(qry));
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
201
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
202 meta.append(getMessage(locale,"coordinate","coordinate"));
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
203 meta.append(": ");
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
204
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
205 log.debug(
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
206 "Add " + qry + " to meta information of subtitle: "
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
207 + p.toString()
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
208 );
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
209 meta.append(p.getX() + ", " + p.getY());
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
210 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
211 catch (ParseException pe) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
212 log.warn("Error while parsing point.", pe);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
213 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
214 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
215 else {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
216 log.debug(
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
217 "Add " + qry + " to meta information of subtitle: "
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
218 + result.getString(qry)
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
219 );
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
220 meta.append(getMessage(
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
221 locale,
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
222 CHART_TITLE_META_RESSOURCES[i],
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
223 CHART_TITLE_META_RESSOURCES[i]
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
224 ));
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
225 meta.append(": ");
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
226 meta.append(result.getString(qry));
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
227 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
228
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
229 if (i != CHART_TITLE_META.length-1)
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
230 meta.append("\n");
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
231 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
232
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
233 log.debug("Meta title for chart: " + meta.toString());
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
234 return meta.toString();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
235 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
236
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
237
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
238 protected String createTimePeriod(Locale locale, String uuid) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
239 log.debug("create time period for chart subtitle.");
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
240 String subTitle = null;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
241 Date startDate = null;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
242 Date endDate = null;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
243
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
244 Collection dates = getDates(uuid);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
245 if (dates == null) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
246 log.debug("No time period for subtitle.");
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
247 return "";
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
248 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
249
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
250 SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
251 KeyValueDescibeData data = null;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
252
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
253 Iterator iter = dates.iterator();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
254 while (iter.hasNext()) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
255 try {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
256 data = (KeyValueDescibeData)iter.next();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
257
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
258 if (!data.isSelected())
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
259 continue;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
260
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
261 Date current = format.parse(data.getValue());
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
262 long time = current.getTime();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
263
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
264 if (startDate == null) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
265 startDate = current;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
266 endDate = current;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
267 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
268 else if (time < startDate.getTime()) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
269 startDate = current;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
270 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
271 else if (time > endDate.getTime()) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
272 endDate = current;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
273 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
274 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
275 catch (java.text.ParseException pe) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
276 log.warn("Error while parsing date: " + data.getValue(), pe);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
277 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
278 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
279
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
280 subTitle = format.format(startDate) + " - " + format.format(endDate);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
281 log.debug("created title for horizontal profile chart: " + subTitle);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
282
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
283 return subTitle;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
284 }
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
285 }

http://dive4elements.wald.intevation.org