view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.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 e8fc770d2f8c
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.FacetTypes;
import de.intevation.flys.artifacts.model.WaterlevelFacet;
import de.intevation.flys.artifacts.model.DataFacet;
import de.intevation.flys.artifacts.model.ReportFacet;
import de.intevation.flys.artifacts.model.WQKms;
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 discharge curve calculation
 * mode has been chosen.
 *
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class ComputedDischargeCurveState
extends      DefaultState
implements   FacetTypes
{
    /** The logger that is used in this state.*/
    private static Logger logger =
        Logger.getLogger(ComputedDischargeCurveState.class);

    public ComputedDischargeCurveState() {
    }


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

        CalculationResult res = old instanceof CalculationResult
            ? (CalculationResult)old
            : winfo.getComputedDischargeCurveData();

        WQKms [] wqkms = (WQKms [])res.getData();

        if (facets != null && wqkms.length > 0) {
            for (int i = 0; i < wqkms.length; ++i) {

                Object[] args = new Object[] {
                    FLYSUtils.getRiver(winfo).getName(),
                    wqkms[i].getName()
                };

                String name = Resources.getMsg(
                    context.getMeta(),
                    "chart.computed.discharge.curve.curve.label",
                    "",
                    args);

                facets.add(new WaterlevelFacet(i, COMPUTED_DISCHARGE_Q, name));
                facets.add(new WaterlevelFacet(i, AT, "AT data"));
            }

            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