Mercurial > dive4elements > river
comparison 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 |
comparison
equal
deleted
inserted
replaced
9554:33ce8eba9806 | 9555:ef5754ba5573 |
---|---|
12 import java.awt.Color; | 12 import java.awt.Color; |
13 import java.awt.Shape; | 13 import java.awt.Shape; |
14 import java.awt.geom.Ellipse2D; | 14 import java.awt.geom.Ellipse2D; |
15 | 15 |
16 import org.dive4elements.river.themes.ThemeDocument; | 16 import org.dive4elements.river.themes.ThemeDocument; |
17 import org.jfree.chart.LegendItem; | |
17 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; | 18 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; |
18 | 19 |
19 /** | 20 /** |
20 * Utility to apply theme-settings to a renderer. | 21 * Utility to apply theme-settings to a renderer. |
21 * | 22 * |
168 final boolean show = this.theme.parseShowPoints(); | 169 final boolean show = this.theme.parseShowPoints(); |
169 final boolean showOutline = this.theme.parseShowPointsOutline(); | 170 final boolean showOutline = this.theme.parseShowPointsOutline(); |
170 | 171 |
171 if (c != null) | 172 if (c != null) |
172 r.setSeriesFillPaint(idx, c); | 173 r.setSeriesFillPaint(idx, c); |
173 r.setUseFillPaint(c!= null); | 174 r.setUseFillPaint(c != null); |
174 | 175 |
175 r.setSeriesShapesFilled(idx, show); | 176 r.setSeriesShapesFilled(idx, show); |
176 | 177 |
177 r.setSeriesOutlinePaint(idx, c); | 178 r.setSeriesOutlinePaint(idx, c); |
178 r.setDrawOutlines(showOutline); | 179 r.setDrawOutlines(showOutline); |
179 r.setUseOutlinePaint(c != null); | 180 r.setUseOutlinePaint(c != null); |
217 | 218 |
218 @Override | 219 @Override |
219 public XYLineAndShapeRenderer getRenderer() { | 220 public XYLineAndShapeRenderer getRenderer() { |
220 return this.renderer; | 221 return this.renderer; |
221 } | 222 } |
223 | |
224 @Override | |
225 public void applyAggregatedLegendTheme(final LegendItem item, final ThemeDocument legendTheme) { | |
226 | |
227 if (this.theme == null) | |
228 return; | |
229 | |
230 if (this.shape != null) | |
231 item.setShape(this.shape); | |
232 | |
233 final Color lineColor = legendTheme.parseLineColorField(); | |
234 if (lineColor != null) | |
235 item.setLinePaint(lineColor); | |
236 | |
237 if (legendTheme.getValue(ThemeDocument.SHOW_LINE) != null) | |
238 item.setLineVisible(legendTheme.parseShowLine()); | |
239 | |
240 /* remark cant set line stroke on legend item */ | |
241 // applyLineSize(r, idx); | |
242 // applyLineType(r, idx); | |
243 | |
244 /* | |
245 * REMARK: we only change the colors, as visibility and such are interdependend and should be the same as the original | |
246 * items | |
247 */ | |
248 final Color c = legendTheme.parsePointColor(); | |
249 if (c != null) { | |
250 item.setFillPaint(c); | |
251 item.setOutlinePaint(c); | |
252 } | |
253 } | |
222 } | 254 } |