annotate gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java @ 197:bab92ad1165d

Added the required Classes an Configuration for providing VerticalCrossSections gnv-artifacts/trunk@250 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Tue, 20 Oct 2009 13:32:05 +0000
parents f2c76f35da5a
children d87347142702
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.awt.Color;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
7 import java.awt.Dimension;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
8 import java.io.IOException;
73
504570de21fd Refactoring Work depending on Infrastructurchanges in the Artifact-Module
Tim Englich <tim.englich@intevation.de>
parents: 68
diff changeset
9 import java.io.OutputStream;
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
10 import java.io.OutputStreamWriter;
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
11 import java.io.UnsupportedEncodingException;
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;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
14
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
15 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
16 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
17 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
18 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
19 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
20 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
21 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
22
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
23 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
24 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
25 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
26 import org.w3c.dom.Node;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
27
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
28 import au.com.bytecode.opencsv.CSVWriter;
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
29 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
30 import de.intevation.artifactdatabase.XMLUtils;
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
31 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
32 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
33 import de.intevation.gnv.artifacts.ressource.RessourceFactory;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
34 import de.intevation.gnv.chart.ChartFactory;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
35 import de.intevation.gnv.chart.ChartLabels;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
36 import de.intevation.gnv.chart.ChartStyle;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
37 import de.intevation.gnv.chart.exception.TechnicalChartException;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
38 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
39 import de.intevation.gnv.statistics.Statistic;
98
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
40 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
41 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
42 import de.intevation.gnv.statistics.exception.StatisticsException;
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
43 import de.intevation.gnv.transition.InputData;
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 import de.intevation.gnv.transition.OutputTransitionBase;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
45 import de.intevation.gnv.transition.describedata.KeyValueDescibeData;
81
9b41f3688610 Added Support for TimeSeriesMesh
Tim Englich <tim.englich@intevation.de>
parents: 73
diff changeset
46 import de.intevation.gnv.transition.describedata.NamedCollection;
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
47 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
48 import de.intevation.gnv.utils.ArtifactXMLUtilities;
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 /**
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 * @author Tim Englich <tim.englich@intevation.de>
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
52 *
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
53 */
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
54 public class TimeSeriesOutputTransition extends OutputTransitionBase {
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
55
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
56 /**
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
57 * The UID of this Class
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
58 */
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
59 private static final long serialVersionUID = 4178407570503098858L;
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
60
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
61 /**
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
62 * 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
63 */
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
64 private static Logger log = Logger
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
65 .getLogger(TimeSeriesOutputTransition.class);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
66
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
67 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
68
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
69 protected String featureValuesName = "featureid";
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
70 protected String parameterValuesName = "parameterid";
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
71 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
72 protected String dateValueName = "dateid";
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
73
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74 /**
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75 * Constructor
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76 */
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77 public TimeSeriesOutputTransition() {
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
78 super();
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
79 }
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
80
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
81 /**
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
82 * @see de.intevation.gnv.transition.Transition#validate()
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
83 */
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
84 @Override
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
85 public boolean validate() {
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
86 return true;
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
87 }
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
88
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
89 /**
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
90 * @see de.intevation.gnv.transition.OutputTransition#out(java.lang.String,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
91 * java.util.Collection, java.io.OutputStream, java.lang.String,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
92 * de.intevation.artifacts.CallMeta)
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
93 */
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
94 public void out(String outputMode, Collection<InputData> inputData,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
95 OutputStream outputStream, String uuid, CallMeta callMeta)
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
96 throws TransitionException {
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
97 log.debug("TimeSeriesOutputTransition.out");
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
98 try {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
99
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
100 this.advance(uuid, callMeta);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
101 Collection<Result> chartResult = this.getChartResult(uuid);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
102 if (outputMode.equalsIgnoreCase("chart")) {
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
103 log.debug("Chart will be generated.");
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
104 int chartWidth = 600;
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
105 int chartHeight = 400;
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
106 try {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
107 if (inputData != null) {
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
108 Iterator<InputData> it = inputData.iterator();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
109 while (it.hasNext()) {
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
110 InputData ip = it.next();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
111 if (ip.getName().equalsIgnoreCase("width")) {
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
112 chartWidth = Integer.parseInt(ip.getValue());
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
113 } else if (ip.getName().equalsIgnoreCase("height")) {
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
114 chartHeight = Integer.parseInt(ip.getValue());
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
115 }
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
116 }
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
117 }
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
118 } catch (NumberFormatException e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
119 log.error(e, e);
91
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
120 throw new TransitionException(e);
bd284d8306db Added Support for Patameters in OutputModes
Tim Englich <tim.englich@intevation.de>
parents: 90
diff changeset
121 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
122 Collection<KeyValueDescibeData> parameters = this
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
123 .getParameters();
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
124 Collection<KeyValueDescibeData> measurements = this
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
125 .getMeasurements();
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
126 Collection<KeyValueDescibeData> dates = this
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
127 .getDates();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
128 ChartStyle chartStyle = this
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
129 .creatStyle(chartWidth, chartHeight);
178
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
130 ChartLabels chartLables = new ChartLabels(this.getFisName(callMeta.getLanguages())+" "+this
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
131 .getSelectedFeatureName(), this.domainLable);
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
132 this.createChart(outputStream, parameters, measurements,dates,
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
133 chartStyle, chartLables, uuid);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
134 } else if (outputMode.equalsIgnoreCase("csv")) {
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
135 log.debug("CSV-File will be generated.");
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
136 this.createCSV(outputStream, chartResult);
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
137 } 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
138 log.debug("Statistics will be generated.");
98
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
139 Statistics s = getStatisticsGenerator();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
140 Collection<Statistic> statistics = s
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
141 .calculateStatistics(chartResult);
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
142 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
143 this.writeDocument2OutputStream(doc, outputStream);
90
6bdef6e590d6 Added CSV-Support and do some performanceimprovments
Tim Englich <tim.englich@intevation.de>
parents: 86
diff changeset
144 }
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
145 } catch (IOException e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
146 log.error(e, e);
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
147 throw new TransitionException(e);
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
148 } catch (TechnicalChartException e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
149 log.error(e, e);
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
150 throw new TransitionException(e);
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
151 } catch (StatisticsException e) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
152 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
153 throw new TransitionException(e);
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
154 }
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
155 }
98
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
156
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
157 /**
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
158 * @param outputStream
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
159 * @param chartResult
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
160 * @throws UnsupportedEncodingException
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
161 * @throws IOException
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
162 * @throws TransitionException
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
163 */
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
164 protected void createCSV(OutputStream outputStream,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
165 Collection<Result> chartResult)
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
166 throws UnsupportedEncodingException,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
167 IOException,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
168 TransitionException {
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
169 if (chartResult != null) {
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
170 CSVWriter writer = new CSVWriter(new OutputStreamWriter(
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
171 outputStream, "ISO-8859-1"), ',');
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
172 // USE THIS ENCODING BECAUSE OF
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
173 // PROBLEMS WITH EXCEL AND UTF-8
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
174 Iterator<Result> it = chartResult.iterator();
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
175 while (it.hasNext()) {
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
176 Result result = it.next();
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
177 int i = 0;
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
178 String[] entries = new String[5];
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
179 entries[i++] = result.getString("XORDINATE");
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
180 entries[i++] = result.getString("YORDINATE");
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
181 entries[i++] = result.getString("GROUP1");
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
182 entries[i++] = result.getString("GROUP2");
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
183 entries[i++] = result.getString("GROUP3");
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
184 writer.writeNext(entries);
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
185 }
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
186 writer.close();
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
187 } else {
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
188 log.error("No Data given for generation an CSV-File.");
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
189 throw new TransitionException(
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
190 "No Data given for generation an CSV-File.");
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
191 }
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
192 }
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
193
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
194 /**
98
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
195 * @return
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
196 */
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
197 protected Statistics getStatisticsGenerator() {
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
198 Statistics s = new TimeseriesStatistics();
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
199 return s;
156db25ad4b4 Add Statisticssupport also to VerticalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 95
diff changeset
200 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
201
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
202 protected void writeDocument2OutputStream(Document document, OutputStream os) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
203
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
204 try {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
205 TransformerFactory transformerFactory = TransformerFactory
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
206 .newInstance();
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
207 Transformer transformer = transformerFactory.newTransformer();
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
208 DOMSource source = new DOMSource(document);
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
209 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
210 transformer.transform(source, result);
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
211 } catch (TransformerConfigurationException e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
212 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
213 } catch (TransformerFactoryConfigurationError e) {
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
214 log.error(e, e);
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
215 } catch (TransformerException e) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
216 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
217 }
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
218 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
219
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
220 protected Document writeStatistics2XML(Collection<Statistic> statistic) {
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
221 ArtifactXMLUtilities xmlUtilities = new ArtifactXMLUtilities();
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
222 Document doc = XMLUtils.newDocument();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
223 if (statistic != null) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
224 Node statisticResults = xmlUtilities.createArtifactElement(doc,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
225 "statistic-values");
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
226 doc.appendChild(statisticResults);
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
227 Iterator<Statistic> it = statistic.iterator();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
228 while (it.hasNext()) {
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
229 Statistic s = it.next();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
230 Element result = xmlUtilities.createArtifactElement(doc,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
231 "statistic");
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
232 result.setAttribute("name", s.getKey());
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
233 result.setAttribute("value", s.getStringValue());
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
234 statisticResults.appendChild(result);
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
235 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
236
95
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
237 }
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
238 return doc;
13402ac8d8fe Put the Statisticscalulation to the Outmethod of the OutputTransition.
Tim Englich <tim.englich@intevation.de>
parents: 91
diff changeset
239 }
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
240
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
241 protected String getSelectedFeatureName() {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
242 Collection<KeyValueDescibeData> values = this
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
243 .getCollection(featureValuesName);
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
244 if (values != null) {
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
245 Iterator<KeyValueDescibeData> it = values.iterator();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
246 while (it.hasNext()) {
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
247 KeyValueDescibeData data = it.next();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
248 if (data.isSelected()) {
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
249 return data.getValue();
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
250 }
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
251 }
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
252 }
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
253 return null;
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
254 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
255
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
256 /**
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
257 * @param outputStream
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
258 * @param parameters
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
259 * @param measurements
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
260 * @param timeSeriesName
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
261 * @param chartStyle
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
262 * @param chartLables
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
263 * @throws IOException
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
264 * @throws TechnicalChartException
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
265 */
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
266 protected void createChart(OutputStream outputStream,
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
267 Collection<KeyValueDescibeData> parameters,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
268 Collection<KeyValueDescibeData> measurements,
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
269 Collection<KeyValueDescibeData> dates,
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
270 ChartStyle chartStyle, ChartLabels chartLables,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
271 String uuid) throws IOException,
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
272 TechnicalChartException {
86
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
273 ChartFactory chartFactory = new ChartFactory();
5d4f5d26bb7a Some Codecleanup done
Tim Englich <tim.englich@intevation.de>
parents: 82
diff changeset
274 chartFactory.createSimpleTimeSeriesChart(chartLables, chartStyle,
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
275 parameters, measurements, outputStream, this
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
276 .getChartResult(uuid));
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
277 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
278
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
279 protected ChartStyle creatStyle(int witdh, int height) {
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
280 // TODO Konfigurierbar machen
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
281 de.intevation.gnv.chart.Insets lInsets = new de.intevation.gnv.chart.Insets(
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
282 5d, 5d, 5d, 5d);
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
283 Dimension lChartSize = new Dimension(witdh, height);
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
284 return new ChartStyle(Color.white, new Color(230, 230, 230),
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
285 Color.white, Color.white, true, true, lInsets, lChartSize);
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
286 }
178
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
287
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
288 protected String getFisName(PreferredLocale[] preferredLocales){
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
289 String returnValue = "";
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
290 InputData inputData = this.inputData.get("fisname");
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
291 if (inputData != null){
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
292 returnValue = RessourceFactory.getInstance()
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
293 .getRessource(preferredLocales,
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
294 inputData.getValue(),
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
295 inputData.getValue());
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
296 }
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
297 return returnValue;
9bcf315f57e4 Added Name of FIS to the Title of Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
298 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
299
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
300 protected Collection<KeyValueDescibeData> getParameters() {
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
301 return this.getCollection(parameterValuesName);
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
302 }
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
303
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
304 protected Collection<KeyValueDescibeData> getMeasurements() {
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
305 return this.getCollection(measuremenValueName);
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
306 }
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
307 protected Collection<KeyValueDescibeData> getDates() {
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
308 return this.getCollection(dateValueName);
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
309 }
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
310
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
311 @Override
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
312 public void setup(Node configuration) {
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
313 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
314 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
315 "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
316 if (featureNameValue != null) {
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
317 this.featureValuesName = featureNameValue;
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
318 }
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
319 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
320 "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
321 if (parameterNameValue != null) {
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
322 this.parameterValuesName = parameterNameValue;
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
323 }
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 119
diff changeset
324 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
325 "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
326 if (measurementNameValue != null) {
119
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
327 this.measuremenValueName = measurementNameValue;
4841808819d9 Added the new FIS
Tim Englich <tim.englich@intevation.de>
parents: 117
diff changeset
328 }
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
329
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
330 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
331 "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
332 if (dateNameValue != null) {
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
333 this.dateValueName = dateNameValue;
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 178
diff changeset
334 }
82
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
335 }
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
336
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
337 /**
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
338 * @param collectionName
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
339 * @return
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
340 */
5eb62df21f9a Added Support for Vertical Profiles Marnet, STAUN, IMIS
Tim Englich <tim.englich@intevation.de>
parents: 81
diff changeset
341 protected Collection<KeyValueDescibeData> getCollection(
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
342 String collectionName) {
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
343 Iterator<Object> it = this.descibeData.iterator();
117
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
344 while (it.hasNext()) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
345
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
346 Object o = it.next();
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
347
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
348 if (o instanceof NamedCollection<?>) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
349 NamedCollection<KeyValueDescibeData> nc = (NamedCollection<KeyValueDescibeData>) o;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
350 if (nc.getName().equals(collectionName)) {
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
351 return nc;
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
352 }
ef157bd2fa92 LanguageSupport integrated
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
353 }
68
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
354 }
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
355 return null;
d117fd4b82e5 Chartrendering integrated in Timeseries Transition
Tim Englich <tim.englich@intevation.de>
parents: 64
diff changeset
356 }
64
5db77e0a8594 Integrated Output Methods and Interfacsstructure
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
357 }

http://dive4elements.wald.intevation.org