Thanks for pointing me this case Ollie. I can use following changes to fix this:

protected void init()
{
    addPropertyChangeListener(ENABLED_PROPERTY, new PropertyChangeListener()
    {
        public void propertyChange(PropertyChangeEvent evt)
        {
            validatingUpdated();               
        }
    });
}
// if validating is enabled, check if model is enabled
public boolean isValidating() {
    return validating ? isEnabled() : false;
}
public void setValidating(boolean validating) {
    this.validating = validating;
    validatingUpdated();
}

protected void validatingUpdated() {
    boolean validating = isValidating();
    if (hasChanged(oldValidating, validating)) {
        if (validating) {
            validate();
        }
        else {
            validationResultsModel.clearAllValidationResults();
        }
        oldValidating = validating;
        firePropertyChange(VALIDATING_PROPERTY, !validating, validating);
    }
}

And using isValidating() everywhere instead of just the validate field

Kind Regards,
Jan

[EMAIL PROTECTED] wrote:
Jan what about the case where the model had validation disabled before
the model is disabled and then enabled? This change would result in
validation becoming enabled which seems incorect to me.

Ollie

On 4/26/06, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
  
Revision: 1093
Author:   jhoskens
Date:     2006-04-26 00:32:23 -0700 (Wed, 26 Apr 2006)
ViewCVS:  http://svn.sourceforge.net/spring-rich-c/?rev=1093&view=rev

Log Message:
-----------
DefaultFormModel now registers a listener on the enabled property to turn on/off the validation.
Listener is attached in init().

Modified Paths:
--------------
    trunk/spring-richclient/support/src/main/java/org/springframework/binding/form/support/DefaultFormModel.java
    trunk/spring-richclient/support/src/test/java/org/springframework/binding/form/support/DefaultFormModelTests.java
Modified: trunk/spring-richclient/support/src/main/java/org/springframework/binding/form/support/DefaultFormModel.java
===================================================================
--- trunk/spring-richclient/support/src/main/java/org/springframework/binding/form/support/DefaultFormModel.java        2006-04-26 06:46:47 UTC (rev 1092)
+++ trunk/spring-richclient/support/src/main/java/org/springframework/binding/form/support/DefaultFormModel.java        2006-04-26 07:32:23 UTC (rev 1093)
@@ -68,32 +68,56 @@
     private BindingErrorMessageProvider bindingErrorMessageProvider = new DefaultBindingErrorMessageProvider();

     public DefaultFormModel() {
+        init();
     }

     public DefaultFormModel(Object domainObject) {
         super(domainObject);
+        init();
     }

     public DefaultFormModel(Object domainObject, boolean buffered) {
         super(domainObject, buffered);
+        init();
     }

     public DefaultFormModel(ValueModel domainObjectHolder) {
         super(domainObjectHolder);
+        init();
     }

     public DefaultFormModel(ValueModel domainObjectHolder, boolean buffered) {
         super(domainObjectHolder, buffered);
+        init();
     }

     public DefaultFormModel(MutablePropertyAccessStrategy domainObjectAccessStrategy) {
         super(domainObjectAccessStrategy, true);
+        init();
     }

     public DefaultFormModel(MutablePropertyAccessStrategy domainObjectAccessStrategy, boolean bufferChanges) {
         super(domainObjectAccessStrategy, bufferChanges);
+        init();
     }
+
+    /**
+     * Initialization of DefaultFormModel.
+     * Adds a listener on the Enabled property in order to switch validating state
+     * on or off. When disabling a formModel, no validation will happen.
+     */
+    protected void init()
+    {
+        addPropertyChangeListener(ENABLED_PROPERTY, new PropertyChangeListener(){

+            public void propertyChange(PropertyChangeEvent evt)
+            {
+                setValidating(evt.getNewValue() == Boolean.TRUE ? true : false);
+            }
+
+        });
+    }
+
     public boolean isValidating() {
         return validating;
     }
@@ -149,9 +173,7 @@
         if (!(formValueModel instanceof ValidatingFormValueModel)) {
             return new ValidatingFormValueModel(formProperty, formValueModel, true);
         }
-        else {
-            return formValueModel;
-        }
+        return formValueModel;
     }

     protected void postProcessNewValueModel(String formProperty, ValueModel valueModel) {

Modified: trunk/spring-richclient/support/src/test/java/org/springframework/binding/form/support/DefaultFormModelTests.java
===================================================================
--- trunk/spring-richclient/support/src/test/java/org/springframework/binding/form/support/DefaultFormModelTests.java   2006-04-26 06:46:47 UTC (rev 1092)
+++ trunk/spring-richclient/support/src/test/java/org/springframework/binding/form/support/DefaultFormModelTests.java   2006-04-26 07:32:23 UTC (rev 1093)
@@ -309,15 +309,14 @@
     private static class TestDefaultFormModel extends DefaultFormModel {
         public TestDefaultFormModel(Object bean) {
             super(bean, false);
-            init();
         }

         public TestDefaultFormModel(BeanPropertyAccessStrategy pas, boolean buffering) {
             super(pas, buffering);
-            init();
         }

-        private void init() {
+        public void init() {
+            super.init();
             setValidator(new TestValidator());
             setBindingErrorMessageProvider(new BindingErrorMessageProvider() {



This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
spring-rich-c-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs

    


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd_______________________________________________
spring-rich-c-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs

  

Reply via email to