You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2007/08/01 13:14:54 UTC
svn commit: r561765 - in
/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket:
Application.java markup/html/internal/HeaderResponse.java
Author: knopp
Date: Wed Aug 1 04:14:53 2007
New Revision: 561765
URL: http://svn.apache.org/viewvc?view=rev&rev=561765
Log:
Added global handler for intercepting header contribution
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/markup/html/internal/HeaderResponse.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?view=diff&rev=561765&r1=561764&r2=561765
==============================================================================
--- 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 Wed Aug 1 04:14:53 2007
@@ -34,6 +34,8 @@
import org.apache.wicket.application.IComponentOnAfterRenderListener;
import org.apache.wicket.application.IComponentOnBeforeRenderListener;
import org.apache.wicket.markup.IMarkupCache;
+import org.apache.wicket.markup.html.IHeaderContributor;
+import org.apache.wicket.markup.html.IHeaderResponse;
import org.apache.wicket.markup.html.image.resource.DefaultButtonImageResourceFactory;
import org.apache.wicket.markup.parser.filter.RelativePathPrefixHandler;
import org.apache.wicket.markup.parser.filter.WicketMessageTagHandler;
@@ -1108,6 +1110,53 @@
IComponentOnAfterRenderListener listener = (IComponentOnAfterRenderListener)i
.next();
listener.onAfterRender(component);
+ }
+ }
+ }
+
+ private List renderHeadListeners = null;
+
+ /**
+ * Adds a listener that will be invoked for every header response
+ * @param listener
+ */
+ public final void addRenderHeadListener(IHeaderContributor listener)
+ {
+ if (renderHeadListeners == null)
+ {
+ renderHeadListeners = new ArrayList();
+ }
+ renderHeadListeners.add(listener);
+ }
+
+ /**
+ *
+ * @param listener
+ */
+ public void removeRenderHeadListener(IHeaderContributor listener)
+ {
+ if (renderHeadListeners != null)
+ {
+ renderHeadListeners.remove(listener);
+ if (renderHeadListeners.isEmpty())
+ {
+ renderHeadListeners = null;
+ }
+ }
+ }
+
+ /**
+ * INTERNAL
+ * @param response
+ */
+ public void notifyRenderHeadListener(IHeaderResponse response)
+ {
+ if (renderHeadListeners != null)
+ {
+ for (Iterator i = renderHeadListeners.iterator(); i.hasNext();)
+ {
+ IHeaderContributor listener = (IHeaderContributor) i.next();
+ listener.renderHead(response);
}
}
}
Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java?view=diff&rev=561765&r1=561764&r2=561765
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java Wed Aug 1 04:14:53 2007
@@ -21,6 +21,7 @@
import java.util.List;
import java.util.Set;
+import org.apache.wicket.Application;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.markup.html.IHeaderResponse;
@@ -48,7 +49,10 @@
*/
public HeaderResponse()
{
-
+ if (Application.exists())
+ {
+ Application.get().notifyRenderHeadListener(this);
+ }
}
/**