Author: mrdon Date: Tue Jan 30 23:56:28 2007 New Revision: 501758 URL: http://svn.apache.org/viewvc?view=rev&rev=501758 Log: Used id instead of name for Javascript method prefixes WW-1618
Added: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-3.txt Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/DoubleSelect.java struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/DoubleSelect.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/DoubleSelect.java?view=diff&rev=501758&r1=501757&r2=501758 ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/DoubleSelect.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/DoubleSelect.java Tue Jan 30 23:56:28 2007 @@ -60,6 +60,6 @@ super.evaluateExtraParams(); // force the onchange parameter - addParameter("onchange", getParameters().get("name") + "Redirect(this.options.selectedIndex)"); + addParameter("onchange", getParameters().get("id") + "Redirect(this.options.selectedIndex)"); } } Modified: struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl?view=diff&rev=501758&r1=501757&r2=501758 ============================================================================== --- struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl (original) +++ struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl Tue Jan 30 23:56:28 2007 @@ -38,9 +38,9 @@ </select> <script type="text/javascript"> <#assign itemCount = startCount/> - var ${parameters.name}Group = new Array(${parameters.listSize} + ${startCount}); + var ${parameters.id}Group = new Array(${parameters.listSize} + ${startCount}); for (i = 0; i < (${parameters.listSize} + ${startCount}); i++) - ${parameters.name}Group[i] = new Array(); + ${parameters.id}Group[i] = new Array(); <@s.iterator value="parameters.list"> <#if parameters.listKey?exists> @@ -66,14 +66,14 @@ <#else> <#assign doubleItemValue = stack.findString('top')/> </#if> - ${parameters.name}Group[${itemCount}][${doubleItemCount}] = new Option("${doubleItemValue}", "${doubleItemKeyStr}"); + ${parameters.id}Group[${itemCount}][${doubleItemCount}] = new Option("${doubleItemValue}", "${doubleItemKeyStr}"); <#assign doubleItemCount = doubleItemCount + 1/> </@s.iterator> <#assign itemCount = itemCount + 1/> </@s.iterator> - var ${parameters.name}Temp = document.${parameters.formName}.${parameters.doubleName}; + var ${parameters.id}Temp = document.${parameters.formName}.${parameters.doubleName}; <#assign itemCount = startCount/> <#assign redirectTo = 0/> <@s.iterator value="parameters.list"> @@ -87,25 +87,25 @@ </#if> <#assign itemCount = itemCount + 1/> </@s.iterator> - ${parameters.name}Redirect(${redirectTo}); - function ${parameters.name}Redirect(x) { + ${parameters.id}Redirect(${redirectTo}); + function ${parameters.id}Redirect(x) { var selected = false; - for (m = ${parameters.name}Temp.options.length - 1; m >= 0; m--) { - ${parameters.name}Temp.options[m] = null; + for (m = ${parameters.id}Temp.options.length - 1; m >= 0; m--) { + ${parameters.id}Temp.options[m] = null; } - for (i = 0; i < ${parameters.name}Group[x].length; i++) { - ${parameters.name}Temp.options[i] = new Option(${parameters.name}Group[x][i].text, ${parameters.name}Group[x][i].value); + for (i = 0; i < ${parameters.id}Group[x].length; i++) { + ${parameters.id}Temp.options[i] = new Option(${parameters.id}Group[x][i].text, ${parameters.id}Group[x][i].value); <#if parameters.doubleNameValue?exists> - if (${parameters.name}Temp.options[i].value == '${parameters.doubleNameValue}') { - ${parameters.name}Temp.options[i].selected = true; + if (${parameters.id}Temp.options[i].value == '${parameters.doubleNameValue}') { + ${parameters.id}Temp.options[i].selected = true; selected = true; } </#if> } - if ((${parameters.name}Temp.options.length > 0) && (! selected)) { - ${parameters.name}Temp.options[0].selected = true; + if ((${parameters.id}Temp.options.length > 0) && (! selected)) { + ${parameters.id}Temp.options[0].selected = true; } } </script> Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java?view=diff&rev=501758&r1=501757&r2=501758 ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java Tue Jan 30 23:56:28 2007 @@ -153,7 +153,63 @@ } + + public void testDoubleWithDotName() throws Exception { + TestAction testAction = (TestAction) action; + Region antwerp = new Region("Antwerp", "AN"); + Region gent = new Region("Gent", "GN"); + Region brugge = new Region("Brugge", "BRG"); + ArrayList belgiumRegions = new ArrayList(); + belgiumRegions.add(antwerp); + belgiumRegions.add(gent); + belgiumRegions.add(brugge); + Country belgium = new Country("Belgium", "BE", belgiumRegions); + + Region paris = new Region("Paris", "PA"); + Region bordeaux = new Region("Bordeaux", "BOR"); + ArrayList franceRegions = new ArrayList(); + franceRegions.add(paris); + franceRegions.add(bordeaux); + Country france = new Country("France", "FR", franceRegions); + + Collection collection = new ArrayList(2); + collection.add("AN"); + testAction.setCollection(collection); + + List countries = new ArrayList(); + countries.add(belgium); + countries.add(france); + + testAction.setList2(countries); + + DoubleSelectTag tag = new DoubleSelectTag(); + tag.setPageContext(pageContext); + tag.setLabel("mylabel"); + tag.setName("foo.bar"); + tag.setDoubleName("region"); + + tag.setList("list2"); + tag.setDoubleList("regions"); + + tag.setListKey("iso"); + tag.setDoubleListKey("key"); + tag.setListValue("name"); + tag.setDoubleListValue("name"); + + tag.setFormName("inputForm"); + + tag.setOnmousedown("window.status='onmousedown';"); + tag.setOnmousemove("window.status='onmousemove';"); + tag.setOnmouseout("window.status='onmouseout';"); + tag.setOnmouseover("window.status='onmouseover';"); + tag.setOnmouseup("window.status='onmouseup';"); + + tag.doStartTag(); + tag.doEndTag(); + + verify(SelectTag.class.getResource("DoubleSelect-3.txt")); + } public void testGenericSimple() throws Exception { DoubleSelectTag tag = new DoubleSelectTag(); Added: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-3.txt URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-3.txt?view=auto&rev=501758 ============================================================================== --- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-3.txt (added) +++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-3.txt Tue Jan 30 23:56:28 2007 @@ -0,0 +1,41 @@ +<tr> + <td class="tdLabel"><label for="foo_bar" class="label">mylabel:</label></td> + <td> +<select name="foo.bar" id="foo_bar" onmousedown="window.status='onmousedown';" onmouseup="window.status='onmouseup';" onmouseover="window.status='onmouseover';" onmousemove="window.status='onmousemove';" onmouseout="window.status='onmouseout';" onchange="foo_barRedirect(this.options.selectedIndex)"> + <option value="BE">Belgium</option> + <option value="FR">France</option> +</select> +<br/> +<select name="region"> +</select> +<script type="text/javascript"> + var foo_barGroup = new Array(2 + 0); + for (i = 0; i < (2 + 0); i++) + foo_barGroup[i] = new Array(); + + foo_barGroup[0][0] = new Option("Antwerp", "AN"); + foo_barGroup[0][1] = new Option("Gent", "GN"); + foo_barGroup[0][2] = new Option("Brugge", "BRG"); + foo_barGroup[1][0] = new Option("Paris", "PA"); + foo_barGroup[1][1] = new Option("Bordeaux", "BOR"); + + var foo_barTemp = document.inputForm.region; + foo_barRedirect(0); + + function foo_barRedirect(x) { + var selected = false; + for (m = foo_barTemp.options.length - 1; m >= 0; m--) { + foo_barTemp.options[m] = null; + } + + for (i = 0; i < foo_barGroup[x].length; i++) { + foo_barTemp.options[i] = new Option(foo_barGroup[x][i].text, foo_barGroup[x][i].value); + } + + if ((foo_barTemp.options.length > 0) && (! selected)) { + foo_barTemp.options[0].selected = true; + } + } +</script> + </td> +</tr>