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/06/06 12:00:30 UTC
svn commit: r544789 - in
/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket:
Application.java Component.java
application/IComponentOnAfterRenderListener.java
application/IComponentOnBeforeRenderListener.java
Author: knopp
Date: Wed Jun 6 03:00:29 2007
New Revision: 544789
URL: http://svn.apache.org/viewvc?view=rev&rev=544789
Log: (empty)
Added:
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnAfterRenderListener.java
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnBeforeRenderListener.java
Modified:
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java?view=diff&rev=544789&r1=544788&r2=544789
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java Wed Jun 6 03:00:29 2007
@@ -29,6 +29,8 @@
import java.util.Properties;
import org.apache.wicket.application.IComponentInstantiationListener;
+import org.apache.wicket.application.IComponentOnAfterRenderListener;
+import org.apache.wicket.application.IComponentOnBeforeRenderListener;
import org.apache.wicket.markup.MarkupCache;
import org.apache.wicket.markup.html.image.resource.DefaultButtonImageResourceFactory;
import org.apache.wicket.markup.parser.filter.RelativePathPrefixHandler;
@@ -894,6 +896,116 @@
for (int i = 0; i < len; i++)
{
componentInstantiationListeners[i].onInstantiation(component);
+ }
+ }
+
+ private List componentOnBeforeRenderListeners = null;
+
+ /**
+ * Adds an {@link IComponentOnBeforeRenderListener}. This method should typicaly only
+ * be called during application startup; it is not thread safe.
+ *
+ * @param listener
+ */
+ final public void addComponentOnBeforeRenderListener(IComponentOnBeforeRenderListener listener)
+ {
+ if (componentOnBeforeRenderListeners == null)
+ {
+ componentOnBeforeRenderListeners = new ArrayList();
+ }
+
+ if (componentOnBeforeRenderListeners.contains(listener) == false)
+ {
+ componentOnBeforeRenderListeners.add(listener);
+ }
+ }
+
+ /**
+ * Removes an {@link IComponentOnBeforeRenderListener}.
+ *
+ * @param listener
+ */
+ final public void removeComponentOnBeforeRenderListener(IComponentOnBeforeRenderListener listener)
+ {
+ if (componentOnBeforeRenderListeners != null)
+ {
+ componentOnBeforeRenderListeners.remove(listener);
+ if (componentOnBeforeRenderListeners.isEmpty())
+ {
+ componentOnBeforeRenderListeners = null;
+ }
+ }
+ }
+
+ /**
+ * Notifies the {@link IComponentOnBeforeRenderListener}s.
+ *
+ * @param component
+ */
+ final void notifyComponentOnBeforeRenderListeners(Component component)
+ {
+ if (componentOnBeforeRenderListeners != null)
+ {
+ for (Iterator i = componentOnBeforeRenderListeners.iterator(); i.hasNext();)
+ {
+ IComponentOnBeforeRenderListener listener = (IComponentOnBeforeRenderListener) i.next();
+ listener.onBeforeRender(component);
+ }
+ }
+ }
+
+ private List componentOnAfterRenderListeners = null;
+
+ /**
+ * Adds an {@link IComponentOnAfterRenderListener}. This method should typicaly only
+ * be called during application startup; it is not thread safe.
+ *
+ * @param listener
+ */
+ final public void addComponentOnAfterRenderListener(IComponentOnAfterRenderListener listener)
+ {
+ if (componentOnAfterRenderListeners == null)
+ {
+ componentOnAfterRenderListeners = new ArrayList();
+ }
+
+ if (componentOnAfterRenderListeners.contains(listener) == false)
+ {
+ componentOnAfterRenderListeners.add(listener);
+ }
+ }
+
+ /**
+ * Removes an {@link IComponentOnAfterRenderListener}.
+ *
+ * @param listener
+ */
+ final public void removeComponentOnAfterRenderListener(IComponentOnAfterRenderListener listener)
+ {
+ if (componentOnAfterRenderListeners != null)
+ {
+ componentOnAfterRenderListeners.remove(listener);
+ if (componentOnAfterRenderListeners.isEmpty())
+ {
+ componentOnAfterRenderListeners = null;
+ }
+ }
+ }
+
+ /**
+ * Notifies the {@link IComponentOnAfterRenderListener}s.
+ *
+ * @param component
+ */
+ final void notifyComponentOnAfterRenderListeners(Component component)
+ {
+ if (componentOnAfterRenderListeners != null)
+ {
+ for (Iterator i = componentOnAfterRenderListeners.iterator(); i.hasNext();)
+ {
+ IComponentOnAfterRenderListener listener = (IComponentOnAfterRenderListener) i.next();
+ listener.onAfterRender(component);
+ }
}
}
}
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java?view=diff&rev=544789&r1=544788&r2=544789
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java Wed Jun 6 03:00:29 2007
@@ -3048,6 +3048,7 @@
{
setFlag(FLAG_BEFORE_RENDERING_SUPER_CALL_VERIFIED, false);
onBeforeRender();
+ getApplication().notifyComponentOnBeforeRenderListeners(this);
if (!getFlag(FLAG_BEFORE_RENDERING_SUPER_CALL_VERIFIED))
{
throw new IllegalStateException(
@@ -3093,6 +3094,7 @@
{
setFlag(FLAG_AFTER_RENDERING, true);
onAfterRender();
+ getApplication().notifyComponentOnAfterRenderListeners(this);
if (getFlag(FLAG_AFTER_RENDERING))
{
throw new IllegalStateException(
Added: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnAfterRenderListener.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnAfterRenderListener.java?view=auto&rev=544789
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnAfterRenderListener.java (added)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnAfterRenderListener.java Wed Jun 6 03:00:29 2007
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.application;
+
+import org.apache.wicket.Component;
+
+/**
+ * Listener that is called after component's onAfterRender method was invoked.
+ *
+ * @author Matej Knopp
+ */
+public interface IComponentOnAfterRenderListener
+{
+ /**
+ * @param component
+ */
+ public void onAfterRender(Component component);
+}
Added: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnBeforeRenderListener.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnBeforeRenderListener.java?view=auto&rev=544789
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnBeforeRenderListener.java (added)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/application/IComponentOnBeforeRenderListener.java Wed Jun 6 03:00:29 2007
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.application;
+
+import org.apache.wicket.Component;
+
+/**
+ * Listener that is called right after the component's onBeforeRender method was
+ * invoked.
+ *
+ * @author Matej Knopp
+ */
+public interface IComponentOnBeforeRenderListener
+{
+ /**
+ * @param component
+ */
+ public void onBeforeRender(Component component);
+}