You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2009/02/01 09:40:19 UTC

svn commit: r739715 - in /wicket/trunk/wicket/src: main/java/org/apache/wicket/ajax/form/ main/java/org/apache/wicket/markup/html/form/ test/java/org/apache/wicket/markup/html/form/

Author: ivaynberg
Date: Sun Feb  1 08:40:19 2009
New Revision: 739715

URL: http://svn.apache.org/viewvc?rev=739715&view=rev
Log:
WICKET-1677

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Check.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Radio.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java Sun Feb  1 08:40:19 2009
@@ -33,6 +33,9 @@
  * <p>
  * Use the normal {@link AjaxFormChoiceComponentUpdatingBehavior} for the normal single component
  * fields
+ * <p>
+ * In order to be supported by this behavior the group components must output children with markup
+ * id in format of 'groupId-childId'
  * 
  * @author jcompagner
  * 
@@ -67,6 +70,7 @@
 		asb.append(" for (var i = 0 ; i < inputNodes.length ; i ++) {\n");
 		asb.append(" var inputNode = inputNodes[i];\n");
 		asb.append(" if (!inputNode.type) continue;\n");
+		asb.append(" if (!(inputNode.id.indexOf(markupId+'-')===0)) continue;\n");
 		asb.append(" var inputType = inputNode.type.toLowerCase();\n");
 		asb.append(" if (inputType == 'checkbox' || inputType == 'radio') {\n");
 		asb.append(" Wicket.Event.add(inputNode, 'click', callbackScript);\n");

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Check.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Check.java?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Check.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Check.java Sun Feb  1 08:40:19 2009
@@ -94,6 +94,7 @@
 	{
 		super(id, model);
 		this.group = group;
+		setOutputMarkupId(true);
 	}
 
 
@@ -112,6 +113,32 @@
 		return "check" + uuid;
 	}
 
+	@SuppressWarnings("unchecked")
+	private CheckGroup<T> getGroup()
+	{
+		CheckGroup<T> group = this.group;
+		if (group == null)
+		{
+			group = findParent(CheckGroup.class);
+			if (group == null)
+			{
+				throw new WicketRuntimeException("Check component [" + getPath() +
+					"] cannot find its parent CheckGroup");
+			}
+		}
+		return group;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void onBeforeRender()
+	{
+		// prefix markup id of this radio with its group's id
+		// this will make it easier to identify all radios that belong to a specific group
+		setMarkupId(getGroup().getMarkupId() + "-" + getMarkupId());
+		super.onBeforeRender();
+	}
+
 
 	/**
 	 * @see Component#onComponentTag(ComponentTag)
@@ -128,16 +155,7 @@
 		checkComponentTag(tag, "input");
 		checkComponentTagAttribute(tag, "type", "checkbox");
 
-		CheckGroup<?> group = this.group;
-		if (group == null)
-		{
-			group = findParent(CheckGroup.class);
-			if (group == null)
-			{
-				throw new WicketRuntimeException("Check component [" + getPath() +
-					"] cannot find its parent CheckGroup");
-			}
-		}
+		CheckGroup<?> group = getGroup();
 
 		final String uuid = getValue();
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java Sun Feb  1 08:40:19 2009
@@ -411,7 +411,7 @@
 				buffer.append(getPrefix());
 
 				String id = getChoiceRenderer().getIdValue(choice, index);
-				final String idAttr = getInputName() + "_" + id;
+				final String idAttr = getMarkupId() + "-" + getInputName() + "_" + id;
 
 				// Add checkbox element
 				buffer.append("<input name=\"")

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Radio.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Radio.java?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Radio.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Radio.java Sun Feb  1 08:40:19 2009
@@ -91,6 +91,7 @@
 	{
 		super(id, model);
 		this.group = group;
+		setOutputMarkupId(true);
 	}
 
 
@@ -109,6 +110,34 @@
 		return "radio" + uuid;
 	}
 
+	/** {@inheritDoc} */
+	@Override
+	protected void onBeforeRender()
+	{
+		// prefix markup id of this radio with its group's id
+		// this will make it easier to identify all radios that belong to a specific group
+		setMarkupId(getGroup().getMarkupId() + "-" + getMarkupId());
+		super.onBeforeRender();
+	}
+
+
+	@SuppressWarnings("unchecked")
+	private RadioGroup<T> getGroup()
+	{
+		RadioGroup<T> group = this.group;
+		if (group == null)
+		{
+			group = findParent(RadioGroup.class);
+			if (group == null)
+			{
+				throw new WicketRuntimeException(
+					"Radio component [" +
+						getPath() +
+						"] cannot find its parent RadioGroup. All Radio components must be a child of or below in the hierarchy of a RadioGroup component.");
+			}
+		}
+		return group;
+	}
 
 	/**
 	 * @see Component#onComponentTag(ComponentTag)
@@ -127,19 +156,7 @@
 
 		final String value = getValue();
 
-		RadioGroup<?> group = this.group;
-		if (group == null)
-		{
-			group = findParent(RadioGroup.class);
-			if (group == null)
-			{
-				throw new WicketRuntimeException(
-					"Radio component [" +
-						getPath() +
-						"] cannot find its parent RadioGroup. All Radio components must be a child of or below in the hierarchy of a RadioGroup component.");
-			}
-		}
-
+		RadioGroup<?> group = getGroup();
 
 		// assign name and value
 		tag.put("name", group.getInputName());

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java Sun Feb  1 08:40:19 2009
@@ -450,7 +450,7 @@
 				buffer.append(getPrefix());
 
 				String id = getChoiceRenderer().getIdValue(choice, index);
-				final String idAttr = getMarkupId() + "_" + id;
+				final String idAttr = getMarkupId() + "-" + id;
 
 				boolean enabled = isEnabledInHierarchy() && !isDisabled(choice, index, selected);
 

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html Sun Feb  1 08:40:19 2009
@@ -2,11 +2,11 @@
 <head><title>CheckGroupTestPage1</title></head>
 <body>
     <!--  In addition test that chars are not converted from upper to lower and vice versa -->
-	<FORM action="?wicket:interface=:0:form::IFormSubmitListener::" wicket:id="form" method="post" id="form1"><div style="display:none"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+	<FORM wicket:id="form" id="form4" method="post" action="?wicket:interface=:0:form::IFormSubmitListener::"><div style="display:none"><input type="hidden" name="form4_hf_0" id="form4_hf_0" /></div>
 		<span wicket:id="group">
-			<Input value="check1" type="checkbox" disabled="disabled" wicket:id="check1" checked="checked" name="group">check1</input>
+			<Input type="checkbox" wicket:id="check1" id="group1-check12" name="group" value="check1" checked="checked" disabled="disabled">check1</input>
 			<span wicket:id="container">
-				<input value="check2" type="checkbox" disabled="disabled" wicket:id="check2" checked="checked" name="group">check2</input>
+				<input type="checkbox" wicket:id="check2" id="group1-check23" name="group" value="check2" checked="checked" disabled="disabled">check2</input>
 			</span>
 		</span>
 	</FORM>

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html Sun Feb  1 08:40:19 2009
@@ -2,11 +2,11 @@
 <head><title>CheckGroupTestPage1</title></head>
 <body>
     <!--  In addition test that chars are not converted from upper to lower and vice versa -->
-	<FORM action="?wicket:interface=:0:form::IFormSubmitListener::" wicket:id="form" method="post" id="form1"><div style="display:none"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+	<FORM wicket:id="form" id="form4" method="post" action="?wicket:interface=:0:form::IFormSubmitListener::"><div style="display:none"><input type="hidden" name="form4_hf_0" id="form4_hf_0" /></div>
 		
-			<Input value="check1" type="checkbox" wicket:id="check1" name="group">check1</input>
+			<Input type="checkbox" wicket:id="check1" id="group1-check12" name="group" value="check1">check1</input>
 			<span wicket:id="container">
-				<input value="check2" type="checkbox" wicket:id="check2" name="group">check2</input>
+				<input type="checkbox" wicket:id="check2" id="group1-check23" name="group" value="check2">check2</input>
 			</span>
 		
 	</FORM>

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html Sun Feb  1 08:40:19 2009
@@ -1,11 +1,11 @@
 <html>
 <head><title>CheckGroupTestPage2</title></head>
 <body>
-	<form action="?wicket:interface=:1:form::IFormSubmitListener::" wicket:id="form" method="post" id="form2"><div style="display:none"><input type="hidden" name="form2_hf_0" id="form2_hf_0" /></div>
+	<form wicket:id="form" id="form8" method="post" action="?wicket:interface=:1:form::IFormSubmitListener::"><div style="display:none"><input type="hidden" name="form8_hf_0" id="form8_hf_0" /></div>
 		
-			<input value="check1" type="checkbox" wicket:id="check1" checked="checked" name="group">check1</input>
+			<input type="checkbox" wicket:id="check1" id="group5-check16" name="group" value="check1" checked="checked">check1</input>
 			<span wicket:id="container">
-				<input value="check2" type="checkbox" wicket:id="check2" name="group">check2</input>
+				<input type="checkbox" wicket:id="check2" id="group5-check27" name="group" value="check2">check2</input>
 			</span>
 		
 	</form>

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html Sun Feb  1 08:40:19 2009
@@ -1,11 +1,11 @@
 <html>
 <head><title>CheckGroupTestPage3</title></head>
 <body>
-	<form action="?wicket:interface=:2:form::IFormSubmitListener::" wicket:id="form" method="post" id="form3"><div style="display:none"><input type="hidden" name="form3_hf_0" id="form3_hf_0" /></div>
+	<form wicket:id="form" id="formc" method="post" action="?wicket:interface=:2:form::IFormSubmitListener::"><div style="display:none"><input type="hidden" name="formc_hf_0" id="formc_hf_0" /></div>
 		
-			<input value="check1" type="checkbox" wicket:id="check1" name="group">check1</input>
+			<input type="checkbox" wicket:id="check1" id="group9-check1a" name="group" value="check1">check1</input>
 			<span wicket:id="container">
-				<input value="check2" type="checkbox" wicket:id="check2" checked="checked" name="group">check2</input>
+				<input type="checkbox" wicket:id="check2" id="group9-check2b" name="group" value="check2" checked="checked">check2</input>
 			</span>
 		
 	</form>

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html Sun Feb  1 08:40:19 2009
@@ -1,11 +1,11 @@
 <html>
 <head><title>CheckGroupTestPage4</title></head>
 <body>
-	<form action="?wicket:interface=:3:form::IFormSubmitListener::" wicket:id="form" method="post" id="form4"><div style="display:none"><input type="hidden" name="form4_hf_0" id="form4_hf_0" /></div>
+	<form wicket:id="form" id="form10" method="post" action="?wicket:interface=:3:form::IFormSubmitListener::"><div style="display:none"><input type="hidden" name="form10_hf_0" id="form10_hf_0" /></div>
 		
-			<input value="check1" type="checkbox" wicket:id="check1" checked="checked" name="group">check1</input>
+			<input type="checkbox" wicket:id="check1" id="groupd-check1e" name="group" value="check1" checked="checked">check1</input>
 			<span wicket:id="container">
-				<input value="check2" type="checkbox" wicket:id="check2" checked="checked" name="group">check2</input>
+				<input type="checkbox" wicket:id="check2" id="groupd-check2f" name="group" value="check2" checked="checked">check2</input>
 			</span>
 		
 	</form>

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html Sun Feb  1 08:40:19 2009
@@ -1,11 +1,11 @@
 <html>
 <head><title>RadioGroupTestPage1</title></head>
 <body>
-	<form action="?wicket:interface=:0:form::IFormSubmitListener::" wicket:id="form" method="post" id="form1"><div style="display:none"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+	<form wicket:id="form" id="form4" method="post" action="?wicket:interface=:0:form::IFormSubmitListener::"><div style="display:none"><input type="hidden" name="form4_hf_0" id="form4_hf_0" /></div>
 		<span wicket:id="group">
-			<input value="radio1" type="radio" disabled="disabled" wicket:id="radio1" name="group">radio1</input>
+			<input type="radio" wicket:id="radio1" id="group1-radio12" name="group" value="radio1" disabled="disabled">radio1</input>
 			<span wicket:id="container">
-				<input value="radio2" type="radio" disabled="disabled" wicket:id="radio2" checked="checked" name="group">radio2</input>
+				<input type="radio" wicket:id="radio2" id="group1-radio23" name="group" value="radio2" checked="checked" disabled="disabled">radio2</input>
 			</span>
 		</span>
 	</form>

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html Sun Feb  1 08:40:19 2009
@@ -1,11 +1,11 @@
 <html>
 <head><title>RadioGroupTestPage1</title></head>
 <body>
-	<form action="?wicket:interface=:0:form::IFormSubmitListener::" wicket:id="form" method="post" id="form1"><div style="display:none"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+	<form wicket:id="form" id="form4" method="post" action="?wicket:interface=:0:form::IFormSubmitListener::"><div style="display:none"><input type="hidden" name="form4_hf_0" id="form4_hf_0" /></div>
 		
-			<input value="radio1" type="radio" wicket:id="radio1" name="group">radio1</input>
+			<input type="radio" wicket:id="radio1" id="group1-radio12" name="group" value="radio1">radio1</input>
 			<span wicket:id="container">
-				<input value="radio2" type="radio" wicket:id="radio2" checked="checked" name="group">radio2</input>
+				<input type="radio" wicket:id="radio2" id="group1-radio23" name="group" value="radio2" checked="checked">radio2</input>
 			</span>
 		
 	</form>

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html?rev=739715&r1=739714&r2=739715&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html Sun Feb  1 08:40:19 2009
@@ -1,9 +1,9 @@
 <html>
 <body>
-<form action="?wicket:interface=:0:form::IFormSubmitListener::" wicket:id="form" method="post" id="form1"><div style="display:none"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+<form wicket:id="form" id="form4" method="post" action="?wicket:interface=:0:form::IFormSubmitListener::"><div style="display:none"><input type="hidden" name="form4_hf_0" id="form4_hf_0" /></div>
 	
-		<input value="radio1" type="radio" wicket:id="check1" checked="checked" name="radio">Yes
-		<input value="radio2" type="radio" wicket:id="check2" checked="checked" name="radio">No
+		<input wicket:id="check1" type="radio" id="radio1-check12" name="radio" value="radio1" checked="checked">Yes
+		<input wicket:id="check2" type="radio" id="radio1-check23" name="radio" value="radio2" checked="checked">No
 	
 </form>
 </body>