view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/Limit5SalixBehaviour.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.List;

import org.dive4elements.river.client.client.FLYSConstants;
import org.dive4elements.river.client.client.ui.StringArrayParseHelper;

import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.form.fields.TextItem;

/**
 * @author Domenico Nardi Tironi
 *
 */
public class Limit5SalixBehaviour extends ValidationBehaviourSingleMultiInputItem {

    public Limit5SalixBehaviour(final List<String> validInputs, final String errorForItemMsg, final FLYSConstants MSG) {
        super(validInputs, errorForItemMsg, MSG);
    }

    public Limit5SalixBehaviour(final FLYSConstants msg) {
        super("", msg);
    }

    @Override
    public void appendValue(final TextItem inputItem, final String value) {
        // APPEND = ADD to existing -> MULTI YEAR
        final String oldValues = inputItem.getValueAsString();
        if (oldValues != null && !oldValues.isEmpty()) {
            final String[] oldVals = StringArrayParseHelper.getArrayFromRawString(oldValues);
            if (oldVals.length < 5)
                inputItem.setValue(oldValues.trim() + " " + value);
            else {
                SC.warn(this.MSG.error_limit_exceeded_salix());
            }
        }

        else
            inputItem.setValue(value);

    }

    @Override
    public List<String> validate(final List<String> errors, final String inputValueString) {
        if (inputValueString != null) {
            final String[] values = StringArrayParseHelper.getArrayFromRawString(inputValueString);
            if (values.length > 5) {
                errors.add(this.MSG.error_limit_exceeded_salix());
            }
            for (int i = 0; i < values.length; i++) {
                if (i < 5)
                    errors.addAll(this.validateNumber(values[i]));
            }
        }
        return errors;
    }

    @Override
    public boolean isMultipleInputsAllowed() {
        return true;
    }

    @Override
    public String titleForCreateOld() {
        return null;
    }

}

http://dive4elements.wald.intevation.org