ingo@1523: package de.intevation.flys.client.client.ui; ingo@1523: ingo@1523: import java.util.ArrayList; ingo@1523: import java.util.List; ingo@1523: ingo@1523: import com.smartgwt.client.data.DataSource; ingo@1523: import com.smartgwt.client.data.DataSourceField; ingo@1523: import com.smartgwt.client.types.Alignment; ingo@1523: import com.smartgwt.client.types.FieldType; ingo@1523: import com.smartgwt.client.widgets.Canvas; ingo@1523: import com.smartgwt.client.widgets.Label; ingo@1523: import com.smartgwt.client.widgets.form.DynamicForm; ingo@1523: import com.smartgwt.client.widgets.form.fields.FormItem; ingo@1523: import com.smartgwt.client.widgets.form.fields.TextItem; ingo@1523: import com.smartgwt.client.widgets.form.validator.Validator; ingo@1523: import com.smartgwt.client.widgets.layout.HLayout; ingo@1523: import com.smartgwt.client.widgets.layout.VLayout; ingo@1523: ingo@1523: import de.intevation.flys.client.shared.model.DataList; ingo@1523: import de.intevation.flys.client.shared.model.Data; ingo@1523: ingo@1523: ingo@1523: /** ingo@1523: * An UIProvider for inserting ranges. ingo@1523: * ingo@1523: * @author Ingo Weinzierl ingo@1523: */ ingo@1523: public abstract class RangePanel extends AbstractUIProvider { ingo@1523: ingo@1523: public static final String FIELD_LOWER = "field_lower"; ingo@1523: public static final String FIELD_UPPER = "field_upper"; ingo@1523: ingo@1523: ingo@1523: protected DynamicForm lowerForm; ingo@1523: protected DynamicForm upperForm; ingo@1523: ingo@1524: protected String dataName; ingo@1524: ingo@1523: ingo@1523: @Override ingo@1523: public Canvas create(DataList data) { ingo@1524: setDataName(data); ingo@1524: ingo@1523: VLayout root = new VLayout(); ingo@1523: ingo@1523: root.addMember(createLabel(data)); ingo@1523: root.addMember(createForm(data)); ingo@1523: root.addMember(getNextButton()); ingo@1523: ingo@1523: return root; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: @Override ingo@1523: public Canvas createOld(DataList data) { ingo@1523: // TODO IMPLEMENT ME ingo@1523: return new Canvas(); ingo@1523: } ingo@1523: ingo@1523: ingo@1523: @Override ingo@1523: protected Data[] getData() { ingo@1523: return new Data[0]; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: @Override ingo@1523: public List validate() { ingo@1523: List errors = new ArrayList(); ingo@1523: ingo@1523: if (!lowerForm.validate()) { ingo@1523: errors.add("LOWER ERRORS"); ingo@1523: } ingo@1523: ingo@1523: if (!upperForm.validate()) { ingo@1523: errors.add("UPPER ERRORS"); ingo@1523: } ingo@1523: ingo@1523: return errors; ingo@1523: } ingo@1523: ingo@1523: ingo@1524: protected void setDataName(DataList dataList) { ingo@1524: Data data = dataList.get(0); ingo@1524: ingo@1524: this.dataName = data.getLabel(); ingo@1524: } ingo@1524: ingo@1524: ingo@1524: public String getDataName() { ingo@1524: return dataName; ingo@1524: } ingo@1524: ingo@1524: ingo@1524: public String getLower() { ingo@1524: return lowerForm.getValueAsString(FIELD_LOWER); ingo@1524: } ingo@1524: ingo@1524: ingo@1524: public String getUpper() { ingo@1524: return upperForm.getValueAsString(FIELD_UPPER); ingo@1524: } ingo@1524: ingo@1524: ingo@1523: protected Canvas createLabel(DataList dataList) { ingo@1523: Label label = new Label(dataList.getLabel()); ingo@1523: ingo@1523: label.setWidth(100); ingo@1523: label.setHeight(25); ingo@1523: ingo@1523: return label; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected Canvas createForm(DataList dataList) { ingo@1523: lowerForm = createLowerForm(dataList); ingo@1523: upperForm = createUpperForm(dataList); ingo@1523: ingo@1523: HLayout formLayout = new HLayout(); ingo@1523: formLayout.addMember(lowerForm); ingo@1523: formLayout.addMember(createSpacer()); ingo@1523: formLayout.addMember(upperForm); ingo@1523: ingo@1523: return formLayout; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected DynamicForm newForm() { ingo@1523: DynamicForm form = new DynamicForm(); ingo@1523: form.setTitlePrefix(""); ingo@1523: form.setTitleSuffix(""); ingo@1523: form.setTitle(""); ingo@1523: form.setTitleField(""); ingo@1523: ingo@1523: return form; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected FormItem newFormItem(String name) { ingo@1523: TextItem item = new TextItem(name, ""); ingo@1523: item.setShowTitle(false); ingo@1523: ingo@1523: return item; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected DynamicForm createLowerForm(DataList dataList) { ingo@1523: DynamicForm lowerForm = newForm(); ingo@1523: FormItem lower = createLowerField(dataList); ingo@1523: ingo@1523: lowerForm.setFields(lower); ingo@1523: ingo@1523: return lowerForm; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected DynamicForm createUpperForm(DataList dataList) { ingo@1523: DynamicForm upperForm = newForm(); ingo@1523: FormItem upper = createUpperField(dataList); ingo@1523: ingo@1523: upperForm.setFields(upper); ingo@1523: ingo@1523: return upperForm; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected Canvas createSpacer() { ingo@1523: Label spacer = new Label("-"); ingo@1523: spacer.setWidth(25); ingo@1523: spacer.setHeight(25); ingo@1523: spacer.setAlign(Alignment.CENTER); ingo@1523: ingo@1523: return spacer; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected FormItem createLowerField(DataList dataList) { ingo@1523: return createField(FIELD_LOWER, createLowerValidators(dataList)); ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected FormItem createUpperField(DataList dataList) { ingo@1523: return createField(FIELD_UPPER, createUpperValidators(dataList)); ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected FormItem createField(String name, Validator[] validators) { ingo@1523: FormItem field = newFormItem(name); ingo@1523: ingo@1523: if (validators != null && validators.length > 0) { ingo@1523: field.setValidators(validators); ingo@1523: } ingo@1523: ingo@1523: return field; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected Validator[] createLowerValidators(DataList dataList) { ingo@1523: return null; ingo@1523: } ingo@1523: ingo@1523: ingo@1523: protected Validator[] createUpperValidators(DataList dataList) { ingo@1523: return null; ingo@1523: } ingo@1523: } ingo@1523: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :