annotate gnv-artifacts/src/main/java/de/intevation/gnv/utils/VectorDataProcessor.java @ 1115:f953c9a559d8

Added license file and license headers. gnv-artifacts/trunk@1260 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 02 Nov 2010 17:46:55 +0000
parents 846b2b70b2e0
children
rev   line source
1115
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1081
diff changeset
1 /*
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1081
diff changeset
2 * Copyright (c) 2010 by Intevation GmbH
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1081
diff changeset
3 *
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1081
diff changeset
4 * This program is free software under the LGPL (>=v2.1)
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1081
diff changeset
5 * Read the file LGPL.txt coming with the software for details
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1081
diff changeset
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1081
diff changeset
7 */
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1081
diff changeset
8
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 package de.intevation.gnv.utils;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
1081
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
11 import de.intevation.artifacts.CallContext;
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
12
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
13 import de.intevation.gnv.chart.Chart;
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
14 import de.intevation.gnv.chart.ChartLabels;
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
15 import de.intevation.gnv.chart.DefaultHistogram;
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
16
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import de.intevation.gnv.geobackend.base.DefaultResult;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import de.intevation.gnv.geobackend.base.DefaultResultDescriptor;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.gnv.geobackend.base.Result;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import de.intevation.gnv.geobackend.base.ResultDescriptor;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
1081
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
22 import de.intevation.gnv.histogram.HistogramHelper;
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
23
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
24 import de.intevation.gnv.state.describedata.KeyValueDescibeData;
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
25
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 import java.util.ArrayList;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 import java.util.Collection;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 import java.util.HashMap;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 import java.util.Iterator;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 import java.util.List;
1081
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
31 import java.util.Locale;
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 import java.util.Map;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 import org.apache.log4j.Logger;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
1081
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
36 import org.jfree.chart.ChartTheme;
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
37
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
38
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 /**
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 */
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 public final class VectorDataProcessor {
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 private static Logger logger = Logger.getLogger(VectorDataProcessor.class);
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
1071
9bb1979aabbe Added a new output state and chart type for vertical profiles using vector data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1040
diff changeset
46 public static Collection<Result> process(
9bb1979aabbe Added a new output state and chart type for vertical profiles using vector data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1040
diff changeset
47 Collection<Result> input, String[] columnNames)
9bb1979aabbe Added a new output state and chart type for vertical profiles using vector data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1040
diff changeset
48 {
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 logger.info("Process vector data (" + input.size() + " items)");
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
1071
9bb1979aabbe Added a new output state and chart type for vertical profiles using vector data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1040
diff changeset
51 ResultDescriptor outDescriptor = initResultDescriptor(columnNames);
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 ResultDescriptor inDescriptor = null;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 int[] inIndices = null;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 int columns = -1;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 Map series = new HashMap();
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 // for each result of the incoming result
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 for (Result result: input) {
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 if (inDescriptor == null || inIndices == null) {
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 inDescriptor = result.getResultDescriptor();
1071
9bb1979aabbe Added a new output state and chart type for vertical profiles using vector data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1040
diff changeset
62 inIndices = inDescriptor.getColumnIndices(columnNames);
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 columns = inDescriptor.getColumnCount();
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 }
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 // for each column of the incoming result object
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 for (int i = 0; i < columns; i++) {
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 String name = inDescriptor.getColumnName(i);
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69
1071
9bb1979aabbe Added a new output state and chart type for vertical profiles using vector data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1040
diff changeset
70 if (!StringUtils.contains(columnNames, name)) {
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 List list = (List) series.get(name);
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 if (list == null)
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 list = new ArrayList();
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 Result out = new DefaultResult(outDescriptor);
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 Object value = result.getObject(i);
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 // skipp results that have no data value
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 if (value == null)
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 continue;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 out.addColumnValue(0, value);
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 // add meta data to result object
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 // TODO: Maybe we could do this one single time, because the
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 // TODO: meta data will not change
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 for (int j = 1; j < inIndices.length -1; j++) {
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 out.addColumnValue(j, result.getObject(inIndices[j]));
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 }
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 // add the name of the component to distinguish between
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 // different series later in the chart creation
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 out.addColumnValue(inIndices.length-1, name);
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 list.add(out);
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 series.put(name, list);
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 }
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 }
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 }
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 // finally, we put all lists together
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 Iterator iter = series.values().iterator();
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 List output = new ArrayList();
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 while (iter.hasNext()) {
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 output.addAll((Collection)iter.next());
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 }
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 logger.info("Data processing created " + output.size() + " elements.");
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 return output;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 }
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112
1071
9bb1979aabbe Added a new output state and chart type for vertical profiles using vector data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1040
diff changeset
113 public static ResultDescriptor initResultDescriptor(String[] columnNames) {
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 logger.debug("Init ResultDescriptor for outgoing results.");
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 ResultDescriptor desc = new DefaultResultDescriptor();
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117
1071
9bb1979aabbe Added a new output state and chart type for vertical profiles using vector data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1040
diff changeset
118 for (String name: columnNames) {
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 desc.addColumn(name, "java.lang.String");
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 }
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 logger.debug("Outgoing ResultDescriptor has " + desc.getColumnCount() +
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 " columns");
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 return desc;
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 }
1081
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
126
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
127
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
128 public static Chart[] getHistograms(
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
129 String uuid,
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
130 CallContext callContext,
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
131 Collection<KeyValueDescibeData> results,
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
132 ChartTheme theme,
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
133 Map requestParameter
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
134 ) {
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
135 Locale locale = (Locale) requestParameter.get("locale");
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
136
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
137 Object[][] data = HistogramHelper.prepareVectorialHistogramData(results);
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
138 int size = data.length;
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
139
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
140 Chart[] histograms = new Chart[size];
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
141
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
142 for (int i = 0; i < size; i++) {
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
143 ChartLabels labels = HistogramHelper.createHistogramLabels(
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
144 uuid, callContext, locale, data[i]);
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
145
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
146 histograms[i] = new DefaultHistogram(
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
147 labels, data[i], theme, requestParameter);
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
148 }
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
149
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
150 return histograms;
846b2b70b2e0 Implemented histogram creation for vectorial timeseries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1071
diff changeset
151 }
1040
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 }
70653c29fc1d Finished vector support for timeseriespoints (Issue27).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org