Mercurial > dive4elements > river
diff flys-client/src/main/java/org/dive4elements/river/client/client/ui/IntegerRangePanel.java @ 5834:f507086aa94b
Repaired internal references.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:31:32 +0200 |
parents | flys-client/src/main/java/de/intevation/flys/client/client/ui/IntegerRangePanel.java@360e22afb98b |
children | 821a02bbfb4e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/org/dive4elements/river/client/client/ui/IntegerRangePanel.java Thu Apr 25 12:31:32 2013 +0200 @@ -0,0 +1,160 @@ +package de.intevation.flys.client.client.ui; + +import com.smartgwt.client.widgets.form.fields.FormItem; +import com.smartgwt.client.widgets.form.fields.IntegerItem; +import com.smartgwt.client.widgets.form.validator.IntegerRangeValidator; +import com.smartgwt.client.widgets.form.validator.Validator; + +import de.intevation.flys.client.shared.model.Data; +import de.intevation.flys.client.shared.model.DataList; +import de.intevation.flys.client.shared.model.IntegerRangeData; + + +public class IntegerRangePanel extends RangePanel { + + private static final long serialVersionUID = -7471199535764887461L; + + protected Integer maxLower; + protected Integer maxUpper; + + + @Override + protected Data[] getData() { + Integer lo = getLowerAsInt(); + Integer up = getUpperAsInt(); + + return new Data[] { new IntegerRangeData(getDataName(), null, lo, up) }; + } + + + @Override + protected FormItem newFormItem(String name) { + IntegerItem item = new IntegerItem(name, ""); + item.setShowTitle(false); + + return item; + } + + + @Override + protected Validator[] createLowerValidators(DataList dataList) { + setMaxLower(dataList); + setMaxUpper(dataList); + + Validator validator = newRangeValidator(); + + if (validator != null) { + return new Validator[] { validator }; + } + + return null; + } + + + @Override + protected Validator[] createUpperValidators(DataList dataList) { + setMaxLower(dataList); + setMaxUpper(dataList); + + Validator validator = newRangeValidator(); + + if (validator != null) { + return new Validator[] { validator }; + } + + return null; + } + + + @Override + public Object getMaxLower() { + return maxLower; + } + + + @Override + public Object getMaxUpper() { + return maxUpper; + } + + + public Integer getLowerAsInt() { + String raw = getLower(); + + if (raw != null && raw.length() > 0) { + try { + return Integer.valueOf(raw); + } + catch (NumberFormatException nfe) { + // do nothing + } + } + + return null; + } + + + public Integer getUpperAsInt() { + String raw = getUpper(); + + if (raw != null && raw.length() > 0) { + try { + return Integer.valueOf(raw); + } + catch (NumberFormatException nfe) { + // do nothing + } + } + + return null; + } + + + protected Validator newRangeValidator() { + Integer maxLower = getMaxLowerAsInt(); + Integer maxUpper = getMaxUpperAsInt(); + + if (maxLower != null && maxUpper != null) { + IntegerRangeValidator validator = new IntegerRangeValidator(); + validator.setMax(maxUpper); + validator.setMin(maxLower); + + return validator; + } + + return null; + } + + + public Integer getMaxLowerAsInt() { + return maxLower; + } + + + protected void setMaxLower(DataList dataList) { + IntegerRangeData range = (IntegerRangeData) dataList.get(0); + setMaxLower((Integer) range.getLower()); + } + + + public void setMaxLower(Integer maxLower) { + this.maxLower = maxLower; + } + + + public Integer getMaxUpperAsInt() { + return maxUpper; + } + + + protected void setMaxUpper(DataList dataList) { + IntegerRangeData range = (IntegerRangeData) dataList.get(0); + setMaxUpper((Integer) range.getUpper()); + } + + + public void setMaxUpper(Integer maxUpper) { + this.maxUpper = maxUpper; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :