diff flys-client/src/main/java/de/intevation/flys/client/server/CollectionHelper.java @ 804:374712890b94

Facets read from Collection's DESCRIBE document keep all their attributes after the Collection's attribute has been modified. flys-client/trunk@2362 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 19 Jul 2011 16:32:52 +0000
parents a0884f486711
children e9337488bac3
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/CollectionHelper.java	Mon Jul 18 09:52:16 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/CollectionHelper.java	Tue Jul 19 16:32:52 2011 +0000
@@ -2,6 +2,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -10,6 +11,7 @@
 import de.intevation.artifacts.common.utils.XMLUtils;
 import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
 
+import de.intevation.flys.client.shared.model.AttributedTheme;
 import de.intevation.flys.client.shared.model.Collection;
 import de.intevation.flys.client.shared.model.OutputMode;
 import de.intevation.flys.client.shared.model.Theme;
@@ -143,14 +145,24 @@
             return null;
         }
 
-        Element t = cr.create("theme");
+        Element t = cr.create("facet");
 
-        cr.addAttr(t, "active", theme.isActive() ? "1" : "0", true);
-        cr.addAttr(t, "artifact", theme.getArtifact(), true);
-        cr.addAttr(t, "facet", theme.getFacet(), true);
-        cr.addAttr(t, "pos", Integer.toString(theme.getPosition()), true);
-        cr.addAttr(t, "index", Integer.toString(theme.getIndex()), true);
-        cr.addAttr(t, "description", theme.getDescription(), true);
+        if (theme instanceof AttributedTheme) {
+            AttributedTheme at = (AttributedTheme) theme;
+            Set<String>   keys = at.getKeys();
+
+            for (String key: keys) {
+                cr.addAttr(t, key, at.getAttr(key), true);
+            }
+        }
+        else {
+            cr.addAttr(t, "active", Integer.toString(theme.getActive()), true);
+            cr.addAttr(t, "artifact", theme.getArtifact(), true);
+            cr.addAttr(t, "facet", theme.getFacet(), true);
+            cr.addAttr(t, "pos", Integer.toString(theme.getPosition()), true);
+            cr.addAttr(t, "index", Integer.toString(theme.getIndex()), true);
+            cr.addAttr(t, "description", theme.getDescription(), true);
+        }
 
         return t;
     }

http://dive4elements.wald.intevation.org