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 :