Mercurial > dive4elements > river
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,