You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mr...@apache.org on 2007/01/31 08:56:29 UTC

svn commit: r501758 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/components/ main/resources/template/simple/ test/java/org/apache/struts2/views/jsp/ui/ test/resources/org/apache/struts2/views/jsp/ui/

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>