comparison gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java @ 90:6bdef6e590d6

Added CSV-Support and do some performanceimprovments gnv-artifacts/trunk@132 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Thu, 24 Sep 2009 15:27:33 +0000
parents 5d4f5d26bb7a
children bd284d8306db
comparison
equal deleted inserted replaced
89:cde042a0a395 90:6bdef6e590d6
5 5
6 import java.awt.Color; 6 import java.awt.Color;
7 import java.awt.Dimension; 7 import java.awt.Dimension;
8 import java.io.IOException; 8 import java.io.IOException;
9 import java.io.OutputStream; 9 import java.io.OutputStream;
10 import java.io.OutputStreamWriter;
10 import java.util.Collection; 11 import java.util.Collection;
11 import java.util.Iterator; 12 import java.util.Iterator;
12 13
13 import org.apache.log4j.Logger; 14 import org.apache.log4j.Logger;
15
16 import au.com.bytecode.opencsv.CSVWriter;
14 17
15 import de.intevation.gnv.chart.ChartFactory; 18 import de.intevation.gnv.chart.ChartFactory;
16 import de.intevation.gnv.chart.ChartLabels; 19 import de.intevation.gnv.chart.ChartLabels;
17 import de.intevation.gnv.chart.ChartStyle; 20 import de.intevation.gnv.chart.ChartStyle;
18 import de.intevation.gnv.chart.exception.TechnicalChartException; 21 import de.intevation.gnv.chart.exception.TechnicalChartException;
56 59
57 /** 60 /**
58 * @see de.intevation.gnv.transition.OutputTransition#out(java.lang.String, java.io.OutputStream) 61 * @see de.intevation.gnv.transition.OutputTransition#out(java.lang.String, java.io.OutputStream)
59 */ 62 */
60 public void out(String outputMode, OutputStream outputStream) throws TransitionException { 63 public void out(String outputMode, OutputStream outputStream) throws TransitionException {
61 log.debug("TimeSeriesOutputTransition"); 64 log.debug("TimeSeriesOutputTransition.out");
62 try { 65 try {
63 this.advance(); 66 this.advance();
64 Collection<KeyValueDescibeData> parameters = this.getParameters(); 67 if (outputMode.equalsIgnoreCase("chart")){
65 Collection<KeyValueDescibeData> measurements = this.getMeasurements(); 68 log.debug("Chart will be generated.");
66 ChartStyle chartStyle = this.creatStyle(600,400); 69 Collection<KeyValueDescibeData> parameters = this.getParameters();
67 ChartLabels chartLables = new ChartLabels(this.getSelectedFeatureName(),this.domainLable); 70 Collection<KeyValueDescibeData> measurements = this.getMeasurements();
68 this.createChart(outputStream, parameters, measurements, 71 ChartStyle chartStyle = this.creatStyle(600,400);
69 chartStyle, chartLables); 72 ChartLabels chartLables = new ChartLabels(this.getSelectedFeatureName(),this.domainLable);
73 this.createChart(outputStream, parameters, measurements,
74 chartStyle, chartLables);
75 }else if (outputMode.equalsIgnoreCase("csv")){
76 log.debug("CSV-File will be generated.");
77 if(this.chartResult != null){
78 CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream,"ISO-8859-1"), ','); // USE THIS ENCODING BECAUSE OF PROBLEMS WITH EXCEL AND UTF-8
79 Iterator<Result>it = this.chartResult.iterator();
80 while (it.hasNext()){
81 Result result = it.next();
82 int i = 0;
83 String[] entries = new String[5];
84 entries[i++] = result.getString("XORDINATE");
85 entries[i++] = result.getString("YORDINATE");
86 entries[i++] = result.getString("GROUP1");
87 entries[i++] = result.getString("GROUP2");
88 entries[i++] = result.getString("GROUP3");
89 writer.writeNext(entries);
90 }
91 writer.close();
92 }else{
93 log.error("No Data given for generation an CSV-File.");
94 throw new TransitionException("No Data given for generation an CSV-File.");
95 }
96 }
70 } catch (IOException e) { 97 } catch (IOException e) {
71 log.error(e,e); 98 log.error(e,e);
72 throw new TransitionException(e); 99 throw new TransitionException(e);
73 } catch (TechnicalChartException e) { 100 } catch (TechnicalChartException e) {
74 log.error(e,e); 101 log.error(e,e);

http://dive4elements.wald.intevation.org