teichmann@5861: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5861: * Software engineering by Intevation GmbH teichmann@5861: * teichmann@5861: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5861: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5861: * documentation coming with Dive4Elements River for details. teichmann@5861: */ teichmann@5861: teichmann@5835: package org.dive4elements.river.client.client.ui; ingo@1523: ingo@1523: import com.smartgwt.client.widgets.form.fields.FormItem; ingo@1523: import com.smartgwt.client.widgets.form.fields.IntegerItem; ingo@1523: import com.smartgwt.client.widgets.form.validator.IntegerRangeValidator; ingo@1523: import com.smartgwt.client.widgets.form.validator.Validator; ingo@1523: teichmann@5835: import org.dive4elements.river.client.shared.model.Data; teichmann@5835: import org.dive4elements.river.client.shared.model.DataList; teichmann@5835: import org.dive4elements.river.client.shared.model.IntegerRangeData; ingo@1523: ingo@1523: ingo@1523: public class IntegerRangePanel extends RangePanel { ingo@1523: christian@4131: private static final long serialVersionUID = -7471199535764887461L; christian@4131: ingo@1523: protected Integer maxLower; ingo@1523: protected Integer maxUpper; ingo@1523: ingo@1523: ingo@1523: @Override ingo@1524: protected Data[] getData() { ingo@1524: Integer lo = getLowerAsInt(); ingo@1524: Integer up = getUpperAsInt(); ingo@1524: ingo@1524: return new Data[] { new IntegerRangeData(getDataName(), null, lo, up) }; ingo@1524: } ingo@1524: ingo@1524: ingo@1524: @Override ingo@1523: protected FormItem newFormItem(String name) { ingo@1523: IntegerItem item = new IntegerItem(name, ""); ingo@1523: item.setShowTitle(false); ingo@1523: ingo@1523: return item; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: @Override ingo@1523: protected Validator[] createLowerValidators(DataList dataList) { ingo@1524: setMaxLower(dataList); ingo@1524: setMaxUpper(dataList); ingo@1524: ingo@1523: Validator validator = newRangeValidator(); ingo@1523: ingo@1523: if (validator != null) { ingo@1523: return new Validator[] { validator }; ingo@1523: } ingo@1523: ingo@1523: return null; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: @Override ingo@1523: protected Validator[] createUpperValidators(DataList dataList) { ingo@1524: setMaxLower(dataList); ingo@1524: setMaxUpper(dataList); ingo@1524: ingo@1523: Validator validator = newRangeValidator(); ingo@1523: ingo@1523: if (validator != null) { ingo@1523: return new Validator[] { validator }; ingo@1523: } ingo@1523: ingo@1523: return null; ingo@1523: } ingo@1523: ingo@1523: ingo@1606: @Override ingo@1606: public Object getMaxLower() { ingo@1606: return maxLower; ingo@1606: } ingo@1606: ingo@1606: ingo@1606: @Override ingo@1606: public Object getMaxUpper() { ingo@1606: return maxUpper; ingo@1606: } ingo@1606: ingo@1606: ingo@1524: public Integer getLowerAsInt() { ingo@1524: String raw = getLower(); ingo@1524: ingo@1524: if (raw != null && raw.length() > 0) { ingo@1524: try { ingo@1524: return Integer.valueOf(raw); ingo@1524: } ingo@1524: catch (NumberFormatException nfe) { ingo@1524: // do nothing ingo@1524: } ingo@1524: } ingo@1524: ingo@1524: return null; ingo@1524: } ingo@1524: ingo@1524: ingo@1524: public Integer getUpperAsInt() { ingo@1524: String raw = getUpper(); ingo@1524: ingo@1524: if (raw != null && raw.length() > 0) { ingo@1524: try { ingo@1524: return Integer.valueOf(raw); ingo@1524: } ingo@1524: catch (NumberFormatException nfe) { ingo@1524: // do nothing ingo@1524: } ingo@1524: } ingo@1524: ingo@1524: return null; ingo@1524: } ingo@1524: ingo@1524: ingo@1523: protected Validator newRangeValidator() { ingo@1606: Integer maxLower = getMaxLowerAsInt(); ingo@1606: Integer maxUpper = getMaxUpperAsInt(); ingo@1523: ingo@1523: if (maxLower != null && maxUpper != null) { ingo@1523: IntegerRangeValidator validator = new IntegerRangeValidator(); ingo@1523: validator.setMax(maxUpper); ingo@1523: validator.setMin(maxLower); ingo@1523: ingo@1523: return validator; ingo@1523: } ingo@1523: ingo@1523: return null; ingo@1523: } ingo@1523: ingo@1523: ingo@1606: public Integer getMaxLowerAsInt() { ingo@1523: return maxLower; ingo@1523: } ingo@1523: ingo@1523: ingo@1524: protected void setMaxLower(DataList dataList) { ingo@1524: IntegerRangeData range = (IntegerRangeData) dataList.get(0); ingo@1554: setMaxLower((Integer) range.getLower()); ingo@1524: } ingo@1524: ingo@1524: ingo@1523: public void setMaxLower(Integer maxLower) { ingo@1523: this.maxLower = maxLower; ingo@1523: } ingo@1523: ingo@1523: ingo@1606: public Integer getMaxUpperAsInt() { ingo@1523: return maxUpper; ingo@1523: } ingo@1523: ingo@1523: ingo@1524: protected void setMaxUpper(DataList dataList) { ingo@1524: IntegerRangeData range = (IntegerRangeData) dataList.get(0); ingo@1554: setMaxUpper((Integer) range.getUpper()); ingo@1524: } ingo@1524: ingo@1524: ingo@1523: public void setMaxUpper(Integer maxUpper) { ingo@1523: this.maxUpper = maxUpper; ingo@1523: } ingo@1523: } ingo@1523: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :