view artifacts/src/main/java/org/dive4elements/river/artifacts/states/fixation/FunctionSelect.java @ 9274:1c8eeaf6031f

bundu.wst workflow
author gernotbelger
date Thu, 19 Jul 2018 17:33:24 +0200
parents af13ceeba52a
children
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 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.fixation;

import java.util.Collection;

import org.dive4elements.artifactdatabase.data.StateData;
import org.dive4elements.artifacts.Artifact;
import org.dive4elements.artifacts.CallContext;
import org.dive4elements.artifacts.common.utils.XMLUtils;
import org.dive4elements.river.artifacts.bundu.BUNDUArtifact;
import org.dive4elements.river.artifacts.math.fitting.Function;
import org.dive4elements.river.artifacts.math.fitting.FunctionFactory;
import org.dive4elements.river.artifacts.states.DefaultState;
import org.dive4elements.river.artifacts.uinfo.salix.ScenarioTypeState;
import org.w3c.dom.Element;

/**
 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
 */
public class FunctionSelect extends DefaultState {

    /**
     * The default constructor that initializes an empty State object.
     */
    public FunctionSelect() {
    }

    @Override
    public String getUIProvider() {
        return "fix.functionselect";
    }

    @Override
    protected Element[] createItems(final XMLUtils.ElementCreator ec, final Artifact artifact, final String name, final CallContext context) {
        final FunctionFactory ff = FunctionFactory.getInstance();
        final Collection<Function> fc = ff.getFunctions();
        final Element[] functions = new Element[fc.size()];

        int j = 0;
        for (final Function f : fc) {
            final String n = f.getName();
            final String d = f.getDescription();
            functions[j] = createItem(ec, new String[] { d, n });
            j++;
        }

        return functions;
    }

    @Override
    protected Element createData(final XMLUtils.ElementCreator cr, final Artifact artifact, final StateData data, final CallContext context) {
        if (artifact instanceof BUNDUArtifact) {
            if (((BUNDUArtifact) artifact).getCurrentStateId().equals("state.bundu.wst.load.function")) {
                return ScenarioTypeState.changeHeaderForCurrentState("state.bundu.wst.function", data.getName(), cr, context);
            }

        }
        return super.createData(cr, artifact, data, context);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org