Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledXYSeries.java @ 2321:991e4a5df323
Enabled styling in timeseries charts.
flys-artifacts/trunk@4003 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 09 Feb 2012 14:27:47 +0000 |
parents | 41037d51c8b6 |
children | 9d2a06c3a134 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledXYSeries.java Thu Feb 09 14:26:03 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledXYSeries.java Thu Feb 09 14:27:47 2012 +0000 @@ -1,31 +1,22 @@ package de.intevation.flys.jfree; -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.geom.Ellipse2D; import org.apache.log4j.Logger; import org.w3c.dom.Document; -import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.xy.XYSeries; -import de.intevation.flys.utils.ThemeUtil; /** - * Dataseries in two dimensions with additional theme-document and further - * display options. - * The theme-document will later "style" the graphical representation. - * The display options can be used to control the z-order and the axis of the - * dataseries. + * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ -public class StyledXYSeries extends XYSeries { - - protected Document theme; +public class StyledXYSeries extends XYSeries implements StyledSeries { private static final Logger logger = Logger.getLogger(StyledXYSeries.class); + protected Style style; + public StyledXYSeries(String key, Document theme) { this(key, true, theme); @@ -39,109 +30,19 @@ */ public StyledXYSeries(String key, boolean sorted, Document theme) { super(key, sorted); - this.theme = theme; - } - - - /** - * Applies line color, size and type attributes to renderer, also - * whether to draw lines and/or points. - */ - public XYLineAndShapeRenderer applyTheme(XYLineAndShapeRenderer r, int idx){ - applyLineColor(r, idx); - applyLineSize(r, idx); - applyLineType(r, idx); - applyShowLine(r, idx); - applyShowPoints(r, idx); - applyPointSize(r, idx); - applyShowMinimum(r, idx); - applyShowMaximum(r, idx); - - return r; - } - - - /** Set line color to renderer. */ - protected void applyLineColor(XYLineAndShapeRenderer r, int idx) { - Color c = ThemeUtil.parseLineColorField(theme); - r.setSeriesPaint(idx, c); - } - - - protected void applyLineSize(XYLineAndShapeRenderer r, int idx) { - int size = ThemeUtil.parseLineWidth(theme); - r.setSeriesStroke( - idx, - new BasicStroke(Integer.valueOf(size))); + setStyle(new XYStyle(theme)); } - protected void applyLineType(XYLineAndShapeRenderer r, int idx) { - int size = ThemeUtil.parseLineWidth(theme); - float[] dashes = ThemeUtil.parseLineStyle(theme); - - // Do not apply the dashed style. - if (dashes.length <= 1) { - return; - } - - r.setSeriesStroke( - idx, - new BasicStroke(Integer.valueOf(size), - BasicStroke.CAP_BUTT, - BasicStroke.JOIN_ROUND, - 1.0f, - dashes, - 0.0f)); - } - - - protected void applyPointSize(XYLineAndShapeRenderer r, int idx) { - int size = ThemeUtil.parsePointWidth(theme); - int dim = 2 * size; - - r.setSeriesShape(idx, new Ellipse2D.Double(-size, -size, dim, dim)); + @Override + public void setStyle(Style style) { + this.style = style; } - /** - * Sets form and visibility of points. - */ - protected void applyShowPoints(XYLineAndShapeRenderer r, int idx) { - boolean show = ThemeUtil.parseShowPoints(theme); - - r.setSeriesShapesVisible(idx, show); - r.setDrawOutlines(true); - } - - - protected void applyShowLine(XYLineAndShapeRenderer r, int idx) { - boolean show = ThemeUtil.parseShowLine(theme); - r.setSeriesLinesVisible(idx, show); - } - - - protected void applyShowMinimum(XYLineAndShapeRenderer r, int idx) { - if (!(r instanceof EnhancedLineAndShapeRenderer)) { - return; - } - - boolean visible = ThemeUtil.parseShowMinimum(theme); - - EnhancedLineAndShapeRenderer er = (EnhancedLineAndShapeRenderer) r; - er.setIsMinimumShapeVisisble(idx, visible); - } - - - protected void applyShowMaximum(XYLineAndShapeRenderer r, int idx) { - if (!(r instanceof EnhancedLineAndShapeRenderer)) { - return; - } - - boolean visible = ThemeUtil.parseShowMaximum(theme); - - EnhancedLineAndShapeRenderer er = (EnhancedLineAndShapeRenderer) r; - er.setIsMaximumShapeVisible(idx, visible); + @Override + public Style getStyle() { + return style; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :