Mercurial > dive4elements > river
diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/Limit5SalixBehaviour.java @ 9256:6c24c857ccf9
fixation refactoring and inputItem behaviour to interfaces
author | gernotbelger |
---|---|
date | Fri, 13 Jul 2018 12:04:21 +0200 |
parents | |
children | c7e5285d434f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/Limit5SalixBehaviour.java Fri Jul 13 12:04:21 2018 +0200 @@ -0,0 +1,66 @@ +/** 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 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() { + super(); + } + + @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 = oldValues.split(" "); + 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 = inputValueString.trim().split(" "); + 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; + } + +}