diff flys-client/src/main/java/de/intevation/flys/client/server/ChartInfoServiceImpl.java @ 1598:ef745bc6bed9

Distinguish between numbers and dates while parsing chart info documents; the MousePosition panel now displays the position on date axes correctly. flys-client/trunk@3931 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 06 Feb 2012 14:43:27 +0000
parents 8bbaa0d173cf
children 8c1f90e380a3
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/ChartInfoServiceImpl.java	Mon Feb 06 13:27:05 2012 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/ChartInfoServiceImpl.java	Mon Feb 06 14:43:27 2012 +0000
@@ -229,7 +229,7 @@
         List<Transform2D> transformer = new ArrayList<Transform2D>(num);
 
         for (int i = 0; i < num; i++) {
-            Transform2D t = createTransformer(matrix.item(i));
+            Transform2D t = createTransformer((Element) matrix.item(i));
 
             if (t == null) {
                 logger.warn("Broken transformation matrix at pos: " + i);
@@ -243,26 +243,30 @@
     }
 
 
-    protected Transform2D createTransformer(Node matrix) {
-        String sx = XMLUtils.xpathString(
-            matrix, "@art:sx", ArtifactNamespaceContext.INSTANCE);
+    protected Transform2D createTransformer(Element matrix) {
+        String ns = ArtifactNamespaceContext.NAMESPACE_URI;
 
-        String sy = XMLUtils.xpathString(
-            matrix, "@art:sy", ArtifactNamespaceContext.INSTANCE);
+        String sx    = matrix.getAttributeNS(ns, "sx");
+        String sy    = matrix.getAttributeNS(ns, "sy");
+        String tx    = matrix.getAttributeNS(ns, "tx");
+        String ty    = matrix.getAttributeNS(ns, "ty");
+        String xType = matrix.getAttributeNS(ns, "xtype");
+        String yType = matrix.getAttributeNS(ns, "ytype");
 
-        String tx = XMLUtils.xpathString(
-            matrix, "@art:tx", ArtifactNamespaceContext.INSTANCE);
-
-        String ty = XMLUtils.xpathString(
-            matrix, "@art:ty", ArtifactNamespaceContext.INSTANCE);
+        xType = xType == null || xType.length() == 0 ? "number" : xType;
+        yType = yType == null || yType.length() == 0 ? "number" : yType;
 
         if (sx != null && sy != null && tx != null && ty != null) {
             try {
+                logger.debug("Create new Transform2D with x format: " + xType);
+                logger.debug("Create new Transform2D with y format: " + yType);
+
                 return new Transform2D(
                     Double.parseDouble(sx),
                     Double.parseDouble(sy),
                     Double.parseDouble(tx),
-                    Double.parseDouble(ty));
+                    Double.parseDouble(ty),
+                    xType, yType);
             }
             catch (NumberFormatException nfe) {
                 logger.warn("Error while parsing matrix values.");

http://dive4elements.wald.intevation.org