Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractXYLineChart.java @ 309:333ea3d54423
Added new Timevalues because the Data in the DWH has changed.
gnv-artifacts/trunk@367 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 24 Nov 2009 15:59:51 +0000 |
parents | f0f106c7b906 |
children | 63f8b3fb7d9a |
line wrap: on
line source
package de.intevation.gnv.chart; import java.awt.Color; import java.util.Collection; import java.util.Iterator; import org.apache.log4j.Logger; import org.jfree.chart.JFreeChart; import org.jfree.chart.ChartFactory; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.NumberTickUnit; import org.jfree.chart.axis.AxisLocation; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.StandardXYItemRenderer; import org.jfree.data.general.Series; import de.intevation.gnv.geobackend.base.Result; import de.intevation.gnv.transition.describedata.KeyValueDescibeData; /** * @author Ingo Weinzierl <ingo.weinzierl@intevation.de> */ public abstract class AbstractXYLineChart extends AbstractChart { private static Logger log = Logger.getLogger(AbstractXYLineChart.class); protected static Color[] COLOR = { Color.black, Color.red, Color.green, Color.blue }; protected PlotOrientation PLOT_ORIENTATION = PlotOrientation.VERTICAL; protected abstract void initData(); protected abstract void addValue(Result row, Series series); protected abstract void addSeries(Series series, int idx); protected abstract String createSeriesName( String breakPoint1, String breakPoint2, String breakPoint3 ); public JFreeChart generateChart() { log.debug("generate XYLineChart"); if (chart != null) return chart; chart = ChartFactory.createXYLineChart( labels.getTitle(), labels.getDomainAxisLabel(), null, null, PLOT_ORIENTATION, true, false, false ); theme.apply(chart); initData(); return chart; } protected void prepareAxis(String seriesKey, int idx) { log.debug("prepare axis of xychart"); XYPlot plot = chart.getXYPlot(); NumberAxis axis = new NumberAxis(seriesKey); if (seriesKey.contains("richtung")) { axis.setTickUnit(new NumberTickUnit(30.0)); axis.setUpperBound(360.0); axis.setLowerBound(0.0); plot.setRangeAxis(idx, axis); } else { axis.setFixedDimension(10.0); axis.setAutoRangeIncludesZero(false); plot.setRangeAxis(idx, axis); axis.configure(); } if (idx % 2 != 0) plot.setRangeAxisLocation(idx, AxisLocation.BOTTOM_OR_RIGHT); else plot.setRangeAxisLocation(idx, AxisLocation.BOTTOM_OR_LEFT); plot.mapDatasetToRangeAxis(idx, idx); StandardXYItemRenderer renderer = new StandardXYItemRenderer(); renderer.setSeriesPaint(idx, COLOR[idx%COLOR.length]); plot.setRenderer(idx, renderer); } protected String findValueTitle(Collection values, String id) { log.debug("find description of dataset"); if (values != null){ Iterator it = values.iterator(); while (it.hasNext()) { KeyValueDescibeData data = (KeyValueDescibeData) it.next(); if (id.equals(data.getKey())) return data.getValue(); } } return ""; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=latin1 :