Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/jfree/XYStyle.java @ 9555:ef5754ba5573
Implemented legend aggregation based on type of themes.
Added theme-editor style configuration for aggregated legend entries.
Only configured themes get aggregated.
author | gernotbelger |
---|---|
date | Tue, 23 Oct 2018 16:26:48 +0200 |
parents | ddcd52d239cd |
children |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/jfree/XYStyle.java Mon Oct 22 18:26:05 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/jfree/XYStyle.java Tue Oct 23 16:26:48 2018 +0200 @@ -14,6 +14,7 @@ import java.awt.geom.Ellipse2D; import org.dive4elements.river.themes.ThemeDocument; +import org.jfree.chart.LegendItem; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; /** @@ -170,8 +171,8 @@ if (c != null) r.setSeriesFillPaint(idx, c); - r.setUseFillPaint(c!= null); - + r.setUseFillPaint(c != null); + r.setSeriesShapesFilled(idx, show); r.setSeriesOutlinePaint(idx, c); @@ -219,4 +220,35 @@ public XYLineAndShapeRenderer getRenderer() { return this.renderer; } + + @Override + public void applyAggregatedLegendTheme(final LegendItem item, final ThemeDocument legendTheme) { + + if (this.theme == null) + return; + + if (this.shape != null) + item.setShape(this.shape); + + final Color lineColor = legendTheme.parseLineColorField(); + if (lineColor != null) + item.setLinePaint(lineColor); + + if (legendTheme.getValue(ThemeDocument.SHOW_LINE) != null) + item.setLineVisible(legendTheme.parseShowLine()); + + /* remark cant set line stroke on legend item */ + // applyLineSize(r, idx); + // applyLineType(r, idx); + + /* + * REMARK: we only change the colors, as visibility and such are interdependend and should be the same as the original + * items + */ + final Color c = legendTheme.parsePointColor(); + if (c != null) { + item.setFillPaint(c); + item.setOutlinePaint(c); + } + } } \ No newline at end of file