view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DistanceOnlySelect.java @ 1630:cafd8af6734a

Improved bounds validation for distance only states. flys-artifacts/trunk@2806 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 22 Sep 2011 07:58:24 +0000
parents c45e8d6b99a2
children 1358d0c8481c
line wrap: on
line source
package de.intevation.flys.artifacts.states;

import org.apache.log4j.Logger;

import de.intevation.artifacts.Artifact;

import de.intevation.artifactdatabase.data.StateData;

import de.intevation.flys.artifacts.FLYSArtifact;


public class DistanceOnlySelect extends DistanceSelect {

    private static Logger logger = Logger.getLogger(DistanceOnlySelect.class);

    @Override
    protected String getUIProvider() {
        return "distance_only_panel";
    }


    @Override
    public boolean validate(Artifact artifact)
    throws IllegalArgumentException
    {
        FLYSArtifact flys = (FLYSArtifact) artifact;

        StateData dFrom = getData(flys, getLowerField());
        StateData dTo   = getData(flys, getUpperField());

        String fromStr = dFrom != null ? (String) dFrom.getValue() : null;
        String toStr   = dTo   != null ? (String) dTo.getValue()   : null;

        if (fromStr == null || toStr == null) {
            throw new IllegalArgumentException("error_empty_state");
        }

        try {
            double from = Double.parseDouble(fromStr);
            double to   = Double.parseDouble(toStr);

            double[] minmax = getMinMax(flys);

            return validateBounds(minmax[0], minmax[1], from, to);
        }
        catch (NumberFormatException nfe) {
            throw new IllegalArgumentException("error_invalid_double_value");
        }
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org