diff flys-artifacts/src/main/java/de/intevation/flys/utils/ThemeUtil.java @ 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 fc52ee878412
children dc0d37715e16
line wrap: on
line diff
--- 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