Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.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 | 206312c2aa76 |
children | dde6904ba160 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Thu Mar 17 12:17:37 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Thu Mar 17 16:03:36 2011 +0000 @@ -1,9 +1,7 @@ package de.intevation.flys.artifacts; import java.util.List; -import java.util.Set; - -import javax.xml.xpath.XPathConstants; +import java.util.Vector; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -15,15 +13,14 @@ import de.intevation.artifacts.CallContext; import de.intevation.artifactdatabase.ProtocolUtils; -import de.intevation.artifactdatabase.data.StateData; import de.intevation.artifactdatabase.state.State; import de.intevation.artifactdatabase.state.StateEngine; import de.intevation.artifactdatabase.transition.TransitionEngine; import de.intevation.artifacts.common.utils.XMLUtils; +import de.intevation.flys.artifacts.states.DefaultState; import de.intevation.flys.artifacts.context.FLYSContext; -import de.intevation.flys.artifacts.resources.Resources; /** @@ -100,7 +97,7 @@ Element staticUI = ProtocolUtils.createArtNode( creator, "static", null, null); - appendStaticUI(creator, staticUI, context); + appendStaticUI(description, staticUI, context, identifier()); Element dynamic = current.describe( description, @@ -130,39 +127,29 @@ * This method appends the static data - that has already been inserted by * the user - to the static node of the DESCRIBE document. * - * @param cr The ElementCreator that is used to create new elements. - * @param ui The static ui node. + * @param doc The document. + * @param ui The root node. + * @param context The CallContext. + * @param uuid The identifier of the artifact. */ protected void appendStaticUI( - XMLUtils.ElementCreator cr, - Node ui, - CallContext context) + Document doc, + Node ui, + CallContext context, + String uuid) { - Set<String> keys = data.keySet(); + Vector<String> stateIds = getPreviousStateIds(); - // XXX This just handles single selection string values. If we need more - // complex (maybe multiselect) objects we should introduce a data - // structure for this - this structure should have a method that returns - // a <data> node that contains its items. - for (String k: keys) { - logger.debug("The key = " + k); - StateData d = getData(k); - String name = Resources.getMsg( - context.getMeta(), - d.getName(), - d.getName()); + FLYSContext flysContext = getFlysContext(context); + StateEngine engine = (StateEngine) flysContext.get( + FLYSContext.STATE_ENGINE_KEY); - Element dataElement = cr.create("data"); - cr.addAttr(dataElement, "name", name, true); - cr.addAttr(dataElement, "type", d.getType(), true); + for (String stateId: stateIds) { + logger.debug("Append static data for state: " + stateId); + DefaultState state = (DefaultState) engine.getState(stateId); + ui.appendChild(state.describeStatic(doc, ui, context, uuid)); + } - Element itemElement = cr.create("item"); - cr.addAttr(itemElement, "value", (String) d.getValue(), true); - // TODO Description (human readable) is missing - - dataElement.appendChild(itemElement); - ui.appendChild(dataElement); - } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :