view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/ValidationBehaviourSingleMultiInputItem.java @ 9559:ba0561906f81

Uinfo inundation duration workflow (vegetation zones, scenario), wms-config changed
author gernotbelger
date Wed, 24 Oct 2018 18:40:38 +0200
parents 787fc085459b
children
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
 * Software engineering by
 *  Björnsen Beratende Ingenieure GmbH
 *  Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
 *
 * 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.client.client.ui.uinfo;

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

import org.dive4elements.river.client.client.FLYSConstants;
import org.dive4elements.river.client.client.ui.AbstractSingleItemPanel.IMultiSingleBehaviour;

/**
 * @author Domenico Nardi Tironi
 *
 */
public abstract class ValidationBehaviourSingleMultiInputItem implements IMultiSingleBehaviour {

    private List<String> validInputs = null;
    protected String errorForItemMsg = null;
    protected final FLYSConstants MSG;
    private final String appendStringForCreateOld;

    public ValidationBehaviourSingleMultiInputItem(final List<String> validInputs, final String errorForItemMsg, final FLYSConstants MSG) {
        this.validInputs = validInputs;
        this.errorForItemMsg = errorForItemMsg;
        this.MSG = MSG; // etwas unglücklich...
        this.appendStringForCreateOld = "";
    }

    public ValidationBehaviourSingleMultiInputItem(final String appendStringForCreateOld, final FLYSConstants MSG) {
        this.appendStringForCreateOld = appendStringForCreateOld;
        this.MSG = MSG;
    }

    protected final List<String> validateSingleInput(final String sValue) {
        final List<String> errors = new ArrayList<String>();
        // String filtered = "";
        // int goodValues = 0;
        errors.addAll(validateNumber(sValue));
        boolean isGood = false;
        for (final String validYear : this.getValidInputs()) {
            /* No list contains for strings? */
            if (sValue.equals(validYear)) {
                isGood = true;
                break;
            }
        }
        if (!isGood) {
            String tmp = this.errorForItemMsg;
            tmp = tmp.replace("$1", sValue);
            errors.add(tmp);
        }

        return errors;
    }

    protected final List<String> validateNumber(final String sValue) {
        final List<String> errors = new ArrayList<String>();

        try {
            Integer.parseInt(sValue);
        }
        catch (final NumberFormatException e) {

            errors.add(this.MSG.wrongFormat() + ": " + sValue);

        }
        return errors;
    }

    @Override
    public final void setErrorForItemMsg(final String errorForItemMsg) {
        this.errorForItemMsg = errorForItemMsg;

    }

    @Override
    public final void setValidInputs(final List<String> validInputs) {
        this.validInputs = validInputs;

    }

    protected final List<String> getValidInputs() {
        return this.validInputs;
    }

    @Override
    public String appendStringForCreateOld() {
        return this.appendStringForCreateOld;
    }

}

http://dive4elements.wald.intevation.org