Author: ivaynberg
Date: Sat Aug 28 00:26:40 2010
New Revision: 990309

URL: http://svn.apache.org/viewvc?rev=990309&view=rev
Log:

Issue: WICKET-2783

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=990309&r1=990308&r2=990309&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Sat Aug 
28 00:26:40 2010
@@ -1126,7 +1126,7 @@ public abstract class Component
 
                        // clear the enabled in hierarchy cache as it may 
change as a result of form processing
                        // or other logic executed in onbeforerender 
(WICKET-2063)
-                       setMetaData(Component.ENABLED_IN_HIERARCHY_CACHE_KEY, 
null);
+                       clearEnabledInHierarchyCache();
 
                        onBeforeRender();
                        
getApplication().notifyPostComponentOnBeforeRenderListeners(this);
@@ -1314,7 +1314,7 @@ public abstract class Component
                }
 
                // clear out enabled state metadata
-               setMetaData(ENABLED_IN_HIERARCHY_CACHE_KEY, null);
+               clearEnabledInHierarchyCache();
 
                // notify any detach listener
                IDetachListener detachListener = 
getApplication().getFrameworkSettings()
@@ -2930,10 +2930,21 @@ public abstract class Component
 
                        // Change visibility
                        setFlag(FLAG_ENABLED, enabled);
+                       onEnabledStateChanged();
                }
                return this;
        }
 
+       void clearEnabledInHierarchyCache()
+       {
+               setMetaData(ENABLED_IN_HIERARCHY_CACHE_KEY, null);
+       }
+
+       void onEnabledStateChanged()
+       {
+               clearEnabledInHierarchyCache();
+       }
+
        /**
         * Sets whether model strings should be escaped.
         * 

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java?rev=990309&r1=990308&r2=990309&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java 
Sat Aug 28 00:26:40 2010
@@ -987,8 +987,8 @@ public abstract class MarkupContainer ex
        }
 
        /**
-        * Overrides {...@link Component#initialize()} to call {...@link 
Component#fireInitialize()} for itself
-        * and for all its children.
+        * Overrides {...@link Component#initialize()} to call {...@link 
Component#fireInitialize()} for
+        * itself and for all its children.
         * 
         * @see org.apache.wicket.Component#fireInitialize()
         */
@@ -1765,6 +1765,19 @@ public abstract class MarkupContainer ex
                }
        }
 
+       @Override
+       void onEnabledStateChanged()
+       {
+               super.onEnabledStateChanged();
+               visitChildren(new IVisitor<Component, Void>()
+               {
+                       public void component(Component component, IVisit<Void> 
visit)
+                       {
+                               component.clearEnabledInHierarchyCache();
+                       }
+               });
+       }
+
        /**
         * 
         * @see org.apache.wicket.Component#onAfterRenderChildren()


Reply via email to