Mercurial > dive4elements > gnv-client
diff 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 diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontal/HorizontalProfileOutputTransition.java Thu Nov 19 17:54:18 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontal/HorizontalProfileOutputTransition.java Fri Nov 20 13:51:14 2009 +0000 @@ -3,23 +3,31 @@ */ 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; @@ -73,25 +81,47 @@ super.domainLable = "Distance [km]"; } - /** - * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createChart(java.io.OutputStream, - * java.util.Collection, java.util.Collection, java.lang.String, - * de.intevation.gnv.chart.ChartStyle, - * de.intevation.gnv.chart.ChartLabels) - */ - @Override - protected void createChart(OutputStream outputStream, - Collection<KeyValueDescibeData> parameters, - Collection<KeyValueDescibeData> measurements, - Collection<KeyValueDescibeData> dates, - ChartStyle chartStyle, ChartLabels chartLables, - String uuid) throws IOException, - TechnicalChartException { - HorizontalProfileChartFactory chartFactory = new HorizontalProfileChartFactory(); - chartFactory.createProfileChart(chartLables, chartStyle, parameters, - measurements,dates, outputStream, this.getChartResult(uuid)); + 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() */