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 2008/07/02 13:33:18 UTC

svn commit: r673363 - in /wicket/trunk/wicket/src/main/java/org/apache/wicket: Component.java MarkupContainer.java request/target/component/BookmarkableListenerInterfaceRequestTarget.java

Author: knopp
Date: Wed Jul  2 04:33:18 2008
New Revision: 673363

URL: http://svn.apache.org/viewvc?rev=673363&view=rev
Log:
WICKET-1725

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=673363&r1=673362&r2=673363&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Wed Jul  2 04:33:18 2008
@@ -1647,7 +1647,7 @@
 			// Get converter
 			final Class<?> objectClass = modelObject.getClass();
 
-			final IConverter<Object> converter = (IConverter<Object>) getConverter(objectClass);
+			final IConverter<Object> converter = (IConverter<Object>)getConverter(objectClass);
 
 			// Model string from property
 			final String modelString = converter.convertToString(modelObject, getLocale());
@@ -2139,11 +2139,20 @@
 	}
 
 	/**
-	 * Sets the RENDERING flag on component and it's children.
+	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
+	 * 
+	 * Sets the RENDERING flag and removes the PREPARED_FOR_RENDER flag on component and it's
+	 * children.
+	 * 
+	 * @param setRenderingFlag
+	 *            if this is false only the PREPARED_FOR_RENDER flag is removed from component, the
+	 *            RENDERING flag is not set.
+	 * 
+	 * @see #prepareForRender(boolean)
 	 */
-	public final void markRendering()
+	public final void markRendering(boolean setRenderingFlag)
 	{
-		internalMarkRendering();
+		internalMarkRendering(setRenderingFlag);
 	}
 
 	/**
@@ -2209,8 +2218,14 @@
 	 * 
 	 * Prepares the component and it's children for rendering. On whole page render this method must
 	 * be called on the page. On AJAX request, this method must be called on updated component.
+	 * 
+	 * @param setRenderingFlag
+	 *            Whether to set the rendering flag. This must be true if the page is about to be
+	 *            rendered. However, there are usecases to call this method without an immediate
+	 *            render (e.g. on stateless listner request target to build the component
+	 *            hierarchy), in that case setRenderingFlag should be false
 	 */
-	public final void prepareForRender()
+	public final void prepareForRender(boolean setRenderingFlag)
 	{
 		beforeRender();
 		List<Component> feedbacks = getRequestCycle().getMetaData(FEEDBACK_LIST);
@@ -2223,7 +2238,7 @@
 			}
 		}
 		getRequestCycle().setMetaData(FEEDBACK_LIST, null);
-		markRendering();
+		markRendering(setRenderingFlag);
 
 		// check authorization
 		// first the component itself
@@ -2232,6 +2247,17 @@
 	}
 
 	/**
+	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
+	 * 
+	 * Prepares the component and it's children for rendering. On whole page render this method must
+	 * be called on the page. On AJAX request, this method must be called on updated component.
+	 */
+	public final void prepareForRender()
+	{
+		prepareForRender(true);
+	}
+
+	/**
 	 * Redirects browser to an intermediate page such as a sign-in page. The current request's url
 	 * is saved for future use by method continueToOriginalDestination(); Only use this method when
 	 * you plan to continue to the current url at some later time; otherwise just use
@@ -2344,7 +2370,7 @@
 			markupIndex = markupStream.getCurrentIndex();
 		}
 
-		markRendering();
+		markRendering(true);
 
 		setMarkupStream(markupStream);
 
@@ -2935,7 +2961,7 @@
 	@SuppressWarnings("unchecked")
 	public final Component setDefaultModelObject(final Object object)
 	{
-		final IModel<Object> model = (IModel<Object>) getDefaultModel();
+		final IModel<Object> model = (IModel<Object>)getDefaultModel();
 
 		// Check whether anything can be set at all
 		if (model == null)
@@ -4103,10 +4129,14 @@
 	/**
 	 * 
 	 */
-	void internalMarkRendering()
+	void internalMarkRendering(boolean setRenderingFlag)
 	{
 		setFlag(FLAG_PREPARED_FOR_RENDER, false);
-		setFlag(FLAG_RENDERING, true);
+
+		if (setRenderingFlag)
+		{
+			setFlag(FLAG_RENDERING, true);
+		}
 	}
 
 	/**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java?rev=673363&r1=673362&r2=673363&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java Wed Jul  2 04:33:18 2008
@@ -1641,14 +1641,14 @@
 	 * @see org.apache.wicket.Component#internalMarkRendering()
 	 */
 	@Override
-	void internalMarkRendering()
+	void internalMarkRendering(boolean setRenderingFlag)
 	{
-		super.internalMarkRendering();
+		super.internalMarkRendering(setRenderingFlag);
 		final int size = children_size();
 		for (int i = 0; i < size; i++)
 		{
 			final Component child = children_get(i);
-			child.internalMarkRendering();
+			child.internalMarkRendering(setRenderingFlag);
 		}
 	}
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java?rev=673363&r1=673362&r2=673363&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java Wed Jul  2 04:33:18 2008
@@ -76,8 +76,8 @@
 		PageParameters pageParameters, Component component,
 		RequestListenerInterface listenerInterface)
 	{
-		this(pageMapName, pageClass, pageParameters, component.getPath(), listenerInterface
-			.getName(), component.getPage().getCurrentVersionNumber());
+		this(pageMapName, pageClass, pageParameters, component.getPath(),
+			listenerInterface.getName(), component.getPage().getCurrentVersionNumber());
 
 		int version = component.getPage().getCurrentVersionNumber();
 		setPage(component.getPage());
@@ -110,6 +110,7 @@
 		pageParameters.put(WebRequestCodingStrategy.INTERFACE_PARAMETER_NAME, param.toString());
 	}
 
+	@Override
 	public void processEvents(RequestCycle requestCycle)
 	{
 		Page page = getPage();
@@ -134,7 +135,7 @@
 			// this is quite a hack to get components in repeater work.
 			// But it still can fail if the repeater is a paging one or on every render
 			// it will generate new index for the items...
-			page.beforeRender();
+			page.prepareForRender(false);
 			component = page.get(pageRelativeComponentPath);
 			if (component == null)
 			{
@@ -146,8 +147,7 @@
 						" it could be that the component is inside a repeater make your component return false in getStatelessHint()");
 			}
 		}
-		RequestListenerInterface listenerInterface = RequestListenerInterface
-			.forName(interfaceName);
+		RequestListenerInterface listenerInterface = RequestListenerInterface.forName(interfaceName);
 		if (listenerInterface == null)
 		{
 			throw new WicketRuntimeException("unable to find listener interface " + interfaceName);
@@ -155,6 +155,7 @@
 		listenerInterface.invoke(page, component);
 	}
 
+	@Override
 	public void respond(RequestCycle requestCycle)
 	{
 		Page page = getPage(requestCycle);