view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/EnterMultipleLocationsState.java @ 4174:eaf83d4ae6b1

Sorted gauges for reference gauge selection in historical discharge calculation based on their name. Now, Gauge implements the Java Comparable interface and takes its name into account.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 18 Oct 2012 13:12:24 +0200
parents 8e66293c5369
children
line wrap: on
line source
package de.intevation.flys.artifacts.states;

import org.apache.log4j.Logger;
import org.w3c.dom.Element;

import de.intevation.artifacts.Artifact;
import de.intevation.artifacts.CallContext;
import de.intevation.artifacts.common.utils.StringUtils;
import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
import de.intevation.flys.artifacts.WINFOArtifact;


/**
 * Get me doubles (km).
 */
public class EnterMultipleLocationsState extends EnterLocationState {
    /** The logger for this class. */
    private static Logger logger = Logger.getLogger(EnterMultipleLocationsState.class);

    @Override
    protected String getUIProvider() {
        logger.debug("multi location panel");
        return "multi_location_panel";
    }


    /** Deal with multiple double values. */
    @Override
    protected String getLabelFor(
        CallContext cc,
        String      name,
        String      value,
        String      type
    ) {
        String[] vals = value.split(" ");
        for (int i = 0; i < vals.length; i++) {
            vals[i] = super.getLabelFor(cc, name, vals[i], type);
        }

        return StringUtils.join(" ", vals);
    }

    /**
     * This method creates a list of items. These items represent the amount of
     * input data that is possible for this state.
     *
     * @param cr The ElementCreator.
     * @param name The name of the amount of data.
     *
     * @return a list of items.
     */
    @Override
    protected Element[] createItems(
        ElementCreator cr,
        Artifact    artifact,
        String      name,
        CallContext context
    ) {
        if (name.equals("reference_endpoint")) {
            Element[] elements = new Element[1];
            WINFOArtifact winfo = (WINFOArtifact) artifact;
            Double km = winfo.getReferenceStartKm();
            elements[0] = createItem(
                cr,
                new String[] {"start_km", km.toString()});
            return elements;
        }
        return null;
    }

}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org