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/08/27 15:01:02 UTC

svn commit: r689469 - in /wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request: AjaxRequestTarget.java AjaxUrlCodingStrategy.java

Author: knopp
Date: Wed Aug 27 06:01:01 2008
New Revision: 689469

URL: http://svn.apache.org/viewvc?rev=689469&view=rev
Log:
javadoc

Modified:
    wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxRequestTarget.java
    wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxUrlCodingStrategy.java

Modified: wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxRequestTarget.java?rev=689469&r1=689468&r2=689469&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxRequestTarget.java (original)
+++ wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxRequestTarget.java Wed Aug 27 06:01:01 2008
@@ -45,6 +45,35 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * A request target that produces ajax response envelopes used on the client side to update
+ * component markup as well as evaluate arbitrary javascript.
+ * <p>
+ * A component whose markup needs to be updated should be added to this target via
+ * AjaxRequestTarget#addComponent(Component) method. Its body will be rendered and added to the
+ * envelope when the target is processed, and refreshed on the client side when the ajax response is
+ * received.
+ * <p>
+ * It is important that the component whose markup needs to be updated contains an id attribute in
+ * the generated markup that is equal to the value retrieved from Component#getMarkupId(). This can
+ * be accomplished by either setting the id attribute in the html template, or using an attribute
+ * modifier that will add the attribute with value Component#getMarkupId() to the tag ( such as
+ * MarkupIdSetter )
+ * <p>
+ * Any javascript that needs to be evaluated on the client side can be added using
+ * AjaxRequestTarget#append/prependJavascript(String). For example, this feature can be useful when
+ * it is desirable to link component update with some javascript effects.
+ * <p>
+ * The target provides a listener interface {@link IListener} that can be used to add code that
+ * responds to various target events by adding listeners via
+ * {@link #addListener(IListener)} 
+ * 
+ * @since 1.2
+ * 
+ * @author Igor Vaynberg (ivaynberg)
+ * @author Eelco Hillenius
+ * @author Matej Knopp
+ */
 public class AjaxRequestTarget implements IRequestTarget
 {
 
@@ -58,7 +87,6 @@
 	/**
 	 * An {@link AjaxRequestTarget} listener that can be used to respond to various target-related
 	 * events
-	 * 
 	 */
 	public static interface IListener
 	{
@@ -396,6 +424,15 @@
 		}
 	}
 
+	/**
+	 * Adds a component entry to the list of components to be rendered
+	 * 
+	 * @param entry
+	 *            component entry to be rendered
+	 * 
+	 * @return <code>true</code> if the component was added, <code>false</code> if the
+	 *          component or some of it's parents is already in the list
+	 */
 	public boolean addComponent(ComponentEntry entry)
 	{
 		if (entry == null)
@@ -428,6 +465,16 @@
 		return true;
 	}
 
+	/**
+	 * Adds a component to the list of components to be rendered
+	 * 
+	 * @param component
+	 *            component to be rendered
+	 * 
+	 * @return <code>true</code> if the component was added, <code>false</code> if the
+	 *          component or some of it's parents is already in the list
+	 */
+
 	public boolean addComponent(Component component)
 	{
 		if (component == null)
@@ -864,8 +911,13 @@
 		return stringResponse.toString();
 	}
 
+	/**
+	 * 
+	 * @param redirect
+	 */
 	public void setRedirect(String redirect)
 	{
+		// TODO: Implement redirect
 		this.redirect = redirect;
 	}
 
@@ -894,17 +946,17 @@
 				component.prepareForRender();
 			}
 			catch (RuntimeException e)
-	        {
-	            try
-	            {
-	                component.afterRender();
-	            }
-	            catch (RuntimeException e2)
-	            {
-	                // ignore this one could be a result off.
-	            }
-	            throw e;
-	        }
+			{
+				try
+				{
+					component.afterRender();
+				}
+				catch (RuntimeException e2)
+				{
+					// ignore this one could be a result off.
+				}
+				throw e;
+			}
 		}
 	}
 
@@ -967,13 +1019,13 @@
 		{
 			JSONArray components = new JSONArray();
 			response.put("components", components);
-			
+
 			if (!entries.isEmpty())
 			{
 				prepareRender();
 
 				response.put("header", respondHeaderContribution());
-				
+
 				for (ComponentEntry entry : entries)
 				{
 					components.put(renderComponentEntry(entry));
@@ -1003,10 +1055,10 @@
 				appendJavascripts.put(renderJavascriptEntry(e));
 			}
 		}
-		
-		WebResponse webResponse = (WebResponse) requestCycle.getResponse();
+
+		WebResponse webResponse = (WebResponse)requestCycle.getResponse();
 		prepareResponse(webResponse);
-		
+
 		webResponse.write("if (false) (");
 		webResponse.write(response.toString());
 		webResponse.write(")");
@@ -1015,7 +1067,7 @@
 	private void prepareResponse(WebResponse response)
 	{
 		final Application app = Application.get();
-		
+
 		// Determine encoding
 		final String encoding = app.getRequestCycleSettings().getResponseRequestEncoding();
 
@@ -1027,7 +1079,10 @@
 		response.setHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT");
 		response.setHeader("Cache-Control", "no-cache, must-revalidate");
 		response.setHeader("Pragma", "no-cache");
-	}	
+	}
 
+	/**
+	 * Dummy AJAX request target instance used by {@link AjaxBehavior} to generate AJAX URL prefix.
+	 */
 	public static final AjaxRequestTarget DUMMY = new AjaxRequestTarget();
 }

Modified: wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxUrlCodingStrategy.java?rev=689469&r1=689468&r2=689469&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxUrlCodingStrategy.java (original)
+++ wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajaxng/request/AjaxUrlCodingStrategy.java Wed Aug 27 06:01:01 2008
@@ -33,6 +33,11 @@
 {
 	private final String mountPath;
 
+	/**
+	 * Construct.
+	 * 
+	 * @param mountPath
+	 */
 	public AjaxUrlCodingStrategy(String mountPath)
 	{
 		this.mountPath = mountPath;
@@ -50,23 +55,23 @@
 			return null;
 		}
 	}
-	
+
 	private Page getPage(RequestParameters parameters)
 	{
 		String page = getParameter(parameters, PARAM_PAGE_ID);
 		String elements[] = page.split(":");
 		int pageId;
-		String pageMapName = null; 
+		String pageMapName = null;
 		int version = 0;
 		if (elements.length == 2)
 		{
-			pageId = Integer.valueOf(elements[0]);	
+			pageId = Integer.valueOf(elements[0]);
 			version = Integer.valueOf(elements[1]);
 		}
 		else if (elements.length == 3)
 		{
 			pageMapName = elements[0];
-			pageId = Integer.valueOf(elements[1]);	
+			pageId = Integer.valueOf(elements[1]);
 			version = Integer.valueOf(elements[2]);
 		}
 		else
@@ -116,13 +121,13 @@
 			throw new IllegalStateException("Couldn't find component with id '" +
 				getParameter(requestParameters, PARAM_COMPONENT_ID) + "'.");
 		}
-		
+
 		int behaviorIndex = Integer.valueOf(getParameter(requestParameters, PARAM_BEHAVIOR_INDEX));
-		
+
 		int urlDepth = Integer.valueOf(getParameter(requestParameters, PARAM_URL_DEPTH));
-		
+
 		RequestCycle.get().getRequest().getRequestParameters().setUrlDepth(urlDepth);
-		
+
 		return new AjaxRequestTarget(component, behaviorIndex);
 	}
 
@@ -138,12 +143,26 @@
 	}
 
 	private static final String PARAM_PREFIX = "wicketNG:";
+	
+	/** Timestamp query parameter */
 	public static final String PARAM_TIMESTAMP = PARAM_PREFIX + "timestamp";
+	
+	/** ComponentId query parameter */
 	public static final String PARAM_COMPONENT_ID = PARAM_PREFIX + "componentId";
+	
+	/** PageId query parameter */
 	public static final String PARAM_PAGE_ID = PARAM_PREFIX + "pageId";
+	
+	/** FormId query parameter */
 	public static final String PARAM_FORM_ID = PARAM_PREFIX + "formId";
+	
+	/** Listener interface query parameter */
 	public static final String PARAM_LISTENER_INTEFACE = PARAM_PREFIX + "listenerInterface";
+	
+	/** Behavior index query parameter */
 	public static final String PARAM_BEHAVIOR_INDEX = PARAM_PREFIX + "behaviorIndex";
+	
+	/** URL Depth query parameter */
 	public static final String PARAM_URL_DEPTH = PARAM_PREFIX + "urlDepth";
 
 	public boolean matches(IRequestTarget requestTarget)