view artifacts/src/main/java/org/dive4elements/river/artifacts/states/fixation/LocationSelect.java @ 6059:5f52a8079625

Get location limits from fixation overview in fixation location selection Part of issue 1277
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 22 May 2013 13:03:10 +0200
parents af13ceeba52a
children 3516b58296bb
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */

package org.dive4elements.river.artifacts.states.fixation;

import org.apache.log4j.Logger;

import org.dive4elements.artifacts.Artifact;

import org.dive4elements.river.utils.RiverUtils;

import org.dive4elements.river.artifacts.D4EArtifact;
import org.dive4elements.river.artifacts.states.RangeState;
import org.dive4elements.river.artifacts.model.FixingsOverviewFactory;
import org.dive4elements.river.artifacts.model.FixingsOverview;


/**
 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
 */
public class LocationSelect extends RangeState {

    /** The logger used in this class. */
    private static Logger logger = Logger.getLogger(LocationSelect.class);

    private static final String LOWER = "ld_from";

    private static final String UPPER = "ld_to";

    private static final String STEP = "ld_step";


    /**
     * The default constructor that initializes an empty State object.
     */
    public LocationSelect() {
    }

    @Override
    protected String getUIProvider() {
        return "fix.location_panel";
    }

    @Override
    protected double[] getMinMax(Artifact artifact) {
        D4EArtifact flysArtifact = (D4EArtifact) artifact;
        String riverName = flysArtifact.getDataAsString("river");
        FixingsOverview overview = FixingsOverviewFactory.getOverview(riverName);

        return new double[]{overview.getExtent().getStart(), overview.getExtent().getEnd()};
    }


    /** Misuse to set location mode. */
    @Override
    public boolean validate(Artifact artifact)
    throws IllegalArgumentException
    {
        ((D4EArtifact) artifact).addStringData("ld_mode", "distance");
        return super.validate(artifact);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org