Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java @ 126:b18aebd1342f
Added an abstract base class DefaultState for States.
flys-artifacts/trunk@1466 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 14 Mar 2011 15:43:12 +0000 |
parents | 47a4bc7a9ddf |
children | 8be4a837f20a |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java Mon Mar 14 14:16:37 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java Mon Mar 14 15:43:12 2011 +0000 @@ -1,32 +1,28 @@ package de.intevation.flys.artifacts.states; -import java.util.Collection; import java.util.List; -import java.util.Map; import org.apache.log4j.Logger; -import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import de.intevation.artifacts.CallContext; -import de.intevation.artifacts.ArtifactNamespaceContext; import de.intevation.artifacts.common.utils.XMLUtils; import de.intevation.artifactdatabase.ProtocolUtils; import de.intevation.artifactdatabase.data.StateData; -import de.intevation.artifactdatabase.state.AbstractState; import de.intevation.flys.artifacts.model.River; import de.intevation.flys.artifacts.model.RiverFactory; +import de.intevation.flys.artifacts.resources.Resources; /** * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ -public class RiverSelect extends AbstractState { +public class RiverSelect extends DefaultState { /** The logger used in this class. */ private static Logger logger = Logger.getLogger(RiverSelect.class); @@ -35,7 +31,6 @@ * The default constructor that initializes an empty State object. */ public RiverSelect() { - super(null, null); } @@ -49,76 +44,46 @@ } - /** - * This method creates the UI part of the artifact's describe document. The - * ui part consists of a static - representing previous inserted data - and - * a dynamic part - representing data that is necessary to be inserted in - * the current state. - * - * @param document The describe document. - * @param root The root node of the describe document. - * @param context The CallContext. - * @param uuid The uuid of the artifact. - */ - public void describe( - Document document, - Node root, - CallContext context, - String uuid) + protected Element createData( + XMLUtils.ElementCreator cr, + StateData data, + CallContext context) { - XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( - document, - ArtifactNamespaceContext.NAMESPACE_URI, - ArtifactNamespaceContext.NAMESPACE_PREFIX); - - Element ui = ProtocolUtils.createArtNode( - creator, "ui", null, null); - - Element staticUI = ProtocolUtils.createArtNode( - creator, "static", null, null); - - // TODO Add the static data - logger.error("TODO: ADD STATIC DATA TO DESCRIBE DOCUMENT."); + Element select = ProtocolUtils.createArtNode( + cr, "select", + new String[] { "uiprovider" }, + new String[] { "select_with_map" }); + cr.addAttr(select, "name", data.getName()); - Element dynamicUI = ProtocolUtils.createArtNode( - creator, "dynamic", null, null); - - Map<String, StateData> data = getData(); - - if (data != null) { - Collection<StateData> items = data.values(); - - for (StateData item: items) { - Element select = ProtocolUtils.createArtNode( - creator, "select", - new String[] { "uiprovider" }, - new String[] { "select_with_map" }); + Element label = ProtocolUtils.createArtNode( + cr, "label", null, null); - Element label = ProtocolUtils.createArtNode( - creator, "label", null, null); - - Element choices = ProtocolUtils.createArtNode( - creator, "choices", null, null); - - label.setTextContent("River"); + Element choices = ProtocolUtils.createArtNode( + cr, "choices", null, null); - select.appendChild(label); - select.appendChild(choices); - - List<River> rivers = RiverFactory.getRivers(); + label.setTextContent(Resources.getMsg( + context.getMeta(), + getID(), + getID())); - for (River river: rivers) { - choices.appendChild(createRiverItem(creator, river)); - } + return select; + } - dynamicUI.appendChild(select); - } + + protected Element[] createItems( + XMLUtils.ElementCreator cr, + String name, + CallContext context) + { + List<River> rivers = RiverFactory.getRivers(); + Element[] items = new Element[rivers.size()]; + + int idx = 0; + for (River river: rivers) { + items[idx++] = createRiverItem(cr, river); } - ui.appendChild(staticUI); - ui.appendChild(dynamicUI); - - root.appendChild(ui); + return items; }