# HG changeset patch # User Tim Englich # Date 1253806053 0 # Node ID 6bdef6e590d6ebc56bbcd7a251f44eb58d66e96b # Parent cde042a0a395cf2da1e50a6bab8c0adc72bdb42e Added CSV-Support and do some performanceimprovments gnv-artifacts/trunk@132 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r cde042a0a395 -r 6bdef6e590d6 gnv-artifacts/Changelog --- a/gnv-artifacts/Changelog Thu Sep 24 11:03:31 2009 +0000 +++ b/gnv-artifacts/Changelog Thu Sep 24 15:27:33 2009 +0000 @@ -1,3 +1,12 @@ +2009-09-24 Tim Englich + + * pom.xml Edited: + Added Library for CSV-Support + * src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java (out) Edited: + Add support for CSV-Export + * src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java (out) Edited: + Add Fag on Context for storing the Artifact status after out. + 2009-09-24 Tim Englich * src/main/java/de/intevation/gnv/utils/ArtifactXMLUtilities.java (createSuccessReport) Edited: diff -r cde042a0a395 -r 6bdef6e590d6 gnv-artifacts/pom.xml --- a/gnv-artifacts/pom.xml Thu Sep 24 11:03:31 2009 +0000 +++ b/gnv-artifacts/pom.xml Thu Sep 24 15:27:33 2009 +0000 @@ -52,5 +52,11 @@ jfreechart 1.0.7 + + net.sf.opencsv + opencsv + 2.0 + + diff -r cde042a0a395 -r 6bdef6e590d6 gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java Thu Sep 24 11:03:31 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java Thu Sep 24 15:27:33 2009 +0000 @@ -361,6 +361,7 @@ if (current != null && current instanceof OutputTransition){ ((OutputTransition)current).out(this.readOutputType(format), outputStream); + context.afterCall(CallContext.STORE); // TODO: FIXME Schmutzige Lösung: Besser einen weiteren Transitionsschritt zwischenschalten. } } catch (TransitionException e) { log.error(e,e); diff -r cde042a0a395 -r 6bdef6e590d6 gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java Thu Sep 24 11:03:31 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java Thu Sep 24 15:27:33 2009 +0000 @@ -7,11 +7,14 @@ import java.awt.Dimension; import java.io.IOException; import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.util.Collection; import java.util.Iterator; import org.apache.log4j.Logger; +import au.com.bytecode.opencsv.CSVWriter; + import de.intevation.gnv.chart.ChartFactory; import de.intevation.gnv.chart.ChartLabels; import de.intevation.gnv.chart.ChartStyle; @@ -58,15 +61,39 @@ * @see de.intevation.gnv.transition.OutputTransition#out(java.lang.String, java.io.OutputStream) */ public void out(String outputMode, OutputStream outputStream) throws TransitionException { - log.debug("TimeSeriesOutputTransition"); + log.debug("TimeSeriesOutputTransition.out"); try { - this.advance(); - Collection parameters = this.getParameters(); - Collection measurements = this.getMeasurements(); - ChartStyle chartStyle = this.creatStyle(600,400); - ChartLabels chartLables = new ChartLabels(this.getSelectedFeatureName(),this.domainLable); - this.createChart(outputStream, parameters, measurements, - chartStyle, chartLables); + this.advance(); + if (outputMode.equalsIgnoreCase("chart")){ + log.debug("Chart will be generated."); + Collection parameters = this.getParameters(); + Collection measurements = this.getMeasurements(); + ChartStyle chartStyle = this.creatStyle(600,400); + ChartLabels chartLables = new ChartLabels(this.getSelectedFeatureName(),this.domainLable); + this.createChart(outputStream, parameters, measurements, + chartStyle, chartLables); + }else if (outputMode.equalsIgnoreCase("csv")){ + log.debug("CSV-File will be generated."); + if(this.chartResult != null){ + CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream,"ISO-8859-1"), ','); // USE THIS ENCODING BECAUSE OF PROBLEMS WITH EXCEL AND UTF-8 + Iteratorit = this.chartResult.iterator(); + while (it.hasNext()){ + Result result = it.next(); + int i = 0; + String[] entries = new String[5]; + entries[i++] = result.getString("XORDINATE"); + entries[i++] = result.getString("YORDINATE"); + entries[i++] = result.getString("GROUP1"); + entries[i++] = result.getString("GROUP2"); + entries[i++] = result.getString("GROUP3"); + writer.writeNext(entries); + } + writer.close(); + }else{ + log.error("No Data given for generation an CSV-File."); + throw new TransitionException("No Data given for generation an CSV-File."); + } + } } catch (IOException e) { log.error(e,e); throw new TransitionException(e);