tim@335: /** tim@335: * tim@335: */ tim@335: package de.intevation.gnv.state.profile.vertical; tim@335: tim@335: import java.util.Collection; tim@335: import java.util.Locale; tim@335: tim@335: import org.apache.log4j.Logger; tim@335: ingo@358: import org.jfree.chart.ChartTheme; ingo@358: tim@335: import de.intevation.gnv.chart.Chart; tim@335: import de.intevation.gnv.chart.ChartLabels; tim@335: import de.intevation.gnv.chart.VerticalProfileChart; tim@335: import de.intevation.gnv.state.timeseries.TimeSeriesOutputState; tim@335: import de.intevation.gnv.statistics.Statistics; tim@335: import de.intevation.gnv.statistics.VerticalProfileStatistics; tim@335: tim@335: /** tim@335: * @author Tim Englich tim@335: * tim@335: */ tim@335: public class VerticalProfileOutputState extends TimeSeriesOutputState { tim@335: /** tim@335: * The UID of this class tim@335: */ tim@335: private static final long serialVersionUID = 4401516087492028840L; tim@335: tim@335: private static Logger log = Logger tim@335: .getLogger(TimeSeriesOutputState.class); tim@335: tim@335: /** tim@335: * Constructor tim@335: */ tim@335: public VerticalProfileOutputState() { tim@335: super(); ingo@343: super.domainLable = "chart.verticalprofile.title.xaxis"; tim@335: } tim@335: tim@335: tim@335: @Override tim@335: protected Chart getChart( tim@335: ChartLabels chartLables, ingo@358: ChartTheme theme, tim@335: Collection parameters, tim@335: Collection measurements, tim@335: Collection dates, tim@335: Collection result, tim@335: Locale locale, tim@335: String uuid, tim@335: boolean linesVisible, tim@335: boolean shapesVisible tim@335: ) { tim@335: Chart chart = null; tim@335: tim@335: if (CACHE_CHART) { tim@335: log.info("Try to get verticalprofile chart from cache."); tim@335: chart = (Chart) getChartFromCache(uuid); tim@335: } tim@335: tim@335: if (chart != null) tim@335: return chart; tim@335: tim@335: log.info("Chart not in cache yet."); tim@335: chart = new VerticalProfileChart( tim@335: chartLables, ingo@358: theme, tim@335: parameters, tim@335: measurements, tim@335: dates, tim@335: result, tim@335: null, tim@335: locale, tim@335: linesVisible, tim@335: shapesVisible tim@335: ); tim@335: chart.generateChart(); tim@335: tim@335: if (CACHE_CHART) { tim@335: log.info("Put chart into cache."); tim@335: purifyChart(chart, uuid); tim@335: } tim@335: tim@335: return chart; tim@335: } tim@335: tim@335: tim@335: protected String createChartSubtitle(Locale locale, String uuid) { tim@335: return getSelectedFeatureName(uuid); tim@335: } tim@335: tim@335: tim@335: tim@335: /** tim@335: * @see de.intevation.gnv.state.timeseries.TimeSeriesOutputState#getStatisticsGenerator() tim@335: */ tim@335: @Override tim@335: protected Statistics getStatisticsGenerator() { tim@335: return new VerticalProfileStatistics(); tim@335: } tim@335: tim@335: }