view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodplainChoice.java @ 4573:b87073a05f9d

flys-client: Patch to render combobox options as clickable links. The way of passing data arguments to the links and further to the Artifact feeding service is somewhat hacked and should be refactored (later...).
author Christian Lins <christian.lins@intevation.de>
date Tue, 27 Nov 2012 12:50:10 +0100
parents 2867ae59e216
children
line wrap: on
line source
package de.intevation.flys.artifacts.states;

import org.w3c.dom.Element;

import org.apache.log4j.Logger;

import de.intevation.artifacts.Artifact;
import de.intevation.artifacts.CallContext;
import de.intevation.artifacts.CallMeta;

import de.intevation.artifacts.common.utils.XMLUtils;

import de.intevation.artifactdatabase.ProtocolUtils;

import de.intevation.flys.artifacts.resources.Resources;


/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class FloodplainChoice extends DefaultState {

    public static final String OPTION   = "floodplain.option";
    public static final String ACTIVE   = "floodplain.active";
    public static final String INACTIVE = "floodplain.inactive";

    private static final Logger logger =
        Logger.getLogger(FloodplainChoice.class);


    @Override
    protected String getUIProvider() {
        return "boolean_panel";
    }


    @Override
    protected Element[] createItems(
        XMLUtils.ElementCreator cr,
        Artifact    artifact,
        String      name,
        CallContext context)
    {
        CallMeta meta = context.getMeta();

        Element option = createItem(
            cr,
            new String[] { Resources.getMsg(meta, OPTION, OPTION), "true" });

        return new Element[] { option };
    }


    @Override
    protected String getLabelFor(
        CallContext cc,
        String      name,
        String      value,
        String      type
    ) {
        logger.debug("GET LABEL FOR '" + name + "' / '" + value + "'");
        if (value != null && value.equals("true")) {
            return Resources.getMsg(cc.getMeta(), ACTIVE, ACTIVE);
        }
        else {
            return Resources.getMsg(cc.getMeta(), INACTIVE, INACTIVE);
        }
    }


    protected Element createItem(XMLUtils.ElementCreator cr, Object obj) {
        Element item  = ProtocolUtils.createArtNode(cr, "item", null, null);
        Element label = ProtocolUtils.createArtNode(cr, "label", null, null);
        Element value = ProtocolUtils.createArtNode(cr, "value", null, null);

        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