Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontal/HorizontalProfileOutputTransition.java @ 300:6a3a02e004d9
Refactored process of chart generation. Charts will be generated via Chart-Interface from rev351 and no more via factory classes.
gnv-artifacts/trunk@354 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 20 Nov 2009 13:51:14 +0000 |
parents | 75da91eca29f |
children | 3ea030aafe65 |
line wrap: on
line source
/** * */ package de.intevation.gnv.transition.profile.horizontal; import java.awt.Dimension; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.util.Collection; import java.util.Iterator; import java.util.Locale; import javax.imageio.ImageIO; import org.apache.log4j.Logger; import org.jfree.chart.ChartTheme; import au.com.bytecode.opencsv.CSVWriter; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.io.ParseException; import com.vividsolutions.jts.io.WKTReader; import de.intevation.gnv.chart.Chart; import de.intevation.gnv.chart.ChartLabels; import de.intevation.gnv.chart.ChartStyle; import de.intevation.gnv.chart.HorizontalProfileChart; import de.intevation.gnv.chart.HorizontalProfileChartFactory; import de.intevation.gnv.chart.exception.TechnicalChartException; import de.intevation.gnv.geobackend.base.Result; import de.intevation.gnv.statistics.HorizontalProfileStatistics; import de.intevation.gnv.statistics.Statistics; import de.intevation.gnv.transition.describedata.KeyValueDescibeData; import de.intevation.gnv.transition.exception.TransitionException; import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition; import de.intevation.gnv.exports.DefaultExport; import de.intevation.gnv.exports.ShapeDataCollector; import de.intevation.gnv.exports.DefaultProfile; import de.intevation.gnv.exports.Export.Profile; /** * @author Tim Englich <tim.englich@intevation.de> * */ public class HorizontalProfileOutputTransition extends TimeSeriesOutputTransition { /** * The UID of this class */ private static final long serialVersionUID = 4401516087492028840L; private static Logger log = Logger .getLogger(HorizontalProfileOutputTransition.class); public static final String [] TIMESERIES_CSV_PROFILE_NAMES = { "SHAPE", "YORDINATE", "GROUP1", "GROUP2", "GROUP3" }; public static final Profile TIMESERIES_CSV_PROFILE = new DefaultProfile( null, ',', '"', '"', "CSV", "ISO-8859-1"); /** * Constructor */ public HorizontalProfileOutputTransition() { super(); super.domainLable = "Distance [km]"; } protected Chart getChart( ChartLabels chartLables, ChartTheme chartTheme, Collection parameters, Collection measurements, Collection result, Collection dates, Locale locale, String uuid ) { Chart chart = null; if (CACHE_CHART) { log.info("Try to get horizontalprofile chart from cache."); chart = (Chart) getChartFromCache(uuid); } if (chart != null) return chart; log.info("Chart not in cache yet."); chart = new HorizontalProfileChart( chartLables, chartTheme, parameters, measurements, result, dates, locale ); chart.generateChart(); if (CACHE_CHART) { log.info("Put chart into cache."); purifyChart(chart, uuid); } return chart; } /** * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#getStatisticsGenerator() */ @Override protected Statistics getStatisticsGenerator() { return new HorizontalProfileStatistics(); } @Override protected void createCSV(OutputStream outputStream, Collection<Result> chartResult) throws UnsupportedEncodingException, IOException, TransitionException { log.debug("createCSV for HorizontalProfileOutputTransition."); DefaultExport export = new DefaultExport( new ShapeDataCollector(TIMESERIES_CSV_PROFILE_NAMES)); export.create(TIMESERIES_CSV_PROFILE, outputStream, chartResult); } }