Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVDefaultArtifact.java @ 1119:7c4f81f74c47
merged gnv-artifacts
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 12:14:00 +0200 |
parents | dec4257ad570 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVDefaultArtifact.java Fri Sep 28 12:14:00 2012 +0200 @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2010 by Intevation GmbH + * + * This program is free software under the LGPL (>=v2.1) + * Read the file LGPL.txt coming with the software for details + * or visit http://www.gnu.org/licenses/ if it does not exist. + */ + +package de.intevation.gnv.artifacts; + +import de.intevation.artifactdatabase.DefaultArtifact; +import de.intevation.artifacts.common.utils.XMLUtils; + +import de.intevation.artifacts.ArtifactNamespaceContext; +import de.intevation.artifacts.CallContext; +import de.intevation.artifacts.CallMeta; + +import de.intevation.gnv.artifacts.ressource.RessourceFactory; + +import org.apache.log4j.Logger; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * The default gnv artifact. The only thing defined here is a method to append + * the selected fis to the describe document. + * + * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> + */ +public class GNVDefaultArtifact extends DefaultArtifact { + + private static Logger logger = Logger.getLogger(GNVDefaultArtifact.class); + + /** + * + */ + public static final String EXCEPTION_NO_INPUT = "no.input.data"; + + + /** + * Constructor. + */ + public GNVDefaultArtifact() { + super(); + } + + + /** + * Append the selected fis to the describe document. + * + * @param document + * @param staticNode + * @param context + * @param fisName + */ + protected void appendFis( + Document document, + Element staticNode, + CallContext context, + String fisName + ) { + RessourceFactory resource = RessourceFactory.getInstance(); + CallMeta callMeta = (CallMeta) context.getMeta(); + + XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( + document, + XMLUtils.XFORM_URL, + XMLUtils.XFORM_PREFIX + ); + + XMLUtils.ElementCreator artCreator = new XMLUtils.ElementCreator( + document, + ArtifactNamespaceContext.NAMESPACE_URI, + ArtifactNamespaceContext.NAMESPACE_PREFIX + ); + + Element selectNode = creator.create("select1"); + artCreator.addAttr(selectNode, "fis", "true", true); + + Element labelNode = creator.create("label"); + labelNode.setTextContent( + resource.getRessource(callMeta.getLanguages(), "fis", "fis") + ); + + Element choicesNode = creator.create("choices"); + + Element itemNode = creator.create("item"); + creator.addAttr(itemNode, "selected", "true"); + + Element choiceLabel = creator.create("label"); + choiceLabel.setTextContent(resource.getRessource( + callMeta.getLanguages(), + fisName, + fisName + )); + + Element choiceValue = creator.create("value"); + choiceValue.setTextContent(fisName); + + itemNode.appendChild(choiceLabel); + itemNode.appendChild(choiceValue); + choicesNode.appendChild(itemNode); + + selectNode.appendChild(labelNode); + selectNode.appendChild(choicesNode); + + staticNode.appendChild(selectNode); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :