Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/client/ui/AutoIntegerPanel.java @ 791:9b1499a65aaa
Finished the panel that allows integers and the string 'auto'.
flys-client/trunk@2298 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 07 Jul 2011 10:33:29 +0000 |
parents | 3fa8583434b2 |
children | 40269a176cd2 |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/AutoIntegerPanel.java Wed Jul 06 15:34:38 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/AutoIntegerPanel.java Thu Jul 07 10:33:29 2011 +0000 @@ -4,12 +4,11 @@ import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; +import com.smartgwt.client.widgets.form.validator.Validator; +import com.smartgwt.client.widgets.form.validator.CustomValidator; import com.smartgwt.client.widgets.layout.VLayout; import de.intevation.flys.client.shared.model.Data; -import de.intevation.flys.client.shared.model.DataItem; -import de.intevation.flys.client.shared.model.DefaultData; -import de.intevation.flys.client.shared.model.DefaultDataItem; import de.intevation.flys.client.shared.model.DataList; import de.intevation.flys.client.client.FLYSConstants; @@ -20,6 +19,9 @@ */ public class AutoIntegerPanel extends TextProvider { + public static final String FIELD_NAME = "integer_field"; + + protected static FLYSConstants MSG = GWT.create(FLYSConstants.class); protected String dataName; @@ -31,7 +33,7 @@ this.dataName = data.getLabel(); Canvas label = new Label(data.getDescription()); - Canvas form = createForm(MSG.uesk_profile_distance()); + Canvas form = createForm(getTitle()); Canvas submit = getNextButton(); VLayout layout = new VLayout(); @@ -47,13 +49,55 @@ } + protected String getTitle() { + return MSG.uesk_profile_distance(); + } + + @Override - protected Data[] getData() { - GWT.log("+++ RETURN DATA FOR STATE: " + dataName + " +++"); - String value = "TODO:FIND VALUE"; - DataItem item = new DefaultDataItem(dataName, dataName, value); - return new Data[] { new DefaultData( - dataName, null, null, new DataItem[] { item }) }; + protected String getDataName() { + return dataName; + } + + + @Override + protected String getValueAsString() { + String v = (String) form.getValue(getFieldName()); + return v.toLowerCase(); + } + + + @Override + protected Validator getValidator() { + Validator v = new AutoIntegerValidator(); + v.setValidateOnChange(false); + + return v; + } + + + public class AutoIntegerValidator extends CustomValidator { + @Override + protected boolean condition(Object value) { + String v = (String) value; + + if (v == null || v.length() == 0) { + return false; + } + + if (v.trim().equalsIgnoreCase("auto")) { + return true; + } + + try { + Integer anInt = Integer.parseInt(v); + + return true; + } + catch (NumberFormatException nfe) { + return false; + } + } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :