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

http://dive4elements.wald.intevation.org