Revision: 1761
          http://svn.sourceforge.net/spring-rich-c/?rev=1761&view=rev
Author:   jhoskens
Date:     2007-05-30 06:05:23 -0700 (Wed, 30 May 2007)

Log Message:
-----------
While adding/removing a childModel, events should be triggered if the child 
contained messages.
Test added to verify changes.

Modified Paths:
--------------
    
trunk/spring-richclient/support/src/main/java/org/springframework/binding/validation/support/DefaultValidationResultsModel.java
    
trunk/spring-richclient/support/src/test/java/org/springframework/binding/validation/DefaultValidationResultsModelTests.java

Modified: 
trunk/spring-richclient/support/src/main/java/org/springframework/binding/validation/support/DefaultValidationResultsModel.java
===================================================================
--- 
trunk/spring-richclient/support/src/main/java/org/springframework/binding/validation/support/DefaultValidationResultsModel.java
     2007-05-23 07:13:07 UTC (rev 1760)
+++ 
trunk/spring-richclient/support/src/main/java/org/springframework/binding/validation/support/DefaultValidationResultsModel.java
     2007-05-30 13:05:23 UTC (rev 1761)
@@ -37,309 +37,305 @@
 /**
  * Default implementation of ValidationResultsModel
  * 
- * @author  Oliver Hutchison
+ * @author Oliver Hutchison
  */
 public class DefaultValidationResultsModel implements ValidationResultsModel, 
ValidationListener {
 
-    private final EventListenerListHelper validationListeners = new 
EventListenerListHelper(ValidationListener.class);
+       private final EventListenerListHelper validationListeners = new 
EventListenerListHelper(ValidationListener.class);
 
-    private final CachingMapDecorator propertyValidationListeners = new 
CachingMapDecorator() {
+       private final CachingMapDecorator propertyValidationListeners = new 
CachingMapDecorator() {
 
-        protected Object create(Object propertyName) {
-            return new EventListenerListHelper(ValidationListener.class);
-        }
-    };
+               protected Object create(Object propertyName) {
+                       return new 
EventListenerListHelper(ValidationListener.class);
+               }
+       };
 
-    private final CachingMapDecorator propertyChangeListeners = new 
CachingMapDecorator() {
+       private final CachingMapDecorator propertyChangeListeners = new 
CachingMapDecorator() {
 
-        protected Object create(Object propertyName) {
-            return new EventListenerListHelper(PropertyChangeListener.class);
-        }
-    };
+               protected Object create(Object propertyName) {
+                       return new 
EventListenerListHelper(PropertyChangeListener.class);
+               }
+       };
 
-    private final ValidationResultsModel delegateFor;
-    
-    private List children = new ArrayList();
+       private final ValidationResultsModel delegateFor;
 
-    private ValidationResults validationResults = 
EmptyValidationResults.INSTANCE;
+       private List children = new ArrayList();
 
-    public DefaultValidationResultsModel() {
-        delegateFor = this;
-    }
+       private ValidationResults validationResults = 
EmptyValidationResults.INSTANCE;
 
-    public DefaultValidationResultsModel(ValidationResultsModel delegateFor) {
-        this.delegateFor = delegateFor;
-    }
+       public DefaultValidationResultsModel() {
+               delegateFor = this;
+       }
 
-    public void updateValidationResults(ValidationResults 
newValidationResults) {
-        Assert.required(newValidationResults, "newValidationResults");
-        ValidationResults oldValidationResults = validationResults;
-        validationResults = newValidationResults;
-        if (oldValidationResults.getMessageCount() == 0 && 
validationResults.getMessageCount() == 0) {
-            return;
-        }
-        for (Iterator i = propertyValidationListeners.keySet().iterator(); 
i.hasNext();) {
-            String propertyName = (String)i.next();
-            if (oldValidationResults.getMessageCount(propertyName) > 0
-                    || validationResults.getMessageCount(propertyName) > 0) {
-                fireValidationResultsChanged(propertyName);
-            }
-        }
-        fireChangedEvents(oldValidationResults);
-    }
-    
-    // TODO: test
-    public void addMessage(ValidationMessage validationMessage) {
-        if (!validationResults.getMessages().contains(validationMessage)) {
-            ValidationResults oldValidationResults = validationResults;
-            List newMessages = new 
ArrayList(oldValidationResults.getMessages());
-            newMessages.add(validationMessage);
-            validationResults = new DefaultValidationResults(newMessages);
-            fireValidationResultsChanged(validationMessage.getProperty());
-            fireChangedEvents(oldValidationResults);
-        }
-    }
+       public DefaultValidationResultsModel(ValidationResultsModel 
delegateFor) {
+               this.delegateFor = delegateFor;
+       }
 
-    // TODO: test
-    public void removeMessage(ValidationMessage validationMessage) {
-        if (validationResults.getMessages().contains(validationMessage)) {
-            ValidationResults oldValidationResults = validationResults;
-            List newMessages = new 
ArrayList(oldValidationResults.getMessages());
-            newMessages.remove(validationMessage);
-            validationResults = new DefaultValidationResults(newMessages);
-            fireValidationResultsChanged(validationMessage.getProperty());
-            fireChangedEvents(oldValidationResults);
-        }
-    }
+       public void updateValidationResults(ValidationResults 
newValidationResults) {
+               Assert.required(newValidationResults, "newValidationResults");
+               ValidationResults oldValidationResults = validationResults;
+               validationResults = newValidationResults;
+               if (oldValidationResults.getMessageCount() == 0 && 
validationResults.getMessageCount() == 0) {
+                       return;
+               }
+               for (Iterator i = 
propertyValidationListeners.keySet().iterator(); i.hasNext();) {
+                       String propertyName = (String) i.next();
+                       if (oldValidationResults.getMessageCount(propertyName) 
> 0
+                                       || 
validationResults.getMessageCount(propertyName) > 0) {
+                               fireValidationResultsChanged(propertyName);
+                       }
+               }
+               fireChangedEvents(oldValidationResults);
+       }
 
-    // TODO: test
-    public void replaceMessage(ValidationMessage messageToReplace, 
ValidationMessage replacementMessage) {        
-        ValidationResults oldValidationResults = validationResults;
-        List newMessages = new ArrayList(oldValidationResults.getMessages());
-        final boolean containsMessageToReplace = 
validationResults.getMessages().contains(messageToReplace);
-        if (containsMessageToReplace) {
-            newMessages.remove(messageToReplace);
-        }
-        newMessages.add(replacementMessage);
-        validationResults = new DefaultValidationResults(newMessages);
-        if (containsMessageToReplace && 
!ObjectUtils.nullSafeEquals(messageToReplace.getProperty(), 
replacementMessage.getProperty())) {
-            fireValidationResultsChanged(messageToReplace.getProperty());
-        }
-        fireValidationResultsChanged(replacementMessage.getProperty());
-        fireChangedEvents(oldValidationResults);
-    }
+       // TODO: test
+       public void addMessage(ValidationMessage validationMessage) {
+               if 
(!validationResults.getMessages().contains(validationMessage)) {
+                       ValidationResults oldValidationResults = 
validationResults;
+                       List newMessages = new 
ArrayList(oldValidationResults.getMessages());
+                       newMessages.add(validationMessage);
+                       validationResults = new 
DefaultValidationResults(newMessages);
+                       
fireValidationResultsChanged(validationMessage.getProperty());
+                       fireChangedEvents(oldValidationResults);
+               }
+       }
 
-    public void clearAllValidationResults() {
-        updateValidationResults(EmptyValidationResults.INSTANCE);
-    }
+       // TODO: test
+       public void removeMessage(ValidationMessage validationMessage) {
+               if 
(validationResults.getMessages().contains(validationMessage)) {
+                       ValidationResults oldValidationResults = 
validationResults;
+                       List newMessages = new 
ArrayList(oldValidationResults.getMessages());
+                       newMessages.remove(validationMessage);
+                       validationResults = new 
DefaultValidationResults(newMessages);
+                       
fireValidationResultsChanged(validationMessage.getProperty());
+                       fireChangedEvents(oldValidationResults);
+               }
+       }
 
-    /**
-     * Check children too.
-     */
-    public boolean getHasErrors() {
-       if (validationResults.getHasErrors())
-               return true;
-       Iterator childIter = children.iterator();
-       while (childIter.hasNext())
-       {
-               ValidationResultsModel childModel = 
(ValidationResultsModel)childIter.next();
-               if (childModel.getHasErrors())
-                       return true;
-       }
-        return false;
-    }
+       // TODO: test
+       public void replaceMessage(ValidationMessage messageToReplace, 
ValidationMessage replacementMessage) {
+               ValidationResults oldValidationResults = validationResults;
+               List newMessages = new 
ArrayList(oldValidationResults.getMessages());
+               final boolean containsMessageToReplace = 
validationResults.getMessages().contains(messageToReplace);
+               if (containsMessageToReplace) {
+                       newMessages.remove(messageToReplace);
+               }
+               newMessages.add(replacementMessage);
+               validationResults = new DefaultValidationResults(newMessages);
+               if (containsMessageToReplace
+                               && 
!ObjectUtils.nullSafeEquals(messageToReplace.getProperty(), 
replacementMessage.getProperty())) {
+                       
fireValidationResultsChanged(messageToReplace.getProperty());
+               }
+               fireValidationResultsChanged(replacementMessage.getProperty());
+               fireChangedEvents(oldValidationResults);
+       }
 
-    public boolean getHasInfo() {
-       if (validationResults.getHasInfo())
-               return true;
-       Iterator childIter = children.iterator();
-       while (childIter.hasNext())
-       {
-               ValidationResultsModel childModel = 
(ValidationResultsModel)childIter.next();
-               if (childModel.getHasInfo())
-                       return true;
-       }
-        return false;
-    }
+       public void clearAllValidationResults() {
+               updateValidationResults(EmptyValidationResults.INSTANCE);
+       }
 
-    public boolean getHasWarnings() {
-       if (validationResults.getHasWarnings())
-               return true;
-       Iterator childIter = children.iterator();
-       while (childIter.hasNext())
-       {
-               ValidationResultsModel childModel = 
(ValidationResultsModel)childIter.next();
-               if (childModel.getHasWarnings())
-                       return true;
-       }
-        return false;
-    }
+       /**
+        * Check children too.
+        */
+       public boolean getHasErrors() {
+               if (validationResults.getHasErrors())
+                       return true;
+               Iterator childIter = children.iterator();
+               while (childIter.hasNext()) {
+                       ValidationResultsModel childModel = 
(ValidationResultsModel) childIter.next();
+                       if (childModel.getHasErrors())
+                               return true;
+               }
+               return false;
+       }
 
-    public int getMessageCount() {
-       int count = validationResults.getMessageCount();
-       Iterator childIter = children.iterator();
-       while (childIter.hasNext())
-       {
-               ValidationResultsModel childModel = 
(ValidationResultsModel)childIter.next();
-               count += childModel.getMessageCount();
-       }
-        return count;
-    }
+       public boolean getHasInfo() {
+               if (validationResults.getHasInfo())
+                       return true;
+               Iterator childIter = children.iterator();
+               while (childIter.hasNext()) {
+                       ValidationResultsModel childModel = 
(ValidationResultsModel) childIter.next();
+                       if (childModel.getHasInfo())
+                               return true;
+               }
+               return false;
+       }
 
-    public int getMessageCount(Severity severity) {
-       int count = validationResults.getMessageCount(severity);
-       Iterator childIter = children.iterator();
-       while (childIter.hasNext())
-       {
-               ValidationResultsModel childModel = 
(ValidationResultsModel)childIter.next();
-               count += childModel.getMessageCount(severity);
-       }
-        return count;
-    }
+       public boolean getHasWarnings() {
+               if (validationResults.getHasWarnings())
+                       return true;
+               Iterator childIter = children.iterator();
+               while (childIter.hasNext()) {
+                       ValidationResultsModel childModel = 
(ValidationResultsModel) childIter.next();
+                       if (childModel.getHasWarnings())
+                               return true;
+               }
+               return false;
+       }
 
-    public int getMessageCount(String propertyName) {
-       int count = validationResults.getMessageCount(propertyName);
-       Iterator childIter = children.iterator();
-       while (childIter.hasNext())
-       {
-               ValidationResultsModel childModel = 
(ValidationResultsModel)childIter.next();
-               count += childModel.getMessageCount(propertyName);
-       }
-        return count;
-    }
+       public int getMessageCount() {
+               int count = validationResults.getMessageCount();
+               Iterator childIter = children.iterator();
+               while (childIter.hasNext()) {
+                       ValidationResultsModel childModel = 
(ValidationResultsModel) childIter.next();
+                       count += childModel.getMessageCount();
+               }
+               return count;
+       }
 
-    public Set getMessages() {
-       Set messages = new HashSet();
-       messages.addAll(validationResults.getMessages());
-       Iterator childIter = children.iterator();
-       while (childIter.hasNext())
-       {
-               ValidationResultsModel childModel = 
(ValidationResultsModel)childIter.next();
-               messages.addAll(childModel.getMessages());
-       }
-        return messages;
-    }
+       public int getMessageCount(Severity severity) {
+               int count = validationResults.getMessageCount(severity);
+               Iterator childIter = children.iterator();
+               while (childIter.hasNext()) {
+                       ValidationResultsModel childModel = 
(ValidationResultsModel) childIter.next();
+                       count += childModel.getMessageCount(severity);
+               }
+               return count;
+       }
 
-    public Set getMessages(Severity severity) {
-       Set messages = new HashSet();
-       messages.addAll(validationResults.getMessages(severity));
-       Iterator childIter = children.iterator();
-       while (childIter.hasNext())
-       {
-               ValidationResultsModel childModel = 
(ValidationResultsModel)childIter.next();
-               messages.addAll(childModel.getMessages(severity));
-       }
-        return messages;
-    }
+       public int getMessageCount(String propertyName) {
+               int count = validationResults.getMessageCount(propertyName);
+               Iterator childIter = children.iterator();
+               while (childIter.hasNext()) {
+                       ValidationResultsModel childModel = 
(ValidationResultsModel) childIter.next();
+                       count += childModel.getMessageCount(propertyName);
+               }
+               return count;
+       }
 
-    public Set getMessages(String propertyName) {
-       Set messages = new HashSet();
-       messages.addAll(validationResults.getMessages(propertyName));
-       Iterator childIter = children.iterator();
-       while (childIter.hasNext())
-       {
-               ValidationResultsModel childModel = 
(ValidationResultsModel)childIter.next();
-               messages.addAll(childModel.getMessages(propertyName));
-       }
-        return messages;
-    }
+       public Set getMessages() {
+               Set messages = new HashSet();
+               messages.addAll(validationResults.getMessages());
+               Iterator childIter = children.iterator();
+               while (childIter.hasNext()) {
+                       ValidationResultsModel childModel = 
(ValidationResultsModel) childIter.next();
+                       messages.addAll(childModel.getMessages());
+               }
+               return messages;
+       }
 
-    public void addValidationListener(ValidationListener listener) {
-        validationListeners.add(listener);
-    }
+       public Set getMessages(Severity severity) {
+               Set messages = new HashSet();
+               messages.addAll(validationResults.getMessages(severity));
+               Iterator childIter = children.iterator();
+               while (childIter.hasNext()) {
+                       ValidationResultsModel childModel = 
(ValidationResultsModel) childIter.next();
+                       messages.addAll(childModel.getMessages(severity));
+               }
+               return messages;
+       }
 
-    public void removeValidationListener(ValidationListener listener) {
-        validationListeners.remove(listener);
-    }
+       public Set getMessages(String propertyName) {
+               Set messages = new HashSet();
+               messages.addAll(validationResults.getMessages(propertyName));
+               Iterator childIter = children.iterator();
+               while (childIter.hasNext()) {
+                       ValidationResultsModel childModel = 
(ValidationResultsModel) childIter.next();
+                       messages.addAll(childModel.getMessages(propertyName));
+               }
+               return messages;
+       }
 
-    public void addValidationListener(String propertyName, ValidationListener 
listener) {
-        getValidationListeners(propertyName).add(listener);
-    }
+       public void addValidationListener(ValidationListener listener) {
+               validationListeners.add(listener);
+       }
 
-    public void removeValidationListener(String propertyName, 
ValidationListener listener) {
-        getValidationListeners(propertyName).remove(listener);
-    }
+       public void removeValidationListener(ValidationListener listener) {
+               validationListeners.remove(listener);
+       }
 
-    public void addPropertyChangeListener(PropertyChangeListener listener) {
-        throw new UnsupportedOperationException("This method is not 
implemented");
-    }
+       public void addValidationListener(String propertyName, 
ValidationListener listener) {
+               getValidationListeners(propertyName).add(listener);
+       }
 
-    public void removePropertyChangeListener(PropertyChangeListener listener) {
-        throw new UnsupportedOperationException("This method is not 
implemented");
-    }
+       public void removeValidationListener(String propertyName, 
ValidationListener listener) {
+               getValidationListeners(propertyName).remove(listener);
+       }
 
-    public void addPropertyChangeListener(String propertyName, 
PropertyChangeListener listener) {
-        getPropertyChangeListeners(propertyName).add(listener);
-    }
+       public void addPropertyChangeListener(PropertyChangeListener listener) {
+               throw new UnsupportedOperationException("This method is not 
implemented");
+       }
 
-    public void removePropertyChangeListener(String propertyName, 
PropertyChangeListener listener) {
-        getPropertyChangeListeners(propertyName).remove(listener);
-    }
+       public void removePropertyChangeListener(PropertyChangeListener 
listener) {
+               throw new UnsupportedOperationException("This method is not 
implemented");
+       }
 
-    protected void fireChangedEvents(ValidationResults oldValidationResults) {
-        fireValidationResultsChanged();
-        firePropertyChange(HAS_ERRORS_PROPERTY, 
oldValidationResults.getHasErrors(), getHasErrors());
-        firePropertyChange(HAS_WARNINGS_PROPERTY, 
oldValidationResults.getHasWarnings(), getHasWarnings());
-        firePropertyChange(HAS_INFO_PROPERTY, 
oldValidationResults.getHasInfo(), getHasInfo());
-    }
+       public void addPropertyChangeListener(String propertyName, 
PropertyChangeListener listener) {
+               getPropertyChangeListeners(propertyName).add(listener);
+       }
 
-    protected void fireValidationResultsChanged() {
-        validationListeners.fire("validationResultsChanged", delegateFor);
-    }
+       public void removePropertyChangeListener(String propertyName, 
PropertyChangeListener listener) {
+               getPropertyChangeListeners(propertyName).remove(listener);
+       }
 
-    protected void fireValidationResultsChanged(String propertyName) {
-        for (Iterator i = getValidationListeners(propertyName).iterator(); 
i.hasNext();) {
-            
((ValidationListener)i.next()).validationResultsChanged(delegateFor);           
 
-        }
-    }
+       protected void fireChangedEvents(ValidationResults 
oldValidationResults) {
+               fireValidationResultsChanged();
+               firePropertyChange(HAS_ERRORS_PROPERTY, 
oldValidationResults.getHasErrors(), getHasErrors());
+               firePropertyChange(HAS_WARNINGS_PROPERTY, 
oldValidationResults.getHasWarnings(), getHasWarnings());
+               firePropertyChange(HAS_INFO_PROPERTY, 
oldValidationResults.getHasInfo(), getHasInfo());
+       }
 
-    protected EventListenerListHelper getValidationListeners(String 
propertyName) {
-        return 
((EventListenerListHelper)propertyValidationListeners.get(propertyName));
-    }
+       protected void fireValidationResultsChanged() {
+               validationListeners.fire("validationResultsChanged", 
delegateFor);
+       }
 
-    protected void firePropertyChange(String propertyName, boolean oldValue, 
boolean newValue) {
-        if (oldValue != newValue) {
-            EventListenerListHelper propertyChangeListeners = 
getPropertyChangeListeners(propertyName);
-            if (propertyChangeListeners.hasListeners()) {
-                PropertyChangeEvent event = new 
PropertyChangeEvent(delegateFor, propertyName,
-                        Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
-                propertyChangeListeners.fire("propertyChange", event);
-            }
-        }
-    }
+       protected void fireValidationResultsChanged(String propertyName) {
+               for (Iterator i = 
getValidationListeners(propertyName).iterator(); i.hasNext();) {
+                       ((ValidationListener) 
i.next()).validationResultsChanged(delegateFor);
+               }
+       }
 
-    protected EventListenerListHelper getPropertyChangeListeners(String 
propertyName) {
-        return 
((EventListenerListHelper)propertyChangeListeners.get(propertyName));
-    }
-    
-    public String toString() {
-        return new ToStringCreator(this).append("messages", 
getMessages()).toString();
-    }
-    
-    
-    /**
-     * Add a validationResultsModel as a child to this one.
-     * 
-     * @param validationResultsModel
-     */
-    public void add(ValidationResultsModel validationResultsModel)
-    {
-       children.add(validationResultsModel);
-       validationResultsModel.addValidationListener(this);
-    }
-    
-    /**
-     * Remove the given validationResultsModel from the list of children.
-     * 
-     * @param validationResultsModel
-     */
-    public void remove(ValidationResultsModel validationResultsModel)
-    {
-       if (children.remove(validationResultsModel))
-               validationResultsModel.removeValidationListener(this);
-    }
-    
-    public void validationResultsChanged(ValidationResults results) {
-       fireValidationResultsChanged();
-    }
+       protected EventListenerListHelper getValidationListeners(String 
propertyName) {
+               return ((EventListenerListHelper) 
propertyValidationListeners.get(propertyName));
+       }
+
+       protected void firePropertyChange(String propertyName, boolean 
oldValue, boolean newValue) {
+               if (oldValue != newValue) {
+                       EventListenerListHelper propertyChangeListeners = 
getPropertyChangeListeners(propertyName);
+                       if (propertyChangeListeners.hasListeners()) {
+                               PropertyChangeEvent event = new 
PropertyChangeEvent(delegateFor, propertyName, Boolean
+                                               .valueOf(oldValue), 
Boolean.valueOf(newValue));
+                               propertyChangeListeners.fire("propertyChange", 
event);
+                       }
+               }
+       }
+
+       protected EventListenerListHelper getPropertyChangeListeners(String 
propertyName) {
+               return ((EventListenerListHelper) 
propertyChangeListeners.get(propertyName));
+       }
+
+       public String toString() {
+               return new ToStringCreator(this).append("messages", 
getMessages()).toString();
+       }
+
+       /**
+        * Add a validationResultsModel as a child to this one. If it already 
has
+        * messages, fire events.
+        * 
+        * @param validationResultsModel
+        */
+       public void add(ValidationResultsModel validationResultsModel) {
+               children.add(validationResultsModel);
+               validationResultsModel.addValidationListener(this);
+               if (validationResultsModel.getMessageCount() > 0)
+                       fireValidationResultsChanged();
+       }
+
+       /**
+        * Remove the given validationResultsModel from the list of children. 
If it
+        * had messages, fire events.
+        * 
+        * @param validationResultsModel
+        */
+       public void remove(ValidationResultsModel validationResultsModel) {
+               if (children.remove(validationResultsModel)) {
+                       validationResultsModel.removeValidationListener(this);
+                       if (validationResultsModel.getMessageCount() > 0)
+                               fireValidationResultsChanged();
+               }
+       }
+
+       public void validationResultsChanged(ValidationResults results) {
+               fireValidationResultsChanged();
+       }
 }
\ No newline at end of file

Modified: 
trunk/spring-richclient/support/src/test/java/org/springframework/binding/validation/DefaultValidationResultsModelTests.java
===================================================================
--- 
trunk/spring-richclient/support/src/test/java/org/springframework/binding/validation/DefaultValidationResultsModelTests.java
        2007-05-23 07:13:07 UTC (rev 1760)
+++ 
trunk/spring-richclient/support/src/test/java/org/springframework/binding/validation/DefaultValidationResultsModelTests.java
        2007-05-30 13:05:23 UTC (rev 1761)
@@ -152,7 +152,31 @@
        assertEquals("Number of messages registered for property1 should be 2", 
2, resultsModel.getMessageCount("property1"));
        assertEquals("Number of messages flagged as INFO should be 1", 1, 
resultsModel.getMessageCount(Severity.INFO));
     }
+    
+    public void testAddAndRemoveChild() {
+       DefaultValidationResultsModel parentModel = new 
DefaultValidationResultsModel();
+       DefaultValidationResultsModel childModel = new 
DefaultValidationResultsModel();
+       int events = 0;
+       
+       TestValidationListener validationListener = new 
TestValidationListener();
+       parentModel.addValidationListener(validationListener);
+       assertEquals("Init: no events yet", events, 
validationListener.eventCount());
 
+       parentModel.addMessage(new DefaultValidationMessage("parentProperty1", 
Severity.ERROR, "parentMessage1"));
+       assertEquals("ParentModel added ErrorMessage.", ++events, 
validationListener.eventCount());
+       
+       childModel.addMessage(new DefaultValidationMessage("childProperty1", 
Severity.ERROR, "childMessage1"));
+       parentModel.add(childModel);
+       assertEquals("ParentModel adds child with Error.", ++events, 
validationListener.eventCount());
+       
+       childModel.addMessage(new DefaultValidationMessage("childProperty2", 
Severity.ERROR, "childMessage2"));
+       assertEquals("Child added errorMessage.", ++events, 
validationListener.eventCount());
+       
+       parentModel.remove(childModel);
+       assertEquals("Child removed, revalidate.", ++events, 
validationListener.eventCount());
+       
+    }
+
     private ValidationResults getResults(String field, Severity severity) {
         DefaultValidationResults vr = new DefaultValidationResults();
         vr.addMessage(field, severity, "");


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

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
spring-rich-c-cvs mailing list
spring-rich-c-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs

Reply via email to