view flys-artifacts/src/main/java/de/intevation/flys/artifacts/ManualPointsArtifact.java @ 2203:1db66b88868f

Fixed a bug in the winfo transitions. flys-artifacts/trunk@3823 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 30 Jan 2012 10:54:38 +0000
parents 9317863e867b
children e2124ca11adb
line wrap: on
line source
package de.intevation.flys.artifacts;

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

import org.w3c.dom.Document;

import de.intevation.artifactdatabase.state.Facet;

import de.intevation.artifacts.Artifact;
import de.intevation.artifacts.ArtifactFactory;
import de.intevation.artifacts.CallMeta;

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

import de.intevation.flys.artifacts.states.DefaultState;



/**
 * Artifact to store user-added points.
 */
public class ManualPointsArtifact
extends      StaticFLYSArtifact
implements   FacetTypes
{
    /** The logger for this class. */
    private static Logger logger = Logger.getLogger(ManualPointsArtifact.class);

    /** The name of the artifact. */
    public static final String ARTIFACT_NAME = "manualpoints";

    /** Name of data item where points are stored (jsonized). */
    public static final String POINT_DATA = "manualpoints.data";

    /**
     * Trivial Constructor.
     */
    public ManualPointsArtifact() {
        logger.debug("ManualPointsArtifact.ManualPointsartifact()");
    }


    /**
     * Gets called from factory, to set things up.
     */
    @Override
    public void setup(
        String          identifier,
        ArtifactFactory factory,
        Object          context,
        CallMeta        callMeta,
        Document        data)
    {
        logger.debug("ManualPointsArtifact.setup");
        super.setup(identifier, factory, context, callMeta, data);
        initialize(null, context, callMeta);
    }


    /** Return the name of this artifact. */
    public String getName() {
        return ARTIFACT_NAME;
    }


    /** Access state data storing the jsonstring with points. */
    public String getPointsData() {
        // TODO probably revive and deliver NamedDoubles.
        return getDataAsString(POINT_DATA);
    }


    /** Setup state and facet. */
    @Override
    protected void initialize(Artifact artifact, Object context, CallMeta meta) {
        logger.debug("ManualPointsArtifact.initialize");
        List<Facet> fs = new ArrayList<Facet>();
        addStringData(POINT_DATA, "[]");

        DefaultState state = (DefaultState) getCurrentState(context);
        state.computeInit(this, hash(), context, meta, fs);
        if (!fs.isEmpty()) { 
            logger.debug("Facets to add in ManualPointsArtifact.initialize ."); 
            facets.put(getCurrentStateId(), fs); 
        } 
        else { 
            logger.debug("No facets to add in ManualPointsArtifact.initialize ("
                + state.getID() + ").");
        }
    }


    /**
     * Determines Facets initial disposition regarding activity (think of
     * selection in Client ThemeList GUI). This will be checked one time
     * when the facet enters a collections describe document.
     *
     * @param facetName name of the facet.
     * @param index     index of the facet.
     * @return 0 if not active
     */
    @Override
    public int getInitialFacetActivity(
        String outputName,
        String facetName,
        int index)
    {
        return 1;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org