Author: pete
Date: Thu Apr 28 14:15:27 2011
New Revision: 1097470

URL: http://svn.apache.org/viewvc?rev=1097470&view=rev
Log:
Implement IHeaderContributor on Behavior to reduce migration frustration / 
surprise. People using 1.5-trunk (before this commit) who implemented 
IHeaderContributor on Behaviors do not get IHeaderContributor#renderHead 
invoked at all like it did in 1.4.

Modified:
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/IHeaderContributor.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/renderStrategy/AbstractHeaderRenderStrategy.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java?rev=1097470&r1=1097469&r2=1097470&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java 
(original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java Thu 
Apr 28 14:15:27 2011
@@ -4382,6 +4382,20 @@ public abstract class Component
                return isEnabledInHierarchy() && isVisibleInHierarchy();
        }
 
+       /**
+        * CAUTION: this method is not meant to be overridden like it was in 
wicket 1.4 when implementing 
+        * {@link IHeaderContributor}. overload 
+        * {@link 
Component#renderHead(org.apache.wicket.markup.html.IHeaderResponse)} 
+        * instead to contribute to the response header.
+        * 
+        * @param component
+        * @param response
+        */
+       public final void renderHead(Component component, IHeaderResponse 
response)
+       {
+               renderHead(response);
+       }
+
        /** {@inheritDoc} */
        public void renderHead(IHeaderResponse response)
        {

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java?rev=1097470&r1=1097469&r2=1097470&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java 
(original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java 
Thu Apr 28 14:15:27 2011
@@ -21,6 +21,7 @@ import org.apache.wicket.IClusterable;
 import org.apache.wicket.event.IEvent;
 import org.apache.wicket.event.IEventSink;
 import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.html.IHeaderContributor;
 import org.apache.wicket.markup.html.IHeaderResponse;
 
 /**
@@ -43,7 +44,7 @@ import org.apache.wicket.markup.html.IHe
  * @author Eelco Hillenius
  * @author Igor Vaynberg (ivaynberg)
  */
-public abstract class Behavior implements IClusterable, IEventSink
+public abstract class Behavior implements IClusterable, IEventSink, 
IHeaderContributor
 {
        private static final long serialVersionUID = 1L;
 

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/IHeaderContributor.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/IHeaderContributor.java?rev=1097470&r1=1097469&r2=1097470&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/IHeaderContributor.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/IHeaderContributor.java
 Thu Apr 28 14:15:27 2011
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.markup.html;
 
+import org.apache.wicket.Component;
 import org.apache.wicket.IClusterable;
 
 /**
@@ -47,11 +48,8 @@ public interface IHeaderContributor exte
        /**
         * Render to the web response whatever the component wants to 
contribute to the head section.
         * 
-        * TODO: Post 1.3, add component parameter, so that the behaviors dont' 
have to track component
-        * instances
-        * 
         * @param response
         *            Response object
         */
-       void renderHead(final IHeaderResponse response);
+       void renderHead(Component component, IHeaderResponse response);
 }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/renderStrategy/AbstractHeaderRenderStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/renderStrategy/AbstractHeaderRenderStrategy.java?rev=1097470&r1=1097469&r2=1097470&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/renderStrategy/AbstractHeaderRenderStrategy.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/renderStrategy/AbstractHeaderRenderStrategy.java
 Thu Apr 28 14:15:27 2011
@@ -149,7 +149,7 @@ public abstract class AbstractHeaderRend
                {
                        for (IHeaderContributor listener : renderHeadListeners)
                        {
-                               
listener.renderHead(headerContainer.getHeaderResponse());
+                               listener.renderHead(headerContainer, 
headerContainer.getHeaderResponse());
                        }
                }
        }


Reply via email to