Author: knopp
Date: Thu Apr 10 14:35:07 2008
New Revision: 646975

URL: http://svn.apache.org/viewvc?rev=646975&view=rev
Log:
allow global notification before and after onbeforerender method is invoked

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java?rev=646975&r1=646974&r2=646975&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java 
(original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java 
Thu Apr 10 14:35:07 2008
@@ -142,7 +142,10 @@
        private static final Logger log = 
LoggerFactory.getLogger(Application.class);
 
        /** */
-       private List<IComponentOnBeforeRenderListener> 
componentOnBeforeRenderListeners;
+       private List<IComponentOnBeforeRenderListener> 
componentPreOnBeforeRenderListeners;
+       
+       /** */
+       private List<IComponentOnBeforeRenderListener> 
componentPostOnBeforeRenderListeners;
 
        /** */
        private List<IComponentOnAfterRenderListener> 
componentOnAfterRenderListeners;
@@ -996,17 +999,17 @@
         * 
         * @param listener
         */
-       final public void addComponentOnBeforeRenderListener(
+       final public void addPreComponentOnBeforeRenderListener(
                final IComponentOnBeforeRenderListener listener)
        {
-               if (componentOnBeforeRenderListeners == null)
+               if (componentPreOnBeforeRenderListeners == null)
                {
-                       componentOnBeforeRenderListeners = new 
ArrayList<IComponentOnBeforeRenderListener>();
+                       componentPreOnBeforeRenderListeners = new 
ArrayList<IComponentOnBeforeRenderListener>();
                }
 
-               if (componentOnBeforeRenderListeners.contains(listener) == 
false)
+               if (componentPreOnBeforeRenderListeners.contains(listener) == 
false)
                {
-                       componentOnBeforeRenderListeners.add(listener);
+                       componentPreOnBeforeRenderListeners.add(listener);
                }
        }
 
@@ -1015,15 +1018,15 @@
         * 
         * @param listener
         */
-       final public void removeComponentOnBeforeRenderListener(
+       final public void removePreComponentOnBeforeRenderListener(
                final IComponentOnBeforeRenderListener listener)
        {
-               if (componentOnBeforeRenderListeners != null)
+               if (componentPreOnBeforeRenderListeners != null)
                {
-                       componentOnBeforeRenderListeners.remove(listener);
-                       if (componentOnBeforeRenderListeners.isEmpty())
+                       componentPreOnBeforeRenderListeners.remove(listener);
+                       if (componentPreOnBeforeRenderListeners.isEmpty())
                        {
-                               componentOnBeforeRenderListeners = null;
+                               componentPreOnBeforeRenderListeners = null;
                        }
                }
        }
@@ -1033,11 +1036,11 @@
         * 
         * @param component
         */
-       final void notifyComponentOnBeforeRenderListeners(final Component< ? > 
component)
+       final void notifyPreComponentOnBeforeRenderListeners(final Component< ? 
> component)
        {
-               if (componentOnBeforeRenderListeners != null)
+               if (componentPreOnBeforeRenderListeners != null)
                {
-                       for (Iterator<IComponentOnBeforeRenderListener> iter = 
componentOnBeforeRenderListeners.iterator(); iter.hasNext();)
+                       for (Iterator<IComponentOnBeforeRenderListener> iter = 
componentPreOnBeforeRenderListeners.iterator(); iter.hasNext();)
                        {
                                IComponentOnBeforeRenderListener listener = 
iter.next();
                                listener.onBeforeRender(component);
@@ -1045,6 +1048,61 @@
                }
        }
 
+       /**
+        * Adds an [EMAIL PROTECTED] IComponentOnBeforeRenderListener}. This 
method should typically only be
+        * called during application startup; it is not thread safe.
+        * 
+        * @param listener
+        */
+       final public void addPostComponentOnBeforeRenderListener(
+               final IComponentOnBeforeRenderListener listener)
+       {
+               if (componentPostOnBeforeRenderListeners == null)
+               {
+                       componentPostOnBeforeRenderListeners = new 
ArrayList<IComponentOnBeforeRenderListener>();
+               }
+
+               if (componentPostOnBeforeRenderListeners.contains(listener) == 
false)
+               {
+                       componentPostOnBeforeRenderListeners.add(listener);
+               }
+       }
+
+       /**
+        * Removes an [EMAIL PROTECTED] IComponentOnBeforeRenderListener}.
+        * 
+        * @param listener
+        */
+       final public void removePostComponentOnBeforeRenderListener(
+               final IComponentOnBeforeRenderListener listener)
+       {
+               if (componentPostOnBeforeRenderListeners != null)
+               {
+                       componentPostOnBeforeRenderListeners.remove(listener);
+                       if (componentPostOnBeforeRenderListeners.isEmpty())
+                       {
+                               componentPostOnBeforeRenderListeners = null;
+                       }
+               }
+       }
+
+       /**
+        * Notifies the [EMAIL PROTECTED] IComponentOnBeforeRenderListener}s.
+        * 
+        * @param component
+        */
+       final void notifyPostComponentOnBeforeRenderListeners(final Component< 
? > component)
+       {
+               if (componentPostOnBeforeRenderListeners != null)
+               {
+                       for (Iterator<IComponentOnBeforeRenderListener> iter = 
componentPostOnBeforeRenderListeners.iterator(); iter.hasNext();)
+                       {
+                               IComponentOnBeforeRenderListener listener = 
iter.next();
+                               listener.onBeforeRender(component);
+                       }
+               }
+       }
+       
        /**
         * Adds an [EMAIL PROTECTED] IComponentOnAfterRenderListener}. This 
method should typically only be called
         * during application startup; it is not thread safe.

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java?rev=646975&r1=646974&r2=646975&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java 
(original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java 
Thu Apr 10 14:35:07 2008
@@ -1026,8 +1026,10 @@
                {
                        setFlag(FLAG_BEFORE_RENDERING_SUPER_CALL_VERIFIED, 
false);
 
-                       onBeforeRender();
-                       
getApplication().notifyComponentOnBeforeRenderListeners(this);
+                       
getApplication().notifyPreComponentOnBeforeRenderListeners(this);
+                       onBeforeRender();                       
+                       
getApplication().notifyPostComponentOnBeforeRenderListeners(this); 
+                       
                        if (!getFlag(FLAG_BEFORE_RENDERING_SUPER_CALL_VERIFIED))
                        {
                                throw new 
IllegalStateException(Component.class.getName() +


Reply via email to