From 0aa8ae28f96fad5b87d2f66dd5be1ab67739922e Mon Sep 17 00:00:00 2001 From: Joonas Lehtinen Date: Mon, 19 May 2008 11:26:05 +0000 Subject: [PATCH] Fixes #1666 and #1665 svn changeset:4547/svn branch:trunk --- src/com/itmill/toolkit/ui/Form.java | 63 +++++++++-------------------- 1 file changed, 19 insertions(+), 44 deletions(-) diff --git a/src/com/itmill/toolkit/ui/Form.java b/src/com/itmill/toolkit/ui/Form.java index 42c2cf52ac..341b0c9a0c 100644 --- a/src/com/itmill/toolkit/ui/Form.java +++ b/src/com/itmill/toolkit/ui/Form.java @@ -14,7 +14,6 @@ import com.itmill.toolkit.data.Buffered; import com.itmill.toolkit.data.Item; import com.itmill.toolkit.data.Property; import com.itmill.toolkit.data.Validatable; -import com.itmill.toolkit.data.Validator; import com.itmill.toolkit.data.Validator.InvalidValueException; import com.itmill.toolkit.data.util.BeanItem; import com.itmill.toolkit.terminal.PaintException; @@ -96,11 +95,6 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item, */ private FieldFactory fieldFactory; - /** - * Registered Validators. - */ - private LinkedList validators; - /** * Visible item properties. */ @@ -380,7 +374,9 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item, propertyIds.addLast(propertyId); field.setReadThrough(readThrough); field.setWriteThrough(writeThrough); - + if (isImmediate() && field instanceof AbstractComponent) { + ((AbstractComponent) field).setImmediate(true); + } if (layout instanceof CustomLayout) { ((CustomLayout) layout).addComponent(field, propertyId .toString()); @@ -702,42 +698,6 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item, layout.detach(); } - /** - * Adds a new validator for this object. - * - * @see com.itmill.toolkit.data.Validatable#addValidator(com.itmill.toolkit.data.Validator) - */ - public void addValidator(Validator validator) { - - if (validators == null) { - validators = new LinkedList(); - } - validators.add(validator); - } - - /** - * Removes a previously registered validator from the object. - * - * @see com.itmill.toolkit.data.Validatable#removeValidator(com.itmill.toolkit.data.Validator) - */ - public void removeValidator(Validator validator) { - if (validators != null) { - validators.remove(validator); - } - } - - /** - * Gets the Lists all validators currently registered for the object. - * - * @see com.itmill.toolkit.data.Validatable#getValidators() - */ - public Collection getValidators() { - if (validators == null) { - validators = new LinkedList(); - } - return validators; - } - /** * Tests the current value of the object against all registered validators * @@ -748,7 +708,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item, for (final Iterator i = propertyIds.iterator(); i.hasNext();) { valid &= ((Field) fields.get(i.next())).isValid(); } - return valid; + return valid && super.isValid(); } /** @@ -757,6 +717,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item, * @see com.itmill.toolkit.data.Validatable#validate() */ public void validate() throws InvalidValueException { + super.validate(); for (final Iterator i = propertyIds.iterator(); i.hasNext();) { ((Field) fields.get(i.next())).validate(); } @@ -941,4 +902,18 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item, (getField(i.next())).setTabIndex(tabIndex); } } + + /** + * Setting the form to be immediate also sets all the fields of the form to + * the same state. + */ + public void setImmediate(boolean immediate) { + super.setImmediate(immediate); + for (Iterator i = fields.values().iterator(); i.hasNext();) { + Field f = (Field) i.next(); + if (f instanceof AbstractComponent) { + ((AbstractComponent) f).setImmediate(immediate); + } + } + } } -- 2.39.5