]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixes #1666 and #1665
authorJoonas Lehtinen <joonas.lehtinen@itmill.com>
Mon, 19 May 2008 11:26:05 +0000 (11:26 +0000)
committerJoonas Lehtinen <joonas.lehtinen@itmill.com>
Mon, 19 May 2008 11:26:05 +0000 (11:26 +0000)
svn changeset:4547/svn branch:trunk

src/com/itmill/toolkit/ui/Form.java

index 42c2cf52ac62ccc41641b111152bbd35912bae98..341b0c9a0cca40b06aa180937ef6fe210169933b 100644 (file)
@@ -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);
+            }
+        }
+    }
 }