Mercurial > dive4elements > gnv-client
annotate gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/verticalcrosssection/VerticalCrossSectionOutputTransition.java @ 305:91c37bf28c0e
Remove chart from cache when data which is displayed in chart has changed.
gnv-artifacts/trunk@363 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 23 Nov 2009 17:20:14 +0000 |
parents | 6a3a02e004d9 |
children | f0f106c7b906 |
rev | line source |
---|---|
197
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
1 /** |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
2 * |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
3 */ |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
4 package de.intevation.gnv.transition.profile.verticalcrosssection; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
5 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
6 import java.io.IOException; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
7 import java.io.OutputStream; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
8 import java.io.OutputStreamWriter; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
9 import java.io.UnsupportedEncodingException; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
10 import java.util.Collection; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
11 import java.util.Iterator; |
300
6a3a02e004d9
Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
197
diff
changeset
|
12 import java.util.Locale; |
197
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
13 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
14 import org.apache.log4j.Logger; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
15 |
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:
197
diff
changeset
|
16 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:
197
diff
changeset
|
17 |
197
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
18 import au.com.bytecode.opencsv.CSVWriter; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
19 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
20 import com.vividsolutions.jts.geom.Point; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
21 import com.vividsolutions.jts.io.ParseException; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
22 import com.vividsolutions.jts.io.WKTReader; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
23 |
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:
197
diff
changeset
|
24 import de.intevation.gnv.chart.Chart; |
197
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.gnv.chart.ChartLabels; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.gnv.chart.ChartStyle; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.gnv.chart.VerticalCrossSectionChartFactory; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.gnv.chart.exception.TechnicalChartException; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.gnv.geobackend.base.Result; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.gnv.statistics.Statistics; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.gnv.statistics.VerticalProfileStatistics; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
32 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
33 import de.intevation.gnv.transition.exception.TransitionException; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
35 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
36 /** |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
37 * @author Tim Englich <tim.englich@intevation.de> |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
38 * |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
39 */ |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
40 public class VerticalCrossSectionOutputTransition extends TimeSeriesOutputTransition { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
41 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
42 private static Logger log = Logger |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
43 .getLogger(VerticalCrossSectionOutputTransition.class); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
44 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
45 /** |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
46 * The UID of this Class |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
47 */ |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
48 private static final long serialVersionUID = 3233620652465061860L; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
49 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
50 /** |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
51 * Constructor |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
52 */ |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
53 public VerticalCrossSectionOutputTransition() { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
54 super(); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
55 super.domainLable = "Depth [m]"; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
56 } |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
57 |
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:
197
diff
changeset
|
58 |
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:
197
diff
changeset
|
59 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:
197
diff
changeset
|
60 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:
197
diff
changeset
|
61 ChartTheme 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:
197
diff
changeset
|
62 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:
197
diff
changeset
|
63 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:
197
diff
changeset
|
64 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:
197
diff
changeset
|
65 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:
197
diff
changeset
|
66 Locale locale, |
6a3a02e004d9
Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
197
diff
changeset
|
67 String 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:
197
diff
changeset
|
68 ) { |
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:
197
diff
changeset
|
69 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:
197
diff
changeset
|
70 |
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:
197
diff
changeset
|
71 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:
197
diff
changeset
|
72 log.info("Try to get verticalcrosssection 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:
197
diff
changeset
|
73 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:
197
diff
changeset
|
74 } |
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:
197
diff
changeset
|
75 |
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:
197
diff
changeset
|
76 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:
197
diff
changeset
|
77 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:
197
diff
changeset
|
78 |
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:
197
diff
changeset
|
79 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:
197
diff
changeset
|
80 |
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:
197
diff
changeset
|
81 log.warn("This sort of chart is not implemented 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:
197
diff
changeset
|
82 /* TODO Implement a special chart for this sort of charts. |
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:
197
diff
changeset
|
83 chart = new VerticalProfileChart( |
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:
197
diff
changeset
|
84 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:
197
diff
changeset
|
85 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:
197
diff
changeset
|
86 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:
197
diff
changeset
|
87 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:
197
diff
changeset
|
88 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:
197
diff
changeset
|
89 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:
197
diff
changeset
|
90 locale |
6a3a02e004d9
Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
197
diff
changeset
|
91 ); |
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:
197
diff
changeset
|
92 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:
197
diff
changeset
|
93 |
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:
197
diff
changeset
|
94 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:
197
diff
changeset
|
95 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:
197
diff
changeset
|
96 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:
197
diff
changeset
|
97 } |
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:
197
diff
changeset
|
98 */ |
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:
197
diff
changeset
|
99 |
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:
197
diff
changeset
|
100 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:
197
diff
changeset
|
101 } |
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:
197
diff
changeset
|
102 |
197
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
103 /** |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
104 * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createChart(java.io.OutputStream, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
105 * java.util.Collection, java.util.Collection, java.lang.String, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
106 * de.intevation.gnv.chart.ChartStyle, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
107 * de.intevation.gnv.chart.ChartLabels) |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
108 */ |
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:
197
diff
changeset
|
109 /* |
197
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
110 @Override |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
111 protected void createChart(OutputStream outputStream, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
112 Collection<KeyValueDescibeData> parameters, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
113 Collection<KeyValueDescibeData> measurements, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
114 Collection<KeyValueDescibeData> dates, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
115 ChartStyle chartStyle, ChartLabels chartLables, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
116 String uuid) throws IOException, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
117 TechnicalChartException { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
118 new VerticalCrossSectionChartFactory().createProfileChart(chartLables, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
119 chartStyle, parameters, measurements, dates, outputStream, this |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
120 .getChartResult(uuid)); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
121 } |
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:
197
diff
changeset
|
122 */ |
197
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
123 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
124 /** |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
125 * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#getStatisticsGenerator() |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
126 */ |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
127 @Override |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
128 protected Statistics getStatisticsGenerator() { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
129 return new VerticalProfileStatistics(); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
130 } |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
131 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
132 /** |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
133 * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createCSV(java.io.OutputStream, java.util.Collection) |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
134 */ |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
135 @Override |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
136 protected void createCSV(OutputStream outputStream, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
137 Collection<Result> chartResult) |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
138 throws UnsupportedEncodingException, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
139 IOException, |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
140 TransitionException { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
141 if (chartResult != null) { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
142 try { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
143 CSVWriter writer = new CSVWriter(new OutputStreamWriter( |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
144 outputStream, "ISO-8859-1"), ','); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
145 // USE THIS ENCODING BECAUSE OF |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
146 // PROBLEMS WITH EXCEL AND UTF-8 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
147 Iterator<Result> it = chartResult.iterator(); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
148 WKTReader wktReader = new WKTReader(); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
149 while (it.hasNext()) { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
150 Result result = it.next(); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
151 int i = 0; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
152 String[] entries = new String[8]; |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
153 Point p = (Point)wktReader.read(result.getString("SHAPE")); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
154 entries[i++] = ""+p.getX(); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
155 entries[i++] = ""+p.getY(); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
156 entries[i++] = result.getString("YORDINATE"); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
157 entries[i++] = result.getString("GROUP1"); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
158 entries[i++] = result.getString("GROUP2"); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
159 entries[i++] = result.getString("IPOSITION"); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
160 entries[i++] = result.getString("JPOSITION"); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
161 entries[i++] = result.getString("KPOSITION"); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
162 writer.writeNext(entries); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
163 } |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
164 writer.close(); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
165 } catch (ParseException e) { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
166 log.error(e,e); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
167 throw new TransitionException( |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
168 "Exception occured while parsing an Point from WKT."); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
169 } |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
170 } else { |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
171 log.error("No Data given for generating an CSV-File."); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
172 throw new TransitionException( |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
173 "No Data given for generating an CSV-File."); |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
174 } |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
175 } |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
176 |
bab92ad1165d
Added the required Classes an Configuration for providing VerticalCrossSections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
177 } |