view flys-artifacts/src/main/java/de/intevation/flys/artifacts/QSectorArtifact.java @ 4215:c179cd02177d

Logout the current user Add code to the logout button to remove the current user from the session and to redirect the browser window to the login page. Part of flys/issue916 (Logout: "Abmelden" Knopf mit Funktion belegen)
author Björn Ricks <bjoern.ricks@intevation.de>
date Tue, 23 Oct 2012 09:59:16 +0200
parents a66df8e8d3df
children a2735a4bf75e
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.artifacts.CallContext;

import de.intevation.flys.artifacts.model.GaugeFinder;
import de.intevation.flys.artifacts.model.GaugeFinderFactory;
import de.intevation.flys.artifacts.model.GaugeRange;
import de.intevation.flys.artifacts.model.NamedDouble;

import de.intevation.flys.artifacts.services.FixingsKMChartService;

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

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


/**
 * Artifact to produce sector markers.
 */
public class QSectorArtifact
extends      StaticFLYSArtifact
{
    /** The logger for this class. */
    private static Logger logger = Logger.getLogger(QSectorArtifact.class);

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


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


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


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


    /** Get list of NamedDouble s (QSectors). */
    public Object getQSectors(double km, CallContext context) {

        String river = getDataAsString("river");
        List<NamedDouble> qsectors = new ArrayList<NamedDouble>();

        GaugeFinderFactory ggf = GaugeFinderFactory.getInstance();
        GaugeFinder        gf  = ggf.getGaugeFinder(river);

        if (gf == null) {
            logger.warn("No gauge finder found for river '" + river + "'");
            return null;
        }

        GaugeRange gr = gf.find(km);
        if (gr == null) {
            logger.debug("No gauge range found for km "
                + km + " on river " + river + ".");
            return null;
        }

        if (logger.isDebugEnabled()) {
            logger.debug(gr);
        }

        for (int i = 0; i < FixingsKMChartService.I18N_Q_SECTOR_BOARDERS.length; ++i) {
            String key   = FixingsKMChartService.I18N_Q_SECTOR_BOARDERS[i];
            String def   = FixingsKMChartService.DEFAULT_Q_SECTOR_BORDERS[i];
            String label = Resources.getMsg(context.getMeta(), key, def);

            qsectors.add(new NamedDouble(label, gr.getSectorBorder(i)));
        }

        return qsectors;
    }


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

        FLYSArtifact flys = (FLYSArtifact) artifact;
        importData(flys, "river");

        DefaultState state = (DefaultState) getCurrentState(context);
        state.computeInit(this, hash(), context, meta, fs);
        if (!fs.isEmpty()) {
            logger.debug("Facets to add in QSectorArtifact.initialize .");
            facets.put(getCurrentStateId(), fs);
        }
        else {
            logger.debug("No facets to add in QSectorArtifact.initialize ("
                + state.getID() + ").");
        }
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org