ingo@1040: package de.intevation.gnv.state.timeseries; ingo@1040: ingo@1040: import de.intevation.artifacts.CallContext; ingo@1040: ingo@1040: import de.intevation.gnv.chart.Chart; ingo@1040: import de.intevation.gnv.chart.ChartLabels; ingo@1040: import de.intevation.gnv.chart.TimeSeriesVectorChart; ingo@1040: ingo@1040: import de.intevation.gnv.geobackend.base.Result; ingo@1040: import de.intevation.gnv.geobackend.base.query.QueryExecutor; ingo@1040: import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; ingo@1040: import de.intevation.gnv.geobackend.base.query.exception.QueryException; ingo@1040: ingo@1040: import de.intevation.gnv.utils.VectorDataProcessor; ingo@1040: ingo@1040: import java.util.Collection; ingo@1040: import java.util.Locale; ingo@1040: ingo@1040: import org.apache.log4j.Logger; ingo@1040: ingo@1040: import org.jfree.chart.ChartTheme; ingo@1040: ingo@1040: /** ingo@1040: * @author Ingo Weinzierl ingo@1040: */ ingo@1040: public class TimeSeriesVectorOutputState extends TimeSeriesOutputState { ingo@1040: ingo@1040: private static Logger logger = ingo@1040: Logger.getLogger(TimeSeriesVectorOutputState.class); ingo@1040: ingo@1040: public TimeSeriesVectorOutputState() { ingo@1040: } ingo@1040: ingo@1040: ingo@1040: @Override ingo@1040: protected Collection getData(String queryID) { ingo@1040: logger.debug("Fetch chart data from database and convert it."); ingo@1040: try { ingo@1040: String[] filter = generateFilterValuesFromInputData(); ingo@1040: QueryExecutor queryExecutor = ingo@1040: QueryExecutorFactory.getInstance().getQueryExecutor(); ingo@1040: ingo@1040: Collection res = queryExecutor.executeQuery(queryID,filter); ingo@1040: return VectorDataProcessor.process(res); ingo@1040: } ingo@1040: catch (RuntimeException e) { ingo@1040: logger.error(e, e); ingo@1040: } ingo@1040: catch (QueryException e) { ingo@1040: logger.error(e, e); ingo@1040: } ingo@1040: ingo@1040: return null; ingo@1040: } ingo@1040: ingo@1040: ingo@1040: @Override ingo@1040: protected Chart getChart( ingo@1040: ChartLabels chartLables, ingo@1040: ChartTheme theme, ingo@1040: Collection parameters, ingo@1040: Collection measurements, ingo@1040: Collection dates, ingo@1040: Object result, ingo@1040: Locale locale, ingo@1040: String uuid, ingo@1040: boolean linesVisible, ingo@1040: boolean shapesVisible, ingo@1040: CallContext callContext ingo@1040: ) { ingo@1040: Chart chart = new TimeSeriesVectorChart( ingo@1040: chartLables, ingo@1040: theme, ingo@1040: parameters, ingo@1040: measurements, ingo@1040: dates, ingo@1040: (Collection)result, ingo@1040: timeGapDefinitions, ingo@1040: locale, ingo@1040: linesVisible, ingo@1040: shapesVisible ingo@1040: ); ingo@1040: chart.generateChart(); ingo@1040: ingo@1040: return chart; ingo@1040: } ingo@1040: } ingo@1040: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :