You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ja...@apache.org on 2007/06/19 07:15:44 UTC
svn commit: r548592 - in /incubator/wicket/trunk/jdk-1.4/wicket/src:
main/java/org/apache/wicket/ajax/ main/java/org/apache/wicket/ajax/form/
test/java/org/apache/wicket/ajax/form/
Author: janne
Date: Mon Jun 18 22:15:44 2007
New Revision: 548592
URL: http://svn.apache.org/viewvc?view=rev&rev=548592
Log:
improved OnChangeAjaxBehavior to better support cut/paste
Modified:
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java?view=diff&rev=548592&r1=548591&r2=548592
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java Mon Jun 18 22:15:44 2007
@@ -16,18 +16,17 @@
*/
package org.apache.wicket.ajax.form;
-import org.apache.wicket.Component;
import org.apache.wicket.Response;
-import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.form.AbstractTextComponent;
+import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.util.string.JavascriptUtils;
/**
- * A behavior that updates the hosting {@link FormComponent} via ajax when
- * value of the component is changed.
+ * A behavior that updates the hosting {@link FormComponent} via ajax when value
+ * of the component is changed.
*
- * This behavior uses best available method to track changes on different
- * types of form components.
+ * This behavior uses best available method to track changes on different types
+ * of form components.
*
* @author Janne Hietamäki (janne)
*
@@ -41,28 +40,7 @@
*/
public OnChangeAjaxBehavior()
{
- super("onkeyup");
- }
-
- protected final void onComponentTag(final ComponentTag tag)
- {
- super.onComponentTag(tag);
- if (this.getComponent().isEnabled())
- {
- tag.put(getEventForComponent(getComponent()), getEventHandler());
- }
- }
-
- private String getEventForComponent(Component component)
- {
- if (component instanceof AbstractTextComponent)
- {
- return "onkeyup";
- }
- else
- {
- return "onchange";
- }
+ super("onchange");
}
protected final void onComponentRendered()
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js?view=diff&rev=548592&r1=548591&r2=548592
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js Mon Jun 18 22:15:44 2007
@@ -1523,35 +1523,36 @@
var KEY_CTRL=17;
var KEY_ALT=18;
- var objonkeyup;
+ var obj = Wicket.$(elementId);
+ obj.setAttribute("autocomplete", "off");
+ if (Wicket.Browser.isIE()) {
+ var objonchange = obj.onchange;
- function initialize(){
- var obj=wicketGet(elementId);
-
- objonkeyup = obj.onkeyup;
-
- obj.onkeyup=function(event){
- switch(wicketKeyCode(Wicket.fixEvent(event))){
- case KEY_ENTER:
- case KEY_UP:
- case KEY_DOWN:
- case KEY_ESC:
- case KEY_TAB:
- case KEY_RIGHT:
- case KEY_LEFT:
- case KEY_SHIFT:
- case KEY_ALT:
- case KEY_CTRL:
- return Wicket.stopEvent(event);
- break;
- default:
- if(typeof objonkeyup == "function")objonkeyup();
- }
- return null;
- }
- }
- initialize();
-}
+ obj.onkeyup = function(event) {
+ switch (wicketKeyCode(Wicket.fixEvent(event))) {
+ case KEY_ENTER:
+ case KEY_UP:
+ case KEY_DOWN:
+ case KEY_ESC:
+ case KEY_TAB:
+ case KEY_RIGHT:
+ case KEY_LEFT:
+ case KEY_SHIFT:
+ case KEY_ALT:
+ case KEY_CTRL:
+ return Wicket.stopEvent(event);
+ break;
+ default:
+ if (typeof objonchange == "function")objonchange();
+ }
+ return null;
+ }
+ obj.attachEvent('onpaste', obj.onchange);
+ obj.attachEvent('oncut', obj.onchange);
+ } else {
+ obj.addEventListener('input', obj.onchange, true);
+ }
+}
/*
* Compatibility layer to maintain the original wicket-ajax API.
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html?view=diff&rev=548592&r1=548591&r2=548592
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html Mon Jun 18 22:15:44 2007
@@ -8,12 +8,12 @@
<script type="text/javascript" src="resources/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/wicket-ajax-debug.js"></script>
</head><body>
<form action="?wicket:interface=:0:form::IFormSubmitListener::" wicket:id="form" method="post" id="form0"><div style="display:none"><input type="hidden" name="form0_hf_0" id="form0_hf_0" /></div>
- <input onkeyup="var wcall=wicketAjaxPost('?wicket:interface=:0:form:field::IBehaviorListener:0:', wicketSerialize(Wicket.$('field1')), function() { }.bind(this), function() { }.bind(this));" value="" type="text" wicket:id="field" name="field" id="field1"/><script type="text/javascript"><!--/*--><![CDATA[/*><!--*/
+ <input onchange="var wcall=wicketAjaxPost('?wicket:interface=:0:form:field::IBehaviorListener:0:', wicketSerialize(Wicket.$('field1')), function() { }.bind(this), function() { }.bind(this));" value="" type="text" wicket:id="field" name="field" id="field1"/><script type="text/javascript"><!--/*--><![CDATA[/*><!--*/
new Wicket.ChangeHandler('field1');
/*-->]]>*/</script>
- <select onkeyup="var wcall=wicketAjaxPost('?wicket:interface=:0:form:dropDown::IBehaviorListener:0:', wicketSerialize(Wicket.$('dropDown2')), function() { }.bind(this), function() { }.bind(this));" wicket:id="dropDown" name="dropDown" onchange="var wcall=wicketAjaxPost('?wicket:interface=:0:form:dropDown::IBehaviorListener:0:', wicketSerialize(Wicket.$('dropDown2')), function() { }.bind(this), function() { }.bind(this));" id="dropDown2">
+ <select wicket:id="dropDown" name="dropDown" onchange="var wcall=wicketAjaxPost('?wicket:interface=:0:form:dropDown::IBehaviorListener:0:', wicketSerialize(Wicket.$('dropDown2')), function() { }.bind(this), function() { }.bind(this));" id="dropDown2">
<option selected="selected" value="">Choose One</option>
</select>
</form>