diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DefaultState.java @ 134:f3dfa188d8b2

Let the states describe the static ui part. flys-artifacts/trunk@1502 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 17 Mar 2011 16:03:36 +0000
parents b06cd117b565
children 2d6e02787d00
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DefaultState.java	Thu Mar 17 12:17:37 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DefaultState.java	Thu Mar 17 16:03:36 2011 +0000
@@ -30,6 +30,48 @@
     private static Logger logger = Logger.getLogger(DefaultState.class);
 
 
+    public Element describeStatic(
+        Document    document,
+        Node        root,
+        CallContext context,
+        String      uuid)
+    {
+        XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator(
+            document,
+            ArtifactNamespaceContext.NAMESPACE_URI,
+            ArtifactNamespaceContext.NAMESPACE_PREFIX);
+
+        Element ui  = ProtocolUtils.createArtNode(
+            creator, "state",
+            new String[] { "name" },
+            new String[] { getID() });
+
+        Map<String, StateData> theData = getData();
+        if (theData == null) {
+            return ui;
+        }
+
+        Collection<StateData> dataItems = theData.values();
+
+        for (StateData data: dataItems) {
+            String name    = data.getName();
+
+            Element dataElement = creator.create("data");
+            creator.addAttr(dataElement, "name", name, true);
+            creator.addAttr(dataElement, "type", data.getType(), true);
+
+            Element itemElement = creator.create("item");
+            creator.addAttr(itemElement, "value", (String) data.getValue(), true);
+            // TODO Description (human readable) is missing
+
+            dataElement.appendChild(itemElement);
+            ui.appendChild(dataElement);
+        }
+
+        return ui;
+    }
+
+
     public Element describe(
         Document    document,
         Node        root,

http://dive4elements.wald.intevation.org