changeset 4686:85876e3a5346

Fixed and improved theme handling for areas.
author Raimund Renkert <rrenkert@intevation.de>
date Mon, 17 Dec 2012 15:32:53 +0100
parents ffe273af84fb
children b3d7d5289b7f
files flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledAreaSeriesCollection.java flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledDomainMarker.java flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledValueMarker.java flys-artifacts/src/main/java/de/intevation/flys/utils/ThemeUtil.java
diffstat 4 files changed, 69 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledAreaSeriesCollection.java	Mon Dec 17 15:31:07 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledAreaSeriesCollection.java	Mon Dec 17 15:32:53 2012 +0100
@@ -84,9 +84,9 @@
 
     protected void applyFillColor(StableXYDifferenceRenderer renderer) {
         Color paint = ThemeUtil.parseColor(
-                ThemeUtil.getBackgroundColorString(theme));
+                ThemeUtil.getAreaBackgroundColorString(theme));
 
-        int transparency = ThemeUtil.parseTransparency(theme);
+        int transparency = ThemeUtil.parseAreaTransparency(theme);
         if (transparency > 0 && paint != null) {
             paint = new Color(
                         paint.getRed(),
@@ -113,7 +113,7 @@
 
 
     protected void applyShowShape(StableXYDifferenceRenderer renderer) {
-        boolean show = ThemeUtil.parseShowBorder(theme);
+        boolean show = ThemeUtil.parseAreaShowBorder(theme);
         renderer.setDrawOutline(show);
     }
 
--- a/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledDomainMarker.java	Mon Dec 17 15:31:07 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledDomainMarker.java	Mon Dec 17 15:32:53 2012 +0100
@@ -16,19 +16,21 @@
 
     private static final long serialVersionUID = -4369417661339512342L;
 
-    private final Color fillColor, backgroundColor;
+    private final Color backgroundColor, backgroundColor2;
 
     public StyledDomainMarker(double start, double end, Document theme) {
         super(start, end);
 
         backgroundColor = ThemeUtil.parseColor(
-                ThemeUtil.getBackgroundColorString(theme));
-        fillColor = ThemeUtil.parseColor(
-                ThemeUtil.getFillColorString(theme));
+                ThemeUtil.getAreaBackgroundColorString(theme));
+        backgroundColor2 = new Color(
+            255 - backgroundColor.getRed(),
+            255 - backgroundColor.getGreen(),
+            255 - backgroundColor.getBlue());
         useSecondColor(false);
 
         int alpha = 100 - ThemeUtil.parseInteger(
-                ThemeUtil.getTransparencyString(theme), 50);
+                ThemeUtil.getAreaTransparencyString(theme), 50);
         setAlpha(alpha / 100.0f);
     }
 
@@ -38,13 +40,13 @@
      * @param secondColor
      */
     public void useSecondColor(boolean secondColor) {
-        if(secondColor) {
+        if(!secondColor) {
             if(backgroundColor != null)
                 setPaint(backgroundColor);
         }
         else {
-            if(fillColor != null)
-                setPaint(fillColor);
+            if(backgroundColor2 != null)
+                setPaint(backgroundColor2);
         }
     }
 }
--- a/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledValueMarker.java	Mon Dec 17 15:31:07 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledValueMarker.java	Mon Dec 17 15:32:53 2012 +0100
@@ -19,7 +19,7 @@
     public StyledValueMarker(double value, Document theme) {
         super(value);
 
-        Color color = ThemeUtil.parseLineColorField(theme);
+        Color color = ThemeUtil.parseAreaBackgroundColor(theme);
         if(color == null) {
             color = Color.BLACK;
         }
--- a/flys-artifacts/src/main/java/de/intevation/flys/utils/ThemeUtil.java	Mon Dec 17 15:31:07 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/utils/ThemeUtil.java	Mon Dec 17 15:32:53 2012 +0100
@@ -29,6 +29,9 @@
     public final static String XPATH_LINE_COLOR =
             "/theme/field[@name='linecolor']/@default";
 
+    public final static String XPATH_AREA_LINE_COLOR =
+            "/theme/field[@name='areabordercolor']/@default";
+
     public static final String XPATH_LINE_SIZE =
             "/theme/field[@name='linesize']/@default";
 
@@ -44,6 +47,9 @@
     public final static String XPATH_SHOW_BORDER =
             "/theme/field[@name='showborder']/@default";
 
+    public final static String XPATH_AREA_SHOW_BORDER =
+            "/theme/field[@name='showborder']/@default";
+
     public final static String XPATH_SHOW_POINTS =
             "/theme/field[@name='showpoints']/@default";
 
@@ -71,6 +77,9 @@
     public final static String XPATH_TRANSPARENCY =
             "/theme/field[@name='transparency']/@default";
 
+    public final static String XPATH_AREA_TRANSPARENCY =
+            "/theme/field[@name='areatransparency']/@default";
+
     public final static String XPATH_SHOW_AREA =
             "/theme/field[@name='showarea']/@default";
 
@@ -101,6 +110,9 @@
     public final static String XPATH_BACKGROUND_COLOR =
             "/theme/field[@name='backgroundcolor']/@default";
 
+    public final static String XPATH_AREA_BACKGROUND_COLOR =
+            "/theme/field[@name='areabgcolor']/@default";
+
     public final static String XPATH_SYMBOL =
             "/theme/field[@name='symbol']/@default";
 
@@ -570,6 +582,11 @@
     }
 
 
+    public static String getAreaTransparencyString(Document theme) {
+        return XMLUtils.xpathString(theme, XPATH_AREA_TRANSPARENCY, null);
+    }
+
+
     public static String getShowMinimum(Document theme) {
         return XMLUtils.xpathString(theme, XPATH_SHOW_MINIMUM, null);
     }
@@ -613,6 +630,19 @@
     }
 
 
+    public static Color parseAreaLineColorField(Document theme) {
+        String lineColorStr = getAreaLineColorString(theme);
+        logger.debug("parseLineColorField: lineColorStr = " +
+                (lineColorStr == null ? "null" : lineColorStr));
+        return parseColor(lineColorStr);
+    }
+
+
+    private static String getAreaLineColorString(Document theme) {
+        return XMLUtils.xpathString(theme, XPATH_AREA_LINE_COLOR, null);
+    }
+
+
     public static boolean parseShowMinimum(Document theme) {
         return parseBoolean(getShowMinimum(theme), false);
     }
@@ -723,5 +753,30 @@
 
         return ms.toString();
     }
+
+
+    public static String getAreaBackgroundColorString(Document theme) {
+        return XMLUtils.xpathString(theme, XPATH_AREA_BACKGROUND_COLOR, null);
+    }
+
+
+    public static Color parseAreaBackgroundColor(Document theme) {
+        return parseColor(getAreaBackgroundColorString(theme));
+    }
+
+
+    public static int parseAreaTransparency(Document theme) {
+        return parseInteger(getAreaTransparencyString(theme), 50);
+    }
+
+
+    public static boolean parseAreaShowBorder(Document theme) {
+        return parseBoolean(getAreaShowBorderString(theme), false);
+    }
+
+
+    private static String getAreaShowBorderString(Document theme) {
+        return XMLUtils.xpathString(theme, XPATH_AREA_SHOW_BORDER, null);
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org