Author: ivaynberg
Date: Wed Aug 17 03:10:30 2011
New Revision: 1158495
URL: http://svn.apache.org/viewvc?rev=1158495&view=rev
Log:
Issue: WICKET-3968
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java?rev=1158495&r1=1158494&r2=1158495&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/AbstractRequestCycleListener.java
Wed Aug 17 03:10:30 2011
@@ -17,6 +17,7 @@
package org.apache.wicket.request.cycle;
import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Url;
/**
* Empty implementation of an {@link IRequestCycleListener} useful as a
starting point for your own
@@ -57,4 +58,8 @@ public abstract class AbstractRequestCyc
public void onRequestHandlerExecuted(RequestCycle cycle,
IRequestHandler handler)
{
}
+
+ public void onUrlMapped(RequestCycle cycle, IRequestHandler handler,
Url url)
+ {
+ }
}
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java?rev=1158495&r1=1158494&r2=1158495&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/IRequestCycleListener.java
Wed Aug 17 03:10:30 2011
@@ -18,6 +18,7 @@ package org.apache.wicket.request.cycle;
import org.apache.wicket.Application;
import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Url;
/**
* A callback interface for various methods in the request cycle. If you are
creating a framework
@@ -173,4 +174,14 @@ public interface IRequestCycleListener
* @param handler
*/
void onRequestHandlerExecuted(RequestCycle cycle, IRequestHandler
handler);
+
+ /**
+ * Called after a Url is generated for a {@link IRequestHandler}. This
method can be used to
+ * modify generated urls, for example query parameters can be added.
+ *
+ * @param cycle
+ * @param handler
+ * @param url
+ */
+ void onUrlMapped(RequestCycle cycle, IRequestHandler handler, Url url);
}
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java?rev=1158495&r1=1158494&r2=1158495&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
Wed Aug 17 03:10:30 2011
@@ -371,7 +371,9 @@ public class RequestCycle implements IRe
*/
public Url mapUrlFor(IRequestHandler handler)
{
- return requestMapper.mapHandler(handler);
+ final Url url = requestMapper.mapHandler(handler);
+ listeners.onUrlMapped(this, handler, url);
+ return url;
}
/**
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.java?rev=1158495&r1=1158494&r2=1158495&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycleListenerCollection.java
Wed Aug 17 03:10:30 2011
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Url;
import org.apache.wicket.util.listener.ListenerCollection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -186,4 +187,16 @@ public class RequestCycleListenerCollect
}
});
}
+
+ public void onUrlMapped(final RequestCycle cycle, final IRequestHandler
handler, final Url url)
+ {
+ notify(new INotifier<IRequestCycleListener>()
+ {
+ public void notify(IRequestCycleListener listener)
+ {
+ listener.onUrlMapped(cycle, handler, url);
+ }
+ });
+
+ }
}
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java?rev=1158495&r1=1158494&r2=1158495&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/MultiRequestCycleListenerCallOrderApplication.java
Wed Aug 17 03:10:30 2011
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Url;
class MultiRequestCycleListenerCallOrderApplication extends WebApplication
{
@@ -100,5 +101,9 @@ class MultiRequestCycleListenerCallOrder
{
callSequence.add(name + ".onRequestHandlerExecuted");
}
+
+ public void onUrlMapped(RequestCycle cycle, IRequestHandler
handler, Url url)
+ {
+ }
}
}
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java?rev=1158495&r1=1158494&r2=1158495&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleListenerTest.java
Wed Aug 17 03:10:30 2011
@@ -336,5 +336,9 @@ public class RequestCycleListenerTest ex
{
executions++;
}
+
+ public void onUrlMapped(RequestCycle cycle, IRequestHandler
handler, Url url)
+ {
+ }
}
}