Author: ivaynberg
Date: Mon Jan 14 13:18:00 2008
New Revision: 611938
URL: http://svn.apache.org/viewvc?rev=611938&view=rev
Log:
WICKET-1271 AjaxFormChoiceComponentUpdatingBehavior assumes Radio/Choice items
are a direct child of the group in the client-side DOM
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java?rev=611938&r1=611937&r2=611938&view=diff
==============================================================================
---
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
(original)
+++
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
Mon Jan 14 13:18:00 2008
@@ -62,13 +62,15 @@
AppendingStringBuffer asb = new AppendingStringBuffer();
asb.append("function attachChoiceHandlers(markupid,
callbackscript) {\n");
- asb.append(" var choiceElement =
document.getElementById(markupid);\n");
- asb.append(" for( var x = 0; x <
choiceElement.childNodes.length; x++ ) {\n");
- asb
- .append(" if (choiceElement.childNodes[x] &&
choiceElement.childNodes[x].tagName) {\n");
- asb.append(" var tag =
choiceElement.childNodes[x].tagName.toLowerCase();\n");
- asb.append(" if (tag == 'input') {\n");
- asb.append("
Wicket.Event.add(choiceElement.childNodes[x],'click', callbackscript);");
+ asb.append(" var choiceElementGroup =
document.getElementById(markupid);\n");
+ asb.append(" for( var x = 0; x <
choiceElementGroup.childNodes.length; x++ ) {\n");
+ asb.append(" var choiceElementList =
choiceElementGroup.childNodes[x];");
+ asb.append(" for( var y = 0; y <
choiceElementList.childNodes.length; y++ ) {\n");
+ asb.append(" if (choiceElementList.childNodes[y] &&
choiceElementList.childNodes[y].tagName) {\n");
+ asb.append(" var tag =
choiceElementList.childNodes[y].tagName.toLowerCase();\n");
+ asb.append(" if (tag == 'input') {\n");
+ asb.append("
Wicket.Event.add(choiceElementList.childNodes[y],'click', callbackscript);");
+ asb.append(" }\n");
asb.append(" }\n");
asb.append(" }\n");
asb.append(" }\n");
@@ -77,7 +79,7 @@
response.renderJavascript(asb, "attachChoice");
response.renderOnLoadJavascript("attachChoiceHandlers('" +
getComponent().getMarkupId() +
- "', function() {" + getEventHandler() + "});");
+ "', function() {" + getEventHandler() + "});");
}
@@ -118,11 +120,11 @@
if (!(getComponent() instanceof RadioChoice) &&
- !(getComponent() instanceof
CheckBoxMultipleChoice) &&
- !(getComponent() instanceof RadioGroup) &&
!(getComponent() instanceof CheckGroup))
+ !(getComponent() instanceof CheckBoxMultipleChoice) &&
+ !(getComponent() instanceof RadioGroup) &&
!(getComponent() instanceof CheckGroup))
{
throw new WicketRuntimeException("Behavior " +
getClass().getName() +
- " can only be added to an instance of a
RadioChoice/CheckboxChoice/RadioGroup/CheckGroup");
+ " can only be added to an instance of a
RadioChoice/CheckboxChoice/RadioGroup/CheckGroup");
}
if (getComponent() instanceof RadioGroup || getComponent()
instanceof CheckGroup)
@@ -146,9 +148,9 @@
protected final CharSequence getEventHandler()
{
return generateCallbackScript(new
AppendingStringBuffer("wicketAjaxPost('").append(
- getCallbackUrl()).append(
- "',
wicketSerializeForm(document.getElementById('" + getComponent().getMarkupId() +
- "',false))"));
+ getCallbackUrl()).append(
+ "', wicketSerializeForm(document.getElementById('" +
getComponent().getMarkupId() +
+ "',false))"));
}
/**