Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java @ 83:5c8e54726a58
Added Support for Vertical Profiles Mesh
gnv-artifacts/trunk@113 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Wed, 23 Sep 2009 11:57:08 +0000 |
parents | 5eb62df21f9a |
children | 5d4f5d26bb7a |
line wrap: on
line source
/** * */ package de.intevation.gnv.transition.timeseries; import java.awt.Color; import java.awt.Dimension; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Collection; import java.util.Iterator; import org.apache.log4j.Logger; import de.intevation.gnv.chart.ChartFactory; import de.intevation.gnv.chart.ChartLabels; import de.intevation.gnv.chart.ChartStyle; import de.intevation.gnv.chart.exception.TechnicalChartException; import de.intevation.gnv.geobackend.base.Result; import de.intevation.gnv.transition.OutputTransitionBase; import de.intevation.gnv.transition.describedata.KeyValueDescibeData; import de.intevation.gnv.transition.describedata.NamedCollection; import de.intevation.gnv.transition.exception.TransitionException; /** * @author Tim Englich <tim.englich@intevation.de> * */ public class TimeSeriesOutputTransition extends OutputTransitionBase{ protected Collection<Result> chartResult = null; /** * the logger, used to log exceptions and additonaly information */ private static Logger log = Logger.getLogger(TimeSeriesOutputTransition.class); /** * Constructor */ public TimeSeriesOutputTransition() { super(); } /** * @see de.intevation.gnv.transition.Transition#validate() */ public boolean validate() { return true; } /** * @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"); try { this.advance(); // TODO nur neu holen wenn hash auf chartResult sich ge�ndert hat Collection<KeyValueDescibeData> parameters = this.getParameters(); Collection<KeyValueDescibeData> measurements = this.getMeasurements(); String timeSeriesName = "BLA"; ChartStyle chartStyle = this.creatStyle(600,400); StringBuffer lDiagramTitle = new StringBuffer(); lDiagramTitle.append(/*mSelectedFis.getTitle()*/ "FIS-TITLE").append(" - ").append(/*mSelectedFeatureId[0].getTitle()*/"FeatureTitle"); // TODO: FIXME String domainLable = "BLA"; // TODO woher bekommen wir das ChartLabels chartLables = new ChartLabels(lDiagramTitle.toString(),domainLable , /*mSelectedParams[0].getTitle()*/ "Selected Params Title"); createChart(outputStream, parameters, measurements, timeSeriesName, chartStyle, chartLables); } catch (IOException e) { log.error(e,e); throw new TransitionException(e); } catch (TechnicalChartException e) { log.error(e,e); throw new TransitionException(e); } } /** * @param outputStream * @param parameters * @param measurements * @param timeSeriesName * @param chartStyle * @param chartLables * @throws IOException * @throws TechnicalChartException */ protected void createChart(OutputStream outputStream, Collection<KeyValueDescibeData> parameters, Collection<KeyValueDescibeData> measurements, String timeSeriesName, ChartStyle chartStyle, ChartLabels chartLables) throws IOException, TechnicalChartException { ChartFactory chartFactory = new ChartFactory(); chartFactory.createSimpleTimeSeriesChart(chartLables, chartStyle, timeSeriesName, parameters, measurements, outputStream, this.chartResult); } /** * @see de.intevation.gnv.transition.TransitionBase#purifyResult(java.util.Collection) */ @Override protected void purifyResult(Collection<Result> result) { this.chartResult = result; } protected ChartStyle creatStyle(int witdh, int height){ // TODO Konfigurierbar machen de.intevation.gnv.chart.Insets lInsets = new de.intevation.gnv.chart.Insets(5d, 5d, 5d, 5d); Dimension lChartSize = new Dimension(witdh, height); return new ChartStyle(Color.white, new Color(230, 230, 230), Color.white, Color.white, true, true, lInsets, lChartSize); } protected Collection<KeyValueDescibeData> getParameters(){ String collectionName = "parameterid"; return this.getCollection(collectionName); } protected Collection<KeyValueDescibeData> getMeasurements(){ String collectionName = "measurementid"; return this.getCollection(collectionName); } /** * @param collectionName * @return */ protected Collection<KeyValueDescibeData> getCollection( String collectionName) { Iterator<Object> it = this.descibeData.iterator(); while (it.hasNext()){ Object o = it.next(); if (o instanceof NamedCollection<?>){ NamedCollection<KeyValueDescibeData> nc = (NamedCollection<KeyValueDescibeData>)o; if (nc.getName().equals(collectionName)){ // TODO: konfigurierbar machen. return nc; } } } return null; } }