Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/chart/XMLChartTheme.java @ 617:3d13fa281a7e
Added new ouput mode: histogram.
gnv-artifacts/trunk@688 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 15 Feb 2010 11:44:01 +0000 |
parents | 22a6493e8460 |
children | 79401c871da4 |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/chart/XMLChartTheme.java Fri Feb 12 18:04:58 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/XMLChartTheme.java Mon Feb 15 11:44:01 2010 +0000 @@ -2,6 +2,7 @@ import java.awt.Font; import java.awt.Color; +import java.awt.Paint; import java.awt.geom.Ellipse2D; import java.lang.NumberFormatException; @@ -9,6 +10,8 @@ import org.jfree.chart.StandardChartTheme; import org.jfree.chart.plot.XYPlot; +import org.jfree.chart.renderer.xy.AbstractXYItemRenderer; +import org.jfree.chart.renderer.xy.XYBarRenderer; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.ui.RectangleInsets; import org.jfree.util.UnitType; @@ -36,6 +39,8 @@ protected int pointWidth; protected int pointHeight; + protected Paint histogramBasePaint; + public XMLChartTheme(String name) { super(name); @@ -62,6 +67,16 @@ } + public void setHistogramBasePaint(Color c) { + this.histogramBasePaint = c; + } + + + public Paint getHistogramBasePaint() { + return histogramBasePaint; + } + + public void applyXMLConfiguration(Document document) { log.debug("create XMLChartTheme"); @@ -79,6 +94,7 @@ initAxisParameters(document); initLegendParameters(document); initRenderer(document); + initHistogramColor(document); } @@ -213,6 +229,16 @@ } + private void initHistogramColor(Document document) { + log.debug("init histogram color"); + String tmp = getString(document, "theme/histogram/bar/color/@value"); + Color c = decodeColor(tmp); + + if (c != null) + setHistogramBasePaint(c); + } + + private static String getString(Document document, String xpath) { return Config.getStringXPath(document, xpath); } @@ -271,7 +297,14 @@ plot.setDomainCrosshairVisible(this.domainCrosshairVisible); plot.setRangeCrosshairVisible(this.rangeCrosshairVisible); - applyToXYLineAndShapeRenderer(plot); + AbstractXYItemRenderer renderer = (AbstractXYItemRenderer) + plot.getRenderer(); + + if (renderer instanceof XYLineAndShapeRenderer) + applyToXYLineAndShapeRenderer(plot); + + if (renderer instanceof XYBarRenderer) + applyToXYBarRenderer(plot); } @@ -292,4 +325,14 @@ plot.setRenderer(renderer); } + + + protected void applyToXYBarRenderer(XYPlot plot) { + if (plot == null) + return; + + XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer(); + + renderer.setSeriesPaint(0, histogramBasePaint); + } }