diff flys-artifacts/src/main/java/de/intevation/flys/exports/StyledXYSeries.java @ 1753:741ba9e34c7d

Apply the attributes 'showpoints' and 'showline'. flys-artifacts/trunk@3056 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 21 Oct 2011 14:02:07 +0000
parents 1bc926b5b435
children 8e6615ad60b8
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/StyledXYSeries.java	Fri Oct 21 13:25:24 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/StyledXYSeries.java	Fri Oct 21 14:02:07 2011 +0000
@@ -2,6 +2,7 @@
 
 import java.awt.BasicStroke;
 import java.awt.Color;
+import java.awt.geom.Ellipse2D;
 
 import org.apache.log4j.Logger;
 
@@ -11,6 +12,7 @@
 import org.jfree.data.xy.XYSeries;
 
 import de.intevation.artifacts.common.utils.XMLUtils;
+import de.intevation.flys.utils.ThemeUtil;
 
 
 public class StyledXYSeries extends XYSeries {
@@ -44,91 +46,58 @@
         applyLineColor(r, idx);
         applyLineSize(r, idx);
         applyLineType(r, idx);
-
-        r.setSeriesLinesVisible(idx, true);
-        r.setSeriesShapesVisible(idx, false);
+        applyShowLine(r, idx);
+        applyShowPoints(r, idx);
 
         return r;
     }
 
 
     protected void applyLineColor(XYLineAndShapeRenderer r, int idx) {
-        String color = XMLUtils.xpathString(theme, XPATH_LINE_COLOR, null);
-
-        if (color == null || color.length() == 0) {
-            return;
-        }
-
-        String[] rgb = color.split(",");
-
-        try {
-            Color c = new Color(
-                Integer.valueOf(rgb[0].trim()),
-                Integer.valueOf(rgb[1].trim()),
-                Integer.valueOf(rgb[2].trim()));
-
-            logger.debug("Set series paint color: " + c.toString());
-
-            r.setSeriesPaint(idx, c);
-        }
-        catch (NumberFormatException nfe) {
-            logger.warn("Unable to set color from string: '" + color + "'");
-        }
+        Color c = ThemeUtil.parseLineColorField(theme);
+        r.setSeriesPaint(idx, c);
     }
 
 
     protected void applyLineSize(XYLineAndShapeRenderer r, int idx) {
-        String size = XMLUtils.xpathString(theme, XPATH_LINE_SIZE, null);
-
-        if (size == null || size.length() == 0) {
-            return;
-        }
-
-        try {
-            r.setSeriesStroke(
-                idx,
-                new BasicStroke(Integer.valueOf(size)));
-        }
-        catch (NumberFormatException nfe) {
-            logger.warn("Unable to set line size from string: '" + size + "'");
-        }
+        int size = ThemeUtil.parseLineWidth(theme);
+        r.setSeriesStroke(
+            idx,
+            new BasicStroke(Integer.valueOf(size)));
     }
 
 
     protected void applyLineType(XYLineAndShapeRenderer r, int idx) {
-        String dash = XMLUtils.xpathString(theme, XPATH_LINE_TYPE, null);
-        String size = XMLUtils.xpathString(theme, XPATH_LINE_SIZE, null);
+        int size = ThemeUtil.parseLineWidth(theme);
+        float[] dashes = ThemeUtil.parseLineStyle(theme);
 
-        if (dash == null || dash.length() == 0) {
-            return;
-        }
-        if (size == null || size.length() == 0) {
-            return;
-        }
-
-        String[] pattern = dash.split(",");
-        if(pattern.length == 1) {
+        // Do not apply the dashed style.
+        if (dashes.length <= 1) {
             return;
         }
 
-        try {
-            float[] dashes = new float[pattern.length];
-            for (int i = 0; i < pattern.length; i++) {
-                dashes[i] = Float.parseFloat(pattern[i]);
-            }
+        r.setSeriesStroke(
+            idx,
+            new BasicStroke(Integer.valueOf(size),
+                            BasicStroke.CAP_BUTT,
+                            BasicStroke.JOIN_ROUND,
+                            1.0f,
+                            dashes,
+                            0.0f));
+    }
 
-            r.setSeriesStroke(
-                idx,
-                new BasicStroke(Integer.valueOf(size),
-                                BasicStroke.CAP_BUTT,
-                                BasicStroke.JOIN_ROUND,
-                                1.0f,
-                                dashes,
-                                0.0f));
-        }
-        catch(NumberFormatException nfe) {
-            logger.warn("Unable to set dash from string: '" + dash + "'");
-        }
+
+    protected void applyShowPoints(XYLineAndShapeRenderer r, int idx) {
+        boolean show = ThemeUtil.parseShowPoints(theme);
+        r.setSeriesShape(idx, new Ellipse2D.Double(-2.0, -2.0, 4.0, 4.0));
+        r.setSeriesShapesVisible(idx, show);
+        r.setDrawOutlines(true);
+    }
+
+
+    protected void applyShowLine(XYLineAndShapeRenderer r, int idx) {
+        boolean show = ThemeUtil.parseShowLine(theme);
+        r.setSeriesLinesVisible(idx, show);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org