You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2014/06/09 15:39:56 UTC
git commit: [WICKET-5603] OnChangeAjaxBehavior attached to
DropDownChoice produces two Ajax requests in the last versions of Chrome,
Opera and IE
Repository: wicket
Updated Branches:
refs/heads/master 785c04ae9 -> 240ab3c39
[WICKET-5603] OnChangeAjaxBehavior attached to DropDownChoice produces two Ajax requests in the last versions of Chrome, Opera and IE
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/240ab3c3
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/240ab3c3
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/240ab3c3
Branch: refs/heads/master
Commit: 240ab3c39865e6edc306c3aefaaffe3a82c4a729
Parents: 785c04a
Author: Andrea Del Bene <an...@gmail.com>
Authored: Mon Jun 9 15:38:28 2014 +0200
Committer: Andrea Del Bene <an...@gmail.com>
Committed: Mon Jun 9 15:38:28 2014 +0200
----------------------------------------------------------------------
.../wicket/ajax/form/OnChangeAjaxBehavior.java | 27 ++++++++++++++++++--
.../ajax/form/OnChangeAjaxBehaviorTest.java | 4 ++-
.../OnChangeAjaxBehaviorTestPage_expected.html | 4 +--
3 files changed, 30 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/240ab3c3/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
index 965ae56..863eded 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
@@ -16,7 +16,11 @@
*/
package org.apache.wicket.ajax.form;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.markup.html.form.FormComponent;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.markup.html.form.TextField;
/**
* A behavior that updates the hosting {@link FormComponent} via Ajax when value of the component is
@@ -42,14 +46,33 @@ public abstract class OnChangeAjaxBehavior extends AjaxFormComponentUpdatingBeha
* for text input form component depending on the browser.
* 'change' is used as a fallback for all other form component types.
*/
- public static final String EVENT_NAME = "inputchange change";
+ public static final String EVENT_INPUTCHANGE = "inputchange";
+ public static final String EVENT_CHANGE = "change";
/**
* Constructor.
*/
public OnChangeAjaxBehavior()
{
- super(EVENT_NAME);
+ super(EVENT_INPUTCHANGE + " " + EVENT_CHANGE);
}
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
+ {
+ super.updateAjaxAttributes(attributes);
+
+ Component component = getComponent();
+
+ //textfiels and textareas will trigger this behavior with event 'inputchange'
+ //while all the other components will use 'change'
+ if (component instanceof TextField || component instanceof TextArea)
+ {
+ attributes.setEventNames(EVENT_INPUTCHANGE);
+ }
+ else
+ {
+ attributes.setEventNames(EVENT_CHANGE);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/240ab3c3/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTest.java b/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTest.java
index 9f4cc4b..e04e064 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTest.java
@@ -33,7 +33,9 @@ public class OnChangeAjaxBehaviorTest extends WicketTestCase
public void rendering() throws Exception
{
tester.getSession().setLocale(Locale.ENGLISH);
-
+
+ //ensure that TextField and DropDownChoice have
+ //the appropriate event handlers
executeTest(OnChangeAjaxBehaviorTestPage.class,
"OnChangeAjaxBehaviorTestPage_expected.html");
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/240ab3c3/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html b/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html
index d8a7232..ec3a412 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html
@@ -16,8 +16,8 @@ Wicket.Ajax.baseUrl="wicket/bookmarkable/org.apache.wicket.ajax.form.OnChangeAja
<script type="text/javascript" >
/*<![CDATA[*/
Wicket.Event.add(window, "domready", function(event) {
-Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.form.OnChangeAjaxBehaviorTestPage?0-1.IBehaviorListener.0-form-field","m":"POST","c":"field1","e":"inputchange change"});;
-Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.form.OnChangeAjaxBehaviorTestPage?0-1.IBehaviorListener.0-form-dropDown","m":"POST","c":"dropDown2","e":"inputchange change"});;
+Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.form.OnChangeAjaxBehaviorTestPage?0-1.IBehaviorListener.0-form-field","m":"POST","c":"field1","e":"inputchange"});;
+Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.form.OnChangeAjaxBehaviorTestPage?0-1.IBehaviorListener.0-form-dropDown","m":"POST","c":"dropDown2","e":"change"});;
;});
/*]]>*/
</script>