annotate gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.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 e37930705daa
rev   line source
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /**
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2 *
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 */
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 package de.intevation.gnv.transition.timeseries;
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
6 import java.io.IOException;
304
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
7 import java.io.File;
73
504570de21fd Refactoring Work depending on Infrastructurchanges in the Artifact-Module
Tim Englich <tim.englich@intevation.de>
parents: 68
diff changeset
8 import java.io.OutputStream;
321
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
9 import java.io.FileOutputStream;
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
10 import java.io.UnsupportedEncodingException;
217
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
11 import java.util.ArrayList;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
12 import java.util.Collection;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
13 import java.util.Iterator;
217
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
14 import java.util.List;
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: 299
diff changeset
15 import java.util.Locale;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
16
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
17 import javax.xml.transform.Transformer;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
18 import javax.xml.transform.TransformerConfigurationException;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
19 import javax.xml.transform.TransformerException;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
20 import javax.xml.transform.TransformerFactory;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
21 import javax.xml.transform.TransformerFactoryConfigurationError;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
22 import javax.xml.transform.dom.DOMSource;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
23 import javax.xml.transform.stream.StreamResult;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
24
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
25 import org.apache.log4j.Logger;
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
26 import org.w3c.dom.Document;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
27 import org.w3c.dom.Element;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
28 import org.w3c.dom.Node;
217
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
29 import org.w3c.dom.NodeList;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
30
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: 299
diff changeset
31 import org.jfree.chart.ChartTheme;
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: 299
diff changeset
32
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
33 import au.com.bytecode.opencsv.CSVWriter;
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
34 import de.intevation.artifactdatabase.Config;
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
35 import de.intevation.artifactdatabase.XMLUtils;
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
36 import de.intevation.artifacts.CallMeta;
178
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
37 import de.intevation.artifacts.PreferredLocale;
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
38 import de.intevation.gnv.artifacts.ressource.RessourceFactory;
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: 299
diff changeset
39 import de.intevation.gnv.chart.Chart;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
40 import de.intevation.gnv.chart.ChartLabels;
299
d6c75171f1e9 Pass the xml document of the request to OutputTransition for more information about output formats of charts (png,jpeg).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 253
diff changeset
41 import de.intevation.gnv.chart.TimeSeriesChart;
304
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
42 import de.intevation.gnv.chart.XMLChartTheme;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
43 import de.intevation.gnv.chart.exception.TechnicalChartException;
318
5f2820e821e0 Implemented a helper class for exporting charts. Adapted code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 315
diff changeset
44 import de.intevation.gnv.exports.ChartExportHelper;
232
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
45 import de.intevation.gnv.exports.DefaultExport;
301
3ea030aafe65 Removed duplicated and needless imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 300
diff changeset
46 import de.intevation.gnv.exports.DefaultDataCollector;
3ea030aafe65 Removed duplicated and needless imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 300
diff changeset
47 import de.intevation.gnv.exports.SimpleOdvDataCollector;
232
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
48 import de.intevation.gnv.exports.DefaultProfile;
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
49 import de.intevation.gnv.exports.Export.Profile;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
50 import de.intevation.gnv.geobackend.base.Result;
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
51 import de.intevation.gnv.statistics.Statistic;
253
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
52 import de.intevation.gnv.statistics.StatisticSet;
98
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
53 import de.intevation.gnv.statistics.Statistics;
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
54 import de.intevation.gnv.statistics.TimeseriesStatistics;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
55 import de.intevation.gnv.statistics.exception.StatisticsException;
217
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
56 import de.intevation.gnv.timeseries.gap.DefaultTimeGap;
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
57 import de.intevation.gnv.timeseries.gap.TimeGap;
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
58 import de.intevation.gnv.transition.InputData;
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 import de.intevation.gnv.transition.OutputTransitionBase;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
60 import de.intevation.gnv.transition.describedata.KeyValueDescibeData;
81
9b41f3688610 Added Support for TimeSeriesMesh
Tim Englich <tim.englich@intevation.de>
parents: 73
diff changeset
61 import de.intevation.gnv.transition.describedata.NamedCollection;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
62 import de.intevation.gnv.transition.exception.TransitionException;
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
63 import de.intevation.gnv.utils.ArtifactXMLUtilities;
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
64
230
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
65
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
66 /**
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
67 * @author Tim Englich <tim.englich@intevation.de>
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
68 *
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
69 */
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
70 public class TimeSeriesOutputTransition extends OutputTransitionBase {
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
71
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
72 protected static final boolean CACHE_CHART =
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: 299
diff changeset
73 Boolean.parseBoolean(System.getProperty("cache.chart", "false"));
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: 299
diff changeset
74
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
75 protected static final boolean PDF_FORMAT_LANDSCAPE =
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
76 Boolean.parseBoolean(System.getProperty("export.pdf.landscape","true"));
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
77
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
78 protected static final String[] IMG_EXPORT_FORMAT = {
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
79 "PNG", "JPEG", "GIF"
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
80 };
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
81
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
82 /**
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
83 * The UID of this Class
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
84 */
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
85 private static final long serialVersionUID = 4178407570503098858L;
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
86
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
87 /**
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
88 * the logger, used to log exceptions and additonaly information
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
89 */
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
90 private static Logger log = Logger
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
91 .getLogger(TimeSeriesOutputTransition.class);
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: 299
diff changeset
92
217
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
93 private static List<TimeGap> timeGapDefinitions = null;
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
94
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
95 protected String domainLable = "Zeit [UTC]";
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
96
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
97 protected String featureValuesName = "featureid";
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
98 protected String parameterValuesName = "parameterid";
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
99 protected String measuremenValueName = "measurementid";
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
100 protected String dateValueName = "dateid";
230
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
101
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
102 public static final String [] TIMESERIES_CSV_PROFILE_NAMES = {
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
103 "XORDINATE",
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
104 "YORDINATE",
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
105 "GROUP1",
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
106 "GROUP2",
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
107 "GROUP3"
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
108 };
232
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
109
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
110 public static final String [] TIMESERIES_ODV_PROFILE_NAMES = {
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
111 "CRUISE",
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
112 "STATION",
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
113 "TYPE",
238
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 233
diff changeset
114 "SHAPE",
232
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
115 "BOTDEPTH",
247
af474a541f74 Sort Columns to the given order of the ODV-Specification
Tim Englich <tim.englich@intevation.de>
parents: 241
diff changeset
116 "DEPTH",
af474a541f74 Sort Columns to the given order of the ODV-Specification
Tim Englich <tim.englich@intevation.de>
parents: 241
diff changeset
117 "TIMEVALUE",
af474a541f74 Sort Columns to the given order of the ODV-Specification
Tim Englich <tim.englich@intevation.de>
parents: 241
diff changeset
118 "DATAVALUE",
af474a541f74 Sort Columns to the given order of the ODV-Specification
Tim Englich <tim.englich@intevation.de>
parents: 241
diff changeset
119 "PARAMETER"
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: 238
diff changeset
120 };
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: 238
diff changeset
121
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: 238
diff changeset
122
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: 238
diff changeset
123 public static final String [] ODV_COLUMN_HEADER = {
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: 238
diff changeset
124 "Cruise",
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: 238
diff changeset
125 "Station",
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: 238
diff changeset
126 "Type",
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: 238
diff changeset
127 "Longitude [deegrees_east]",
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: 238
diff changeset
128 "Latitude [deegrees_north]",
241
8500529d82af Added ODV-Export to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 239
diff changeset
129 "Bot. Depth [m]",
247
af474a541f74 Sort Columns to the given order of the ODV-Specification
Tim Englich <tim.englich@intevation.de>
parents: 241
diff changeset
130 "Depth [m]",
af474a541f74 Sort Columns to the given order of the ODV-Specification
Tim Englich <tim.englich@intevation.de>
parents: 241
diff changeset
131 "Date/Time",
af474a541f74 Sort Columns to the given order of the ODV-Specification
Tim Englich <tim.englich@intevation.de>
parents: 241
diff changeset
132 "Value",
af474a541f74 Sort Columns to the given order of the ODV-Specification
Tim Englich <tim.englich@intevation.de>
parents: 241
diff changeset
133 "Parameterid"
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: 238
diff changeset
134 };
230
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
135
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
136 /**
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
137 * Profile for exporting data to cvs
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
138 */
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
139 public static final Profile TIMESERIES_CSV_PROFILE =
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
140 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: 238
diff changeset
141 null,
230
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
142 ',',
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
143 '"',
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
144 '"',
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
145 "CSV",
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
146 "ISO-8859-1");
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
147
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
148 /**
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
149 * Profile for exporting data to odv
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
150 * TODO Change TIMESERIES_PROFILE_NAMES, which belong to CSV exports
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
151 */
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
152 public static final Profile TIMESERIES_ODV_PROFILE =
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
153 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: 238
diff changeset
154 ODV_COLUMN_HEADER,
230
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
155 '\t',
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
156 CSVWriter.NO_QUOTE_CHARACTER,
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
157 CSVWriter.NO_ESCAPE_CHARACTER,
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
158 "ODV",
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
159 "ISO-8859-1");
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
160
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
161 /**
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
162 * Constructor
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
163 */
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
164 public TimeSeriesOutputTransition() {
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
165 super();
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
166 }
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
167
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
168 /**
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
169 * @see de.intevation.gnv.transition.OutputTransition#out(java.lang.String,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
170 * java.util.Collection, java.io.OutputStream, java.lang.String,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
171 * de.intevation.artifacts.CallMeta)
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
172 */
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
173 public void out(
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
174 Document format,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
175 Collection<InputData> inputData,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
176 OutputStream outputStream,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
177 String uuid,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
178 CallMeta callMeta
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
179 ) throws TransitionException
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
180 {
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
181 log.debug("TimeSeriesOutputTransition.out");
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
182
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
183 String outputMode = Config.getStringXPath(
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
184 format,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
185 "action/out/@name"
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
186 );
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
187 String mimeType = Config.getStringXPath(
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
188 format,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
189 "action/out/mime-type/@value"
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
190 );
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
191
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
192 try {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
193 if (outputMode.equalsIgnoreCase("chart")) {
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
194 log.debug("Chart will be generated.");
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
195 int chartWidth = 600;
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
196 int chartHeight = 400;
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
197 try {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
198 if (inputData != null) {
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
199 Iterator<InputData> it = inputData.iterator();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
200 while (it.hasNext()) {
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
201 InputData ip = it.next();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
202 if (ip.getName().equalsIgnoreCase("width")) {
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
203 chartWidth = Integer.parseInt(ip.getValue());
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
204 } else if (ip.getName().equalsIgnoreCase("height")) {
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
205 chartHeight = Integer.parseInt(ip.getValue());
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
206 }
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
207 }
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
208 }
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
209 } catch (NumberFormatException e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
210 log.error(e, e);
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
211 throw new TransitionException(e);
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
212 }
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: 325
diff changeset
213
315
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
214 PreferredLocale[] locales = callMeta.getLanguages();
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
215 Locale[] serverLocales =
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
216 RessourceFactory.getInstance().getLocales();
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
217 Locale locale =
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
218 callMeta.getPreferredLocale(serverLocales);
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
219
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
220 log.debug(
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
221 "Best locale - regarding intersection of server and " +
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
222 "browser locales - is " + locale.toString()
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
223 );
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
224
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
225 Collection parameters = this.getParameters(uuid);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
226 Collection measurements = this.getMeasurements(uuid);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
227 Collection dates = this.getDates(uuid);
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 ChartLabels chartLables = new ChartLabels(
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
230 createChartTitle(locale, uuid),
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
231 createChartSubtitle(locale, uuid),
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
232 domainLable
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
233 );
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
234
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
235 String exportFormat = getExportFormat(mimeType);
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 // TODO Remove this and parse input data
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
238 boolean linesVisible = true;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
239 boolean shapesVisible = true;
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
240
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
241 this.createChart(
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
242 outputStream,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
243 parameters,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
244 measurements,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
245 dates,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
246 chartLables,
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
247 uuid,
304
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
248 exportFormat,
315
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
249 locale,
304
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
250 chartWidth,
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: 325
diff changeset
251 chartHeight,
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
252 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: 325
diff changeset
253 shapesVisible
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
254 );
318
5f2820e821e0 Implemented a helper class for exporting charts. Adapted code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 315
diff changeset
255 }
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
256 else if (outputMode.equalsIgnoreCase("pdf")) {
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
257 log.debug("Output mode == pdf");
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
258
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
259 Locale[] serverLocales =
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
260 RessourceFactory.getInstance().getLocales();
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
261 Locale locale =
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
262 callMeta.getPreferredLocale(serverLocales);
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
263
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: 325
diff changeset
264 // TODO Remove this and parse input data
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
265 boolean linesVisible = true;
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
266 boolean shapesVisible = true;
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
267
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
268 log.debug(
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
269 "Best locale - regarding intersection of server and " +
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
270 "browser locales - is " + locale.toString()
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
271 );
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
272
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
273 createPDF(
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
274 outputStream,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
275 getParameters(uuid),
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
276 getMeasurements(uuid),
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
277 getDates(uuid),
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
278 new ChartLabels(
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
279 createChartTitle(locale, uuid),
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
280 createChartSubtitle(locale, uuid),
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
281 domainLable),
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
282 uuid,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
283 "A4",
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
284 true,
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: 325
diff changeset
285 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: 325
diff changeset
286 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: 325
diff changeset
287 shapesVisible
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
288 );
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
289 }
321
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
290 else if (outputMode.equalsIgnoreCase("svg")) {
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
291 log.debug("Output mode == svg");
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
292 int width = 600;
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
293 int height = 400;
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
294
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: 325
diff changeset
295 // TODO Remove this and parse input data
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
296 boolean linesVisible = true;
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
297 boolean shapesVisible = true;
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
298
321
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
299 Locale[] serverLocales =
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
300 RessourceFactory.getInstance().getLocales();
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
301 Locale locale =
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
302 callMeta.getPreferredLocale(serverLocales);
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
303
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
304 log.debug(
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
305 "Best locale - regarding intersection of server and " +
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
306 "browser locales - is " + locale.toString()
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
307 );
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
308
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
309 createSVG(
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
310 outputStream,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
311 getParameters(uuid),
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
312 getMeasurements(uuid),
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
313 getDates(uuid),
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
314 new ChartLabels(
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
315 createChartTitle(locale, uuid),
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
316 createChartSubtitle(locale, uuid),
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
317 domainLable
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
318 ),
321
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
319 uuid,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
320 locale,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
321 width,
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: 325
diff changeset
322 height,
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
323 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: 325
diff changeset
324 shapesVisible
321
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
325 );
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
326 }
318
5f2820e821e0 Implemented a helper class for exporting charts. Adapted code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 315
diff changeset
327 else if (outputMode.equalsIgnoreCase("csv")) {
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
328 log.debug("CSV-File will be generated.");
232
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
329 Collection<Result> chartResult = this.getChartResult(uuid);
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
330 this.createCSV(outputStream, chartResult);
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
331 } else if (outputMode.equalsIgnoreCase("statistics")) {
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
332 log.debug("Statistics will be generated.");
98
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
333 Statistics s = getStatisticsGenerator();
232
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
334 Collection<Result> chartResult = this.getChartResult(uuid);
253
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
335 Collection<KeyValueDescibeData> parameters =
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
336 this.getParameters(uuid);
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
337 Collection<KeyValueDescibeData> measurements =
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
338 this.getMeasurements(uuid);
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
339 Collection<KeyValueDescibeData> dates =
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
340 this.getDates(uuid);
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
341 Collection<StatisticSet> statistics =
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
342 s.calculateStatistics(chartResult,
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
343 parameters,
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
344 measurements,
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
345 dates);
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
346 Document doc = this.writeStatistics2XML(statistics);
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
347 this.writeDocument2OutputStream(doc, outputStream);
230
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
348 } else if (outputMode.equalsIgnoreCase("odv")) {
232
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
349
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
350 Collection<Result> odvResult = this.getODVResult(uuid);
3d6d89bcbf42 Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
Tim Englich <tim.englich@intevation.de>
parents: 230
diff changeset
351 this.createODV(outputStream, odvResult);
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
352 }
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
353 } catch (IOException e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
354 log.error(e, e);
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
355 throw new TransitionException(e);
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
356 } catch (TechnicalChartException e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
357 log.error(e, e);
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
358 throw new TransitionException(e);
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
359 } catch (StatisticsException e) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
360 log.error(e, e);
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
361 throw new TransitionException(e);
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
362 }
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
363 }
98
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
364
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
365
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
366 protected String getExportFormat(String mime) {
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
367 for(int i = 0; i < IMG_EXPORT_FORMAT.length; i++) {
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
368 if (mime.trim().toUpperCase().indexOf(IMG_EXPORT_FORMAT[i]) > 0)
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
369 return IMG_EXPORT_FORMAT[i];
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
370 }
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
371
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
372 // no format found relating to mimeType, default export as PNG
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
373 return IMG_EXPORT_FORMAT[0];
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
374 }
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
375
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
376
98
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
377 /**
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
378 * @param outputStream
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
379 * @param chartResult
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
380 * @throws UnsupportedEncodingException
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
381 * @throws IOException
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
382 * @throws TransitionException
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
383 */
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
384 protected void createCSV(OutputStream outputStream,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
385 Collection<Result> chartResult)
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
386 throws UnsupportedEncodingException,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
387 IOException,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
388 TransitionException {
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 232
diff changeset
389 DefaultExport export = new DefaultExport(new DefaultDataCollector(
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 232
diff changeset
390 TIMESERIES_CSV_PROFILE_NAMES));
230
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
391
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
392 export.create(TIMESERIES_CSV_PROFILE, outputStream, chartResult);
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
393 }
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
394
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
395 /**
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
396 * TODO Result is not used at the moment. Change result with correct data.
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
397 */
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
398 protected void createODV(OutputStream outputStream, Collection result)
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
399 throws IOException, TransitionException {
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
400
238
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 233
diff changeset
401 DefaultExport export = new DefaultExport(new SimpleOdvDataCollector(
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 233
diff changeset
402 TIMESERIES_ODV_PROFILE_NAMES));
230
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
403
238
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 233
diff changeset
404 if (result == null)
a157c6042cb4 ODV-export for timeseries completed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 233
diff changeset
405 log.error("#################### RESULT == NULL #################");
230
f68ffbe974a0 Implemented an exporter for odv and csv exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 220
diff changeset
406 export.create(TIMESERIES_ODV_PROFILE, outputStream, result);
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
407 }
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
408
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
409 /**
98
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
410 * @return
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
411 */
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
412 protected Statistics getStatisticsGenerator() {
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
413 Statistics s = new TimeseriesStatistics();
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
414 return s;
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
415 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
416
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
417 protected void writeDocument2OutputStream(Document document, OutputStream os) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
418
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
419 try {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
420 TransformerFactory transformerFactory = TransformerFactory
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
421 .newInstance();
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
422 Transformer transformer = transformerFactory.newTransformer();
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
423 DOMSource source = new DOMSource(document);
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
424 StreamResult result = new StreamResult(os);
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
425 transformer.transform(source, result);
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
426 } catch (TransformerConfigurationException e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
427 log.error(e, e);
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
428 } catch (TransformerFactoryConfigurationError e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
429 log.error(e, e);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
430 } catch (TransformerException e) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
431 log.error(e, e);
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
432 }
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
433 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
434
253
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
435 protected Document writeStatistics2XML( Collection<StatisticSet> statistic) {
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
436 ArtifactXMLUtilities xmlUtilities = new ArtifactXMLUtilities();
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
437 Document doc = XMLUtils.newDocument();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
438 if (statistic != null) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
439 Node statisticResults = xmlUtilities.createArtifactElement(doc,
253
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
440 "statistics");
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
441 doc.appendChild(statisticResults);
253
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
442 Iterator<StatisticSet> it = statistic.iterator();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
443 while (it.hasNext()) {
253
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
444 StatisticSet set = it.next();
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
445 Element setElement = xmlUtilities.createArtifactElement(doc,
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
446 "statistic");
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
447 setElement.setAttribute("name", set.getName());
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
448
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
449 Iterator<Statistic> sit = set.getStatistics().iterator();
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
450 while (sit.hasNext()){
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
451 Statistic s = sit.next();
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
452 Element result = xmlUtilities.createArtifactElement(doc,
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
453 "statistic-value");
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
454 result.setAttribute("name", s.getKey());
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
455 result.setAttribute("value", s.getStringValue());
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
456 setElement.appendChild(result);
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
457 }
07650fc6014c Put a name to each Statistic group which is similar to the name of the
Tim Englich <tim.englich@intevation.de>
parents: 247
diff changeset
458 statisticResults.appendChild(setElement);
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
459 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
460
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
461 }
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
462 return doc;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
463 }
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
464
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
465
207
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
466 protected String getSelectedFeatureName(String uuid) {
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
467 Collection values = getCollection(featureValuesName, uuid);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
468
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
469 if (values != null) {
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
470 Iterator it = values.iterator();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
471
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
472 while (it.hasNext()) {
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
473 KeyValueDescibeData data = (KeyValueDescibeData) it.next();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
474
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
475 if (data.isSelected()) {
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
476 return data.getValue();
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
477 }
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
478 }
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
479 }
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
480 return null;
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
481 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
482
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
483
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
484 /**
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
485 * @param outputStream
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
486 * @param parameters
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
487 * @param measurements
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
488 * @param timeSeriesName
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
489 * @param chartStyle
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
490 * @param chartLables
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
491 * @throws IOException
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
492 * @throws TechnicalChartException
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
493 */
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: 299
diff changeset
494 protected void createChart(
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: 299
diff changeset
495 OutputStream outputStream,
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: 299
diff changeset
496 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: 299
diff changeset
497 Collection measurements,
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: 299
diff changeset
498 Collection dates,
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: 299
diff changeset
499 ChartLabels chartLables,
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
500 String uuid,
304
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
501 String exportFormat,
315
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
502 Locale locale,
304
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
503 int width,
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: 325
diff changeset
504 int height,
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
505 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: 325
diff changeset
506 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: 299
diff changeset
507 )
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: 299
diff changeset
508 throws IOException, TechnicalChartException
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: 299
diff changeset
509 {
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: 299
diff changeset
510 log.debug("Create 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: 299
diff changeset
511 Chart 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: 299
diff changeset
512 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: 299
diff changeset
513 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: 299
diff changeset
514 measurements,
310
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 304
diff changeset
515 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: 299
diff changeset
516 getChartResult(uuid),
315
63f8b3fb7d9a Localization of chart axis with locale which fits best to server and browser settings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 310
diff changeset
517 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: 325
diff changeset
518 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: 325
diff changeset
519 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: 325
diff changeset
520 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: 299
diff changeset
521 );
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: 299
diff changeset
522
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: 299
diff changeset
523 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: 299
diff changeset
524 log.error("Could not initialize 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: 299
diff changeset
525 return;
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: 299
diff changeset
526 }
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: 299
diff changeset
527
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
528 log.debug(
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
529 "export chart as " + exportFormat +
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
530 " in " + width + "x" + height
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
531 );
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
532
318
5f2820e821e0 Implemented a helper class for exporting charts. Adapted code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 315
diff changeset
533 ChartExportHelper.exportImage(
5f2820e821e0 Implemented a helper class for exporting charts. Adapted code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 315
diff changeset
534 outputStream,
5f2820e821e0 Implemented a helper class for exporting charts. Adapted code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 315
diff changeset
535 chart.generateChart(),
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
536 exportFormat,
318
5f2820e821e0 Implemented a helper class for exporting charts. Adapted code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 315
diff changeset
537 width,
5f2820e821e0 Implemented a helper class for exporting charts. Adapted code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 315
diff changeset
538 height
303
9ba2cf8cad8d Export format of charts is related to mime-type.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 301
diff changeset
539 );
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: 299
diff changeset
540 }
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: 299
diff changeset
541
310
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 304
diff changeset
542
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
543 protected void createPDF(
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
544 OutputStream outputStream,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
545 Collection parameters,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
546 Collection measurements,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
547 Collection dates,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
548 ChartLabels chartLables,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
549 String uuid,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
550 String exportFormat,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
551 boolean landscape,
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: 325
diff changeset
552 Locale 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: 325
diff changeset
553 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: 325
diff changeset
554 boolean shapesVisible
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
555 ) {
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
556 Chart chart = getChart(
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
557 chartLables,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
558 parameters,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
559 measurements,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
560 dates,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
561 getChartResult(uuid),
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
562 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: 325
diff changeset
563 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: 325
diff changeset
564 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: 325
diff changeset
565 shapesVisible
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
566 );
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
567
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
568 if (chart == null) {
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
569 log.error("Could not initialize chart.");
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
570 return;
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
571 }
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
572
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
573 ChartExportHelper.exportPDF(
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
574 outputStream,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
575 chart.generateChart(),
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
576 "A4",
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
577 PDF_FORMAT_LANDSCAPE,
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
578 50F, 50F, 50F, 50F
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
579 );
321
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
580
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
581 try {
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
582 OutputStream toFile = new FileOutputStream("/vol1/home/iweinzierl/tmp/test.svg");
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
583 ChartExportHelper.exportSVG(
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
584 toFile,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
585 chart.generateChart(),
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
586 null,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
587 600, 400
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
588 );
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
589 toFile.flush();
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
590 toFile.close();
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
591 }
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
592 catch(Exception e) { log.debug("ERROR WHLILE TEST."); }
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
593 }
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
594
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
595
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
596 protected void createSVG(
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
597 OutputStream outputStream,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
598 Collection parameters,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
599 Collection measurements,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
600 Collection dates,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
601 ChartLabels chartLables,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
602 String uuid,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
603 Locale locale,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
604 int width,
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: 325
diff changeset
605 int height,
22a6493e8460 New options in chart template: visibility of lines and points in charts and point's size.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 325
diff changeset
606 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: 325
diff changeset
607 boolean shapesVisible
321
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
608 ) {
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
609 Chart chart = getChart(
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
610 chartLables,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
611 parameters,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
612 measurements,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
613 dates,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
614 getChartResult(uuid),
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
615 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: 325
diff changeset
616 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: 325
diff changeset
617 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: 325
diff changeset
618 shapesVisible
321
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
619 );
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
620
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
621 if (chart == null) {
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
622 log.error("Could not initialize chart.");
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
623 return;
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
624 }
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
625
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
626 ChartExportHelper.exportSVG(
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
627 outputStream,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
628 chart.generateChart(),
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
629 null,
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
630 600, 400
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
631 );
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
632
a4376fd23f99 Implemented svg export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 320
diff changeset
633 log.debug("svg export finished.");
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
634 }
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
635
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
636
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: 299
diff changeset
637 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: 299
diff changeset
638 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: 299
diff changeset
639 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: 299
diff changeset
640 Collection measurements,
310
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 304
diff changeset
641 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: 299
diff changeset
642 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: 299
diff changeset
643 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: 325
diff changeset
644 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: 325
diff changeset
645 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: 325
diff changeset
646 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: 299
diff changeset
647 ) {
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: 299
diff changeset
648 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: 299
diff changeset
649
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: 299
diff changeset
650 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: 299
diff changeset
651 log.info("Try to get timeseries 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: 299
diff changeset
652 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: 299
diff changeset
653 }
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: 299
diff changeset
654
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: 299
diff changeset
655 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: 299
diff changeset
656 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: 299
diff changeset
657
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: 299
diff changeset
658 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: 299
diff changeset
659 chart = new TimeSeriesChart(
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: 299
diff changeset
660 chartLables,
304
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
661 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: 299
diff changeset
662 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: 299
diff changeset
663 measurements,
310
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 304
diff changeset
664 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: 299
diff changeset
665 result,
310
45625b5cd6d4 Added timegap definitions to charts. Adapted constructors and constructor calls.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 304
diff changeset
666 timeGapDefinitions,
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: 325
diff changeset
667 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: 325
diff changeset
668 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: 325
diff changeset
669 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: 299
diff changeset
670 );
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: 299
diff changeset
671 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: 299
diff changeset
672
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: 299
diff changeset
673 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: 299
diff changeset
674 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: 299
diff changeset
675 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: 299
diff changeset
676 }
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: 299
diff changeset
677
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: 299
diff changeset
678 return chart;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
679 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
680
304
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
681 protected ChartTheme createStyle() {
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
682 XMLChartTheme theme = null;
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
683
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
684 Document template = Config.getChartTemplate();
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
685 String name = Config.getStringXPath(
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
686 template,
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
687 "theme/name/@value"
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
688 );
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
689
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
690 theme = new XMLChartTheme(name);
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
691 theme.applyXMLConfiguration(template);
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
692
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
693 return theme;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
694 }
304
a16d337c5678 The style of charts can be configured with ChartThemes using XML configuration files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 303
diff changeset
695
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
696
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
697 protected String createChartTitle(Locale locale, String uuid) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
698 return getFisName(locale);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
699
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
700 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
701
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
702
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
703 protected String createChartSubtitle(Locale locale, String uuid) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
704 return getSelectedFeatureName(uuid);
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
705 }
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
706
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
707
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
708 protected String getFisName(Locale locale) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
709 String returnValue = "";
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
710 InputData input = inputData.get("fisname");
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
711
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
712 if (input != null) {
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
713 String value = input.getValue();
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
714
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
715 returnValue = RessourceFactory.getInstance().getRessource(
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
716 locale,
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
717 value,
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
718 value
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
719 );
178
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
720 }
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
721 return returnValue;
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
722 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
723
331
1c427acb6c76 Added subtitles to charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 327
diff changeset
724
207
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
725 protected Collection<KeyValueDescibeData> getParameters(String uuid) {
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
726 return this.getCollection(parameterValuesName, uuid);
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
727 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
728
207
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
729 protected Collection<KeyValueDescibeData> getMeasurements(String uuid) {
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
730 return this.getCollection(measuremenValueName, uuid);
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
731 }
207
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
732 protected Collection<KeyValueDescibeData> getDates(String uuid) {
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
733 return this.getCollection(dateValueName,uuid);
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
734 }
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
735
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
736 @Override
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
737 public void setup(Node configuration) {
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
738 super.setup(configuration);
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
739 String featureNameValue = Config.getStringXPath(configuration,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
740 "value-names/value-name[@name='feature']/@value");
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
741 if (featureNameValue != null) {
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
742 this.featureValuesName = featureNameValue;
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
743 }
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
744 String parameterNameValue = Config.getStringXPath(configuration,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
745 "value-names/value-name[@name='parameter']/@value");
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
746 if (parameterNameValue != null) {
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
747 this.parameterValuesName = parameterNameValue;
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
748 }
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
749 String measurementNameValue = Config.getStringXPath(configuration,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
750 "value-names/value-name[@name='measurement']/@value");
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
751 if (measurementNameValue != null) {
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
752 this.measuremenValueName = measurementNameValue;
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
753 }
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
754
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
755 String dateNameValue = Config.getStringXPath(configuration,
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
756 "value-names/value-name[@name='date']/@value");
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
757 if (dateNameValue != null) {
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
758 this.dateValueName = dateNameValue;
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
759 }
217
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
760 if (timeGapDefinitions == null){
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
761 Element gapDefinition = (Element)Config.getNodeXPath(configuration,
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
762 "time-gap-definition");
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
763 synchronized (this.getClass()) {
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
764 if (gapDefinition != null){
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
765 String link = gapDefinition.getAttribute("xlink:href");
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
766 if (link != null ){
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
767 String absolutFileName = Config.replaceConfigDir(link);
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
768 gapDefinition = (Element)new ArtifactXMLUtilities().
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
769 readConfiguration(absolutFileName);
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
770 }
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
771
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
772 NodeList gapDefinitions = Config.getNodeSetXPath(gapDefinition,
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
773 "/time-gaps/time-gap");
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
774 if (gapDefinition != null){
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
775 timeGapDefinitions = new ArrayList<TimeGap>(gapDefinitions.
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
776 getLength());
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
777 for (int i = 0; i < gapDefinitions.getLength(); i++){
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
778 Element gapNode = (Element)gapDefinitions.item(i);
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
779 String unit = gapNode.getAttribute("unit");
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
780 int key = Integer.parseInt(gapNode.getAttribute("key"));
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
781 int value = Integer.parseInt(gapNode.getAttribute("gap"));
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
782 log.info("Add new Timegap: "+key+" "+value+" "+ unit);
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
783 timeGapDefinitions.add(new DefaultTimeGap(unit,
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
784 key,
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
785 value));
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
786 }
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
787 }
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
788
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
789 }
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
790 }
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
791 }
82
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
792 }
217
3dcd2b0b456e Added configurable TimeGap Support to the TimeSeries-Chart-Generation. issu45
Tim Englich <tim.englich@intevation.de>
parents: 207
diff changeset
793
82
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
794 /**
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
795 * @param collectionName
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
796 * @return
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
797 */
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
798 protected Collection<KeyValueDescibeData> getCollection(
207
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
799 String collectionName,
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
800 String uuid) {
d87347142702 Store the Results of an Artifact not in the Artifact but in an ehcache instance. issue3
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
801 Iterator<Object> it = this.getDescibeData(uuid).iterator();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
802 while (it.hasNext()) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
803
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
804 Object o = it.next();
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
805
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
806 if (o instanceof NamedCollection<?>) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
807 NamedCollection<KeyValueDescibeData> nc = (NamedCollection<KeyValueDescibeData>) o;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
808 if (nc.getName().equals(collectionName)) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
809 return nc;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
810 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
811 }
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
812 }
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
813 return null;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
814 }
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
815 }
320
18302372703f Implemented pdf export of charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 318
diff changeset
816 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org