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 2010/01/12 03:29:11 UTC

svn commit: r898155 - in /wicket/trunk: wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/ wicket/src/main/java/org/apache/wicket/ wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ wicket/src/main/java/org/apach...

Author: knopp
Date: Tue Jan 12 02:29:10 2010
New Revision: 898155

URL: http://svn.apache.org/viewvc?rev=898155&view=rev
Log: (empty)

Modified:
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/IResourceListener.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java?rev=898155&r1=898154&r2=898155&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java Tue Jan 12 02:29:10 2010
@@ -39,10 +39,10 @@
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.image.Image;
 import org.apache.wicket.markup.html.image.NonCachingImage;
-import org.apache.wicket.markup.html.image.resource.DynamicImageResource;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
+import org.apache.wicket.ng.resource.DynamicImageResource;
 import org.apache.wicket.protocol.http.WebResponse;
 import org.apache.wicket.util.time.Time;
 
@@ -386,6 +386,13 @@
 		 */
 		private transient SoftReference<byte[]> data = null;
 
+		@Override
+		protected void configureResponse(ResourceResponse response, Attributes attributes)
+		{
+			super.configureResponse(response, attributes);
+			response.setCacheable(false);
+		}
+
 		/**
 		 * @param animals
 		 *            The positioned animals
@@ -393,7 +400,6 @@
 		private CaptchaImageResource(final PlacedAnimalList animals)
 		{
 			this.animals = animals;
-			setCacheable(false);
 			setFormat("jpg");
 		}
 
@@ -423,7 +429,6 @@
 		/**
 		 * Invalidates the image data
 		 */
-		@Override
 		protected void invalidate()
 		{
 			data = null;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/IResourceListener.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/IResourceListener.java?rev=898155&r1=898154&r2=898155&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/IResourceListener.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/IResourceListener.java Tue Jan 12 02:29:10 2010
@@ -35,7 +35,7 @@
 {
 	/** Resource listener interface object */
 	public static final RequestListenerInterface INTERFACE = new RequestListenerInterface(
-		IResourceListener.class);
+		IResourceListener.class).setIncludeRenderCount(false).setRenderPageAfterInvocation(false);
 
 	/**
 	 * Called when a resource is requested.

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java?rev=898155&r1=898154&r2=898155&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java Tue Jan 12 02:29:10 2010
@@ -64,34 +64,25 @@
 	private final String name;
 
 	/**
-	 * Whether or not this listener is targeted for a specific page version. If recordVersion is
-	 * true the page will be rolled back to the version which created the url, if false the latest
-	 * version of the page will be used.
+	 * Whether the render count should be included in URL. This should be true for every listener
+	 * interface URL that should only be active on last rendered page (links, etc) and false for
+	 * other (resources);
 	 */
-	private boolean recordsPageVersion = true;
+	private boolean includeRenderCount = true;
 
 	/**
-	 * Constructor that creates listener interfaces which record the page version.
-	 * 
-	 * @param listenerInterfaceClass
-	 *            The interface class, which must extend IRequestListener.
+	 * Whether the page should be rendered by default after the invocation of this listener
+	 * interface. Applies only during non-ajax requests.
 	 */
-	public RequestListenerInterface(final Class<? extends IRequestListener> listenerInterfaceClass)
-	{
-		this(listenerInterfaceClass, true);
-	}
+	private boolean renderPageAfterInvocation = true;
 
 	/**
 	 * Constructor.
 	 * 
 	 * @param listenerInterfaceClass
 	 *            The interface class, which must extend IRequestListener.
-	 * @param recordsPageVersion
-	 *            Whether or not urls encoded for this interface contain the page version. If set to
-	 *            false the latest page version is always used.
 	 */
-	public RequestListenerInterface(final Class<? extends IRequestListener> listenerInterfaceClass,
-		boolean recordsPageVersion)
+	public RequestListenerInterface(final Class<? extends IRequestListener> listenerInterfaceClass)
 	{
 		// Ensure that it extends IRequestListener
 		if (!IRequestListener.class.isAssignableFrom(listenerInterfaceClass))
@@ -100,8 +91,6 @@
 				" must extend IRequestListener");
 		}
 
-		this.recordsPageVersion = recordsPageVersion;
-
 		// Get interface methods
 		final Method[] methods = listenerInterfaceClass.getMethods();
 
@@ -133,6 +122,43 @@
 	}
 
 	/**
+	 * @param includeRenderCount
+	 * @return self
+	 */
+	public RequestListenerInterface setIncludeRenderCount(boolean includeRenderCount)
+	{
+		this.includeRenderCount = includeRenderCount;
+		return this;
+	}
+
+	/**
+	 * @return whether the render count should be included in url
+	 */
+	public boolean isIncludeRenderCount()
+	{
+		return includeRenderCount;
+	}
+
+	/**
+	 * @param renderPageAfterInvocation
+	 * @return self
+	 */
+	public RequestListenerInterface setRenderPageAfterInvocation(boolean renderPageAfterInvocation)
+	{
+		this.renderPageAfterInvocation = renderPageAfterInvocation;
+		return this;
+	}
+
+	/**
+	 * @return whether the page should be rendered after invocation of this interface (during
+	 *         non-ajax requests)
+	 */
+	public boolean isRenderPageAfterInvocation()
+	{
+		return renderPageAfterInvocation;
+	}
+
+	/**
 	 * @return The method for this request listener interface
 	 */
 	public final Method getMethod()
@@ -149,15 +175,6 @@
 	}
 
 	/**
-	 * @return true if urls encoded for this interface should record the page version, false if they
-	 *         should always be encoded for the latest page version
-	 */
-	public final boolean getRecordsPageVersion()
-	{
-		return recordsPageVersion;
-	}
-
-	/**
 	 * Invokes a given interface on a component.
 	 * 
 	 * @param page

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java?rev=898155&r1=898154&r2=898155&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java Tue Jan 12 02:29:10 2010
@@ -28,6 +28,7 @@
 import org.apache.wicket.ng.request.handler.IPageRequestHandler;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler.RedirectPolicy;
+import org.apache.wicket.protocol.http.WebRequest;
 import org.apache.wicket.util.lang.Checks;
 
 /**
@@ -143,13 +144,18 @@
 	{
 		if (getComponent().getPage() == getPage())
 		{
-			// schedule page render after current request handler is done. this can be overridden
-			// during invocation of listener
-			// method (i.e. by calling RequestCycle#setResponsePage)
-			RedirectPolicy policy = getPage().isPageStateless() ? RedirectPolicy.NEVER_REDIRECT
-				: RedirectPolicy.AUTO_REDIRECT;
-			requestCycle.scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(
-				new DefaultPageProvider(getPage()), policy));
+			if (((WebRequest)requestCycle.getRequest()).isAjax() == false &&
+				listenerInterface.isRenderPageAfterInvocation())
+			{
+				// schedule page render after current request handler is done. this can be
+				// overridden
+				// during invocation of listener
+				// method (i.e. by calling RequestCycle#setResponsePage)
+				RedirectPolicy policy = getPage().isPageStateless() ? RedirectPolicy.NEVER_REDIRECT
+					: RedirectPolicy.AUTO_REDIRECT;
+				requestCycle.scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(
+					new DefaultPageProvider(getPage()), policy));
+			}
 
 			if (getBehaviorIndex() == null)
 			{

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java?rev=898155&r1=898154&r2=898155&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java Tue Jan 12 02:29:10 2010
@@ -322,8 +322,14 @@
 				return null;
 			}
 
+			Integer renderCount = null;
+			if (handler.getListenerInterface().isIncludeRenderCount())
+			{
+				renderCount = page.getRenderCount();
+			}
+
 			PageInfo pageInfo = new PageInfo(page);
-			ComponentInfo componentInfo = new ComponentInfo(page.getRenderCount(),
+			ComponentInfo componentInfo = new ComponentInfo(renderCount,
 				requestListenerInterfaceToString(handler.getListenerInterface()),
 				handler.getComponent().getPageRelativePath(), handler.getBehaviorIndex());
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java?rev=898155&r1=898154&r2=898155&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java Tue Jan 12 02:29:10 2010
@@ -117,8 +117,14 @@
 			String componentPath = handler.getComponent().getPageRelativePath();
 			RequestListenerInterface listenerInterface = handler.getListenerInterface();
 
+			Integer renderCount = null;
+			if (listenerInterface.isIncludeRenderCount())
+			{
+				renderCount = page.getRenderCount();
+			}
+
 			PageInfo pageInfo = new PageInfo(page);
-			ComponentInfo componentInfo = new ComponentInfo(page.getRenderCount(),
+			ComponentInfo componentInfo = new ComponentInfo(renderCount,
 				requestListenerInterfaceToString(listenerInterface), componentPath,
 				handler.getBehaviorIndex());
 			info = new PageComponentInfo(pageInfo, componentInfo);