Author: mgrigorov
Date: Fri Jun 10 14:08:27 2011
New Revision: 1134330
URL: http://svn.apache.org/viewvc?rev=1134330&view=rev
Log:
WICKET-3764 Ajax behaviors are failing in stateless pages
Use the old getStatelessHint(Component) to decide whether to instantly create
an index for the behavior or not.
No need of the newly introduced #isStateless(Component).
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java?rev=1134330&r1=1134329&r2=1134330&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java
(original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Behaviors.java Fri
Jun 10 14:08:27 2011
@@ -70,7 +70,7 @@ final class Behaviors implements IDetach
private void internalAdd(final Behavior behavior)
{
component.data_add(behavior);
- if (behavior.isStateless(component))
+ if (behavior.getStatelessHint(component))
{
getBehaviorId(behavior);
}
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java?rev=1134330&r1=1134329&r2=1134330&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
Fri Jun 10 14:08:27 2011
@@ -178,23 +178,6 @@ public abstract class Behavior
}
/**
- * Returns whether or not this behavior is stateless. Most behaviors
should either not override
- * this method or return {@code false} because most behavior are not
stateless.
- *
- * A small subset of behaviors are made specifically to be stateless
and as such should override
- * this method and return {@code true}. One sideeffect of this method
is that the behavior id
- * will be generated eagerly when the behavior is added to the
component instead of before
- * render when a method to create the url is called - this allows for
stateless callback urls.
- *
- * @param component
- * @return whether or not this behavior is stateless
- */
- public boolean isStateless(Component component)
- {
- return false;
- }
-
- /**
* Checks if a listener can be invoked on this behavior
*
* @param component
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java?rev=1134330&r1=1134329&r2=1134330&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
Fri Jun 10 14:08:27 2011
@@ -64,8 +64,8 @@ public class ImmutableBehaviorIdsTest ex
assertTrue(output.contains("autocomplete=\"off\""));
assertTrue(output.contains("class2=\"border\""));
assertTrue(output.contains("autocomplete2=\"off\""));
- assertTrue(output.contains("IBehaviorListener.0"));
- assertTrue(output.contains("IBehaviorListener.1"));
+ assertTrue(output.contains("IBehaviorListener.2"));
+ assertTrue(output.contains("IBehaviorListener.4"));
// if we remove a behavior that is before the ibehaviorlistener
its url index should not
// change
@@ -76,8 +76,9 @@ public class ImmutableBehaviorIdsTest ex
page.getContainer().remove(auto2);
tester.startPage(page);
output = tester.getLastResponseAsString();
- assertTrue(output.contains("IBehaviorListener.0"));
- assertTrue(output.contains("IBehaviorListener.1"));
+ System.out.println(output);
+ assertTrue(output.contains("IBehaviorListener.2"));
+ assertTrue(output.contains("IBehaviorListener.4"));
}
/**
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html?rev=1134330&r1=1134329&r2=1134330&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/basic/SimplePageExpectedResult_13.html
Fri Jun 10 14:08:27 2011
@@ -1,7 +1,7 @@
<? xml version= "1.0" encoding ="UTF-8" ?>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html wicket:id="html" xmlns:wicket="" xmlns="http://www.w3.org/1999/xhtml"
xmlns:lang="[current language]" lang="de" id="html1" onclick="var
wcall=wicketAjaxGet('../page?0-1.IBehaviorListener.0-html',function()
{ }.bind(this),function() { }.bind(this), function() {return
Wicket.$('html1') != null;}.bind(this));return !wcall;">
+<html wicket:id="html" xmlns:wicket="" xmlns="http://www.w3.org/1999/xhtml"
xmlns:lang="[current language]" lang="de" id="html1" onclick="var
wcall=wicketAjaxGet('../page?0-1.IBehaviorListener.1-html',function()
{ }.bind(this),function() { }.bind(this), function() {return
Wicket.$('html1') != null;}.bind(this));return !wcall;">
<head><script type="text/javascript"
src="../resource/org.apache.wicket.markup.html.WicketEventReference/wicket-event.js"></script>
<script type="text/javascript"
src="../resource/org.apache.wicket.ajax.WicketAjaxReference/wicket-ajax.js"></script>
<script type="text/javascript"
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/wicket-ajax-debug.js"></script>