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 }

http://dive4elements.wald.intevation.org