Author: jcompagner
Date: Fri Dec 14 06:18:19 2007
New Revision: 604203

URL: http://svn.apache.org/viewvc?rev=604203&view=rev
Log:
fixes if ajax events on elements are done on components that are just are going 
to be replaced.
Javascript ajax handlings waits a bit before applying the changes and the pre 
condition script checks if the markup id is still there instead of checking the 
real element.

Modified:
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java?rev=604203&r1=604202&r2=604203&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
 Fri Dec 14 06:18:19 2007
@@ -122,7 +122,7 @@
         */
        protected CharSequence getPreconditionScript()
        {
-               return "return Wicket.$$(this)";
+               return "return Wicket.$('" + getComponent().getMarkupId() + "') 
!= null;";
        }
 
        /**

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js?rev=604203&r1=604202&r2=604203&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js 
(original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js 
Fri Dec 14 06:18:19 2007
@@ -1042,6 +1042,13 @@
                        // iinitialize the array for steps (closures that 
execute each action)
                    var steps = new Array();
 
+                  // start it a bit later so that the browser does handle the 
next event 
+                  // before the component is or can be replaced. We could do 
(if (!posponed))
+                  // because if there is already something in the queue then 
we could execute that immedietly 
+                       steps.push(function(notify) {
+                          window.setTimeout(notify,2);
+                       }.bind(this));
+                       
                    if (Wicket.Browser.isKHTML()) {
                        // there's a nasty bug in KHTML that makes the browser 
crash
                        // when the methods are delayed. Therefore we have to 
fire it


Reply via email to