view artifacts/src/main/java/org/dive4elements/river/artifacts/states/BooleanChoiceState.java @ 9277:2323d005f9a5

compile error fix
author gernotbelger
date Fri, 20 Jul 2018 10:39:02 +0200
parents 13650d8a2373
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 :

http://dive4elements.wald.intevation.org