Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/states/BooleanChoiceState.java @ 9391:2da486c7c05f
salix historical sounding workflow changed
author | gernotbelger |
---|---|
date | Thu, 09 Aug 2018 17:25:13 +0200 |
parents | 2323d005f9a5 |
children |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2017 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.states; import org.apache.log4j.Logger; import org.dive4elements.artifactdatabase.ProtocolUtils; import org.dive4elements.artifacts.Artifact; import org.dive4elements.artifacts.CallContext; import org.dive4elements.artifacts.CallMeta; import org.dive4elements.artifacts.common.utils.XMLUtils; import org.dive4elements.river.artifacts.resources.Resources; import org.w3c.dom.Element; /** * Generic state for a boolean choice. Only difference between real implementations are the human readable labels. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> * @author Gernot Belger */ public abstract class BooleanChoiceState extends DefaultState { private final String optionMsg; private final String activeMsg; private final String inactiveMsg; public BooleanChoiceState(final String optionMsg, final String activeMsg, final String inactiveMsg) { this.optionMsg = optionMsg; this.activeMsg = activeMsg; this.inactiveMsg = inactiveMsg; } private static final Logger log = Logger.getLogger(BooleanChoiceState.class); @Override protected String getUIProvider() { return "boolean_panel"; } @Override protected Element[] createItems(final XMLUtils.ElementCreator cr, final Artifact artifact, final String name, final CallContext context) { final CallMeta meta = context.getMeta(); final Element option = createItem(cr, new String[] { Resources.getMsg(meta, this.optionMsg, this.optionMsg), "true" }); return new Element[] { option }; } @Override protected String getLabelFor(final CallContext cc, final String name, final String value, final String type) { log.debug("GET LABEL FOR '" + name + "' / '" + value + "'"); if (value != null && value.equals("true")) { return Resources.getMsg(cc.getMeta(), this.activeMsg, this.activeMsg); } else { return Resources.getMsg(cc.getMeta(), this.inactiveMsg, this.inactiveMsg); } } protected static Element createItem(final XMLUtils.ElementCreator cr, final Object obj) { final Element item = ProtocolUtils.createArtNode(cr, "item", null, null); final Element label = ProtocolUtils.createArtNode(cr, "label", null, null); final Element value = ProtocolUtils.createArtNode(cr, "value", null, null); final String[] arr = (String[]) obj; label.setTextContent(arr[0]); value.setTextContent(arr[1]); item.appendChild(label); item.appendChild(value); return item; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :