view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java @ 2089:0da8874bd378

Added initial state to map artifact to be able to advance and step back. The map artifact overrides describe() to have the complete UI information in the describe response document. flys-artifacts/trunk@3613 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 06 Jan 2012 12:02:10 +0000
parents e0243627ba62
children 024d986b4f5b
line wrap: on
line source
package de.intevation.flys.artifacts.states;

import java.util.List;

import org.apache.log4j.Logger;

import de.intevation.artifacts.CallContext;

import de.intevation.artifactdatabase.state.Facet;

import de.intevation.flys.artifacts.FLYSArtifact;
import de.intevation.flys.artifacts.WINFOArtifact;

import de.intevation.flys.artifacts.model.DurationCurveFacet;
import de.intevation.flys.artifacts.model.FacetTypes;
import de.intevation.flys.artifacts.model.WQDay;

import de.intevation.flys.artifacts.model.DataFacet;
import de.intevation.flys.artifacts.model.ReportFacet;
import de.intevation.flys.artifacts.model.CalculationResult;

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

import de.intevation.flys.utils.FLYSUtils;


/**
 * The final state that will be reached after the duration curve calculation
 * mode has been chosen.
 *
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class DurationCurveState
extends      DefaultState
implements   FacetTypes
{
    /** The logger that is used in this state. */
    private static Logger logger = Logger.getLogger(DurationCurveState.class);

    public DurationCurveState() {
    }


    @Override
    public Object computeAdvance(
        FLYSArtifact artifact,
        String       hash,
        CallContext  context,
        List<Facet>  facets,
        Object       old
    ) {
        WINFOArtifact winfo = (WINFOArtifact)artifact;

        CalculationResult res;

        if (old instanceof CalculationResult) {
            res = (CalculationResult)old;
        }
        else {
            res = winfo.getDurationCurveData();
        }

        WQDay wqday = (WQDay)res.getData();

        if (wqday != null && facets != null) {
            Object[] args = new Object[] {
                FLYSUtils.getRiver(winfo).getName()
            };

            String nameW = Resources.getMsg(
                context.getMeta(),
                "chart.duration.curve.curve.w",
                "",
                args);

            String nameQ = Resources.getMsg(
                context.getMeta(),
                "chart.duration.curve.curve.q",
                "",
                args);

            Facet w = new DurationCurveFacet(DURATION_W, nameW);
            Facet q = new DurationCurveFacet(DURATION_Q, nameQ);

            facets.add(w);
            facets.add(q);

            facets.add(new DataFacet(CSV, "CSV data"));

            if (res.getReport().hasProblems()) {
                facets.add(new ReportFacet());
            }
        }

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

http://dive4elements.wald.intevation.org