view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/HistoricalDischargeState.java @ 2792:fe987587ebc9

Merged revisions 4539-4540,4543,4545-4546 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk ........ r4539 | teichmann | 2012-05-27 20:02:13 +0200 (So, 27 Mai 2012) | 1 line FixA: Added forgotten csv/report facets/generators to conf. ........ r4540 | teichmann | 2012-05-27 20:11:31 +0200 (So, 27 Mai 2012) | 1 line FixA: Fixed class cast bug in report facet. ........ r4543 | teichmann | 2012-05-28 20:35:01 +0200 (Mo, 28 Mai 2012) | 1 line FixA: Added facet to return delta w/t as CSV ........ r4545 | teichmann | 2012-05-28 22:59:27 +0200 (Mo, 28 Mai 2012) | 1 line FixA: Made Delta W/t calculation finally work ........ r4546 | teichmann | 2012-05-28 23:34:24 +0200 (Mo, 28 Mai 2012) | 1 line FixA: corrected fitting (Q->W instead W->Q). ........ flys-artifacts/tags/2.7@4547 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 29 May 2012 04:58:29 +0000
parents eab357067e06
children 05eeedc5b156
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.ArtifactNamespaceContext;
import de.intevation.artifacts.CallContext;
import de.intevation.artifacts.CallMeta;

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

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


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

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


    public static final String I18N_MODE_W = "historical.mode.w";
    public static final String I18N_MODE_Q = "historical.mode.q";

    public static final String DATA_MODE   = "historical_mode";
    public static final String DATA_VALUES = "historical_values";
    public static final int    DATA_MODE_W = 0;
    public static final int    DATA_MODE_Q = 1;


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

    protected void appendItems(
        Artifact       artifact,
        ElementCreator creator,
        String         name,
        CallContext    context,
        Element        select
    ) {
        if (name != null && name.equals(DATA_VALUES)) {
            select.setAttributeNS(
                ArtifactNamespaceContext.NAMESPACE_URI,
                "art:type",
                "doublearray");
        }
        else if (name != null && name.equals(DATA_MODE)) {
            select.setAttributeNS(
                ArtifactNamespaceContext.NAMESPACE_URI,
                "art:type",
                "intoptions");
        }

        super.appendItems(artifact, creator, name, context, select);
    }


    @Override
    protected Element[] createItems(
        ElementCreator creator,
        Artifact       artifact,
        String         name,
        CallContext    context
    ) {
        logger.debug("createItems()");

        if (name != null && name.equals(DATA_MODE)) {
            return createModeItem(creator, artifact, name, context);
        }
        else if (name != null && name.equals(DATA_VALUES)) {
            return createValuesItem(creator, artifact, name, context);
        }

        logger.warn("Tried to create item for invalid data: " + name);

        return new Element[0];
    }


    @Override
    protected String getLabelFor(
        CallContext cc,
        String      name,
        String      value,
        String      type
    ) {
        CallMeta meta = cc.getMeta();

        if (name.equals(DATA_MODE)) {
            if (value.equals(String.valueOf(DATA_MODE_W))) {
                return Resources.getMsg(meta, I18N_MODE_W, I18N_MODE_W);
            }
            else {
                return Resources.getMsg(meta, I18N_MODE_Q, I18N_MODE_Q);
            }
        }
        else {
            return value;
        }
    }


    protected Element[] createModeItem(
        ElementCreator creator,
        Artifact       artifact,
        String         name,
        CallContext    context
    ) {
        logger.debug("createModeItem()");

        CallMeta meta = context.getMeta();

        Element modeW = createItem(
            creator,
            new String[] {
                Resources.getMsg(meta, I18N_MODE_W, I18N_MODE_W),
                String.valueOf(DATA_MODE_W) } );

        Element modeQ = createItem(
            creator,
            new String[] {
                Resources.getMsg(meta, I18N_MODE_Q, I18N_MODE_Q),
                String.valueOf(DATA_MODE_Q) } );

        return new Element[] { modeW, modeQ };
    }


    protected Element[] createValuesItem(
        ElementCreator creator,
        Artifact       artifact,
        String         name,
        CallContext    context
    ) {
        logger.debug("createValuesItem()");

        Element valuesW = createItem(
            creator, new String[] { "ws", "" } );

        Element valuesQ = createItem(
            creator, new String[] { "qs", "" } );

        return new Element[] { valuesW, valuesQ };
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org