aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/ui/Form.java
diff options
context:
space:
mode:
authorJoonas Lehtinen <joonas.lehtinen@itmill.com>2008-05-19 11:26:05 +0000
committerJoonas Lehtinen <joonas.lehtinen@itmill.com>2008-05-19 11:26:05 +0000
commit0aa8ae28f96fad5b87d2f66dd5be1ab67739922e (patch)
treedd3df0f26e32e74dc030526752025306b2a05dde /src/com/itmill/toolkit/ui/Form.java
parent89407bd4ade3eb8feaa7d2a0998f90c924e2fdd4 (diff)
downloadvaadin-framework-0aa8ae28f96fad5b87d2f66dd5be1ab67739922e.tar.gz
vaadin-framework-0aa8ae28f96fad5b87d2f66dd5be1ab67739922e.zip
Fixes #1666 and #1665
svn changeset:4547/svn branch:trunk
Diffstat (limited to 'src/com/itmill/toolkit/ui/Form.java')
-rw-r--r--src/com/itmill/toolkit/ui/Form.java63
1 files 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;
@@ -97,11 +96,6 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
private FieldFactory fieldFactory;
/**
- * Registered Validators.
- */
- private LinkedList validators;
-
- /**
* Visible item properties.
*/
private Collection visibleItemProperties;
@@ -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());
@@ -703,42 +699,6 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
}
/**
- * 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
*
* @see com.itmill.toolkit.data.Validatable#isValid()
@@ -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);
+ }
+ }
+ }
}