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/09 12:52:30 UTC

svn commit: r897422 - in /wicket/trunk/wicket/src/main/java/org/apache/wicket: ./ ajax/ ng/request/component/ ng/request/cycle/

Author: knopp
Date: Sat Jan  9 11:52:29 2010
New Revision: 897422

URL: http://svn.apache.org/viewvc?rev=897422&view=rev
Log:
Get some Ajax working

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestListenerInterface.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.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=897422&r1=897421&r2=897422&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 Sat Jan  9 11:52:29 2010
@@ -4294,7 +4294,7 @@
 	/** TODO WICKET-NG javadoc */
 	public boolean canCallListenerInterface()
 	{
-		if (!isEnabled() || !determineVisibility())
+		if (!isEnabledInHierarchy() || !determineVisibility())
 		{
 			return false;
 		}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java?rev=897422&r1=897421&r2=897422&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java Sat Jan  9 11:52:29 2010
@@ -105,7 +105,8 @@
 	 * Returns prefix from Wicket Filter mapping to context path. This method does not take the
 	 * actual URL into account.
 	 * <p>
-	 * For example if Wicket filter is mapped to hello/* this method should return ../
+	 * For example if Wicket filter is mapped to hello/* this method should return ../ regardless of
+	 * actual URL (after Wicket filter)
 	 * 
 	 * @return prefix to context path for this request.
 	 * 

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=897422&r1=897421&r2=897422&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 Sat Jan  9 11:52:29 2010
@@ -167,7 +167,7 @@
 	 */
 	public final void invoke(final IRequestableComponent component)
 	{
-		if (!component.isEnabledInHierarchy() || !component.isVisibleInHierarchy())
+		if (!component.canCallListenerInterface())
 		{
 			// just return so that we have a silent fail and just re-render the
 			// page

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java?rev=897422&r1=897421&r2=897422&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java Sat Jan  9 11:52:29 2010
@@ -80,6 +80,10 @@
 			response.renderJavascript("wicketAjaxDebugEnable=true;", "wicket-ajax-debug-enable");
 		}
 
+		// TODO NG Escape
+		response.renderJavascript("Wicket.Ajax.baseUrl=\"" +
+			RequestCycle.get().getUrlRenderer().getBaseUrl() + "\";", "wicket-ajax-base-url");
+
 		RequestContext context = RequestContext.get();
 		if (context.isPortletRequest())
 		{
@@ -113,8 +117,7 @@
 	 */
 	protected CharSequence getCallbackScript(boolean onlyTargetActivePage)
 	{
-		return generateCallbackScript("wicketAjaxGet('" + getCallbackUrl() +
-			"'");
+		return generateCallbackScript("wicketAjaxGet('" + getCallbackUrl() + "'");
 	}
 
 	/**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?rev=897422&r1=897421&r2=897422&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java Sat Jan  9 11:52:29 2010
@@ -40,6 +40,7 @@
 import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
 import org.apache.wicket.markup.parser.filter.HtmlHeaderSectionHandler;
 import org.apache.wicket.markup.repeater.AbstractRepeater;
+import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.ng.request.component.IRequestablePage;
 import org.apache.wicket.ng.request.component.PageParameters;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
@@ -528,6 +529,11 @@
 	 */
 	public final void respond(final RequestCycle requestCycle)
 	{
+		Url oldBaseURL = requestCycle.getUrlRenderer().getBaseUrl();
+		Url baseURL = Url.parse(((WebRequest)requestCycle.getRequest()).getHeader("Wicket-Ajax-BaseURL"));
+
+		requestCycle.getUrlRenderer().setBaseUrl(baseURL);
+
 		final WebResponse response = (WebResponse)requestCycle.getResponse();
 
 		if (markupIdToComponent.values().contains(page))
@@ -595,6 +601,8 @@
 		}
 
 		response.write("</ajax-response>");
+
+		requestCycle.getUrlRenderer().setBaseUrl(oldBaseURL);
 	}
 
 	/**

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js?rev=897422&r1=897421&r2=897422&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js Sat Jan  9 11:52:29 2010
@@ -835,6 +835,7 @@
 				t.onreadystatechange = this.stateChangeCallback.bind(this);
 				// set a special flag to allow server distinguish between ajax and non-ajax requests
 				t.setRequestHeader("Wicket-Ajax", "true");
+				t.setRequestHeader("Wicket-Ajax-BaseURL", Wicket.Ajax.baseUrl);
 				if (typeof(Wicket.Focus.lastFocusId) != "undefined" && Wicket.Focus.lastFocusId != "" && Wicket.Focus.lastFocusId != null)
 				    t.setRequestHeader("Wicket-FocusedElementId", Wicket.Focus.lastFocusId);				
 				t.setRequestHeader("Accept", "text/xml");
@@ -884,6 +885,7 @@
 				t.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 				// set a special flag to allow server distinguish between ajax and non-ajax requests
 				t.setRequestHeader("Wicket-Ajax", "true");
+				t.setRequestHeader("Wicket-Ajax-BaseURL", Wicket.Ajax.baseUrl);
 				if (typeof(Wicket.Focus.lastFocusId) != "undefined" && Wicket.Focus.lastFocusId != "" && Wicket.Focus.lastFocusId != null)
 				    t.setRequestHeader("Wicket-FocusedElementId", Wicket.Focus.lastFocusId);				
 				t.setRequestHeader("Accept", "text/xml");

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java?rev=897422&r1=897421&r2=897422&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java Sat Jan  9 11:52:29 2010
@@ -103,8 +103,4 @@
 	 * </p>
 	 */
 	public void detach();
-
-	public boolean isVisibleInHierarchy();
-
-	public boolean isEnabledInHierarchy();
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java?rev=897422&r1=897421&r2=897422&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java Sat Jan  9 11:52:29 2010
@@ -217,6 +217,7 @@
 			{
 				log.error("Error during request processing", e);
 			}
+			return true;
 		}
 		finally
 		{
@@ -291,7 +292,7 @@
 	}
 
 	@Deprecated
-	// TODO: Remove. Request should be final
+	// TODO NG: Remove. Request should be final
 	// the only reason why the method is here is that form sets new request if the request is
 	// multipart
 	// can't this be handled by wicket filter?
@@ -451,7 +452,7 @@
 	 * 
 	 * @return the agent info object based on this request
 	 */
-	// TODO! Get this shit out of here
+	// TODO NG Get this shit out of here!
 	public ClientInfo newClientInfo()
 	{
 		return new WebClientInfo(this);