craigmcc    2003/03/09 17:57:31

  Modified:    src/share/org/apache/struts/taglib/html FormTag.java
                        JavascriptValidatorTag.java
               web/test/test/org/apache/struts/taglib/html TestFormTag1.jsp
  Log:
  Clean up the JavaScript code generation to not use string concatenation,
  and make the line-end generation platform independent so that Cactus tests
  can pass on Linux.
  
  Revision  Changes    Path
  1.45      +46 -21    
jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java
  
  Index: FormTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- FormTag.java      8 Mar 2003 19:23:49 -0000       1.44
  +++ FormTag.java      10 Mar 2003 01:57:30 -0000      1.45
  @@ -125,6 +125,11 @@
       protected String focusIndex = null;
   
       /**
  +     * The line ending string.
  +     */
  +    protected static String lineEnd = System.getProperty("line.separator");
  +
  +    /**
        * The ActionMapping defining where we will be submitting this form
        */
       protected ActionMapping mapping = null;
  @@ -629,35 +634,56 @@
   
           // Render JavaScript to set the input focus if required
           if (this.focus != null) {
  -            results.append("\r\n");
  +
  +            results.append(lineEnd);
               results.append(this.getJsStartElement());
   
               // xhtml script content shouldn't use the browser hiding trick
               if (!this.isXhtml()) {
  -                results.append("  <!--\r\n");
  +                results.append("  <!--");
  +                results.append(lineEnd);
               }
   
               // Construct the control name that will receive focus.
               // This does not include any index.
  -            String focusControl =
  -                "document.forms[\"" + beanName + "\"].elements[\"" + this.focus + 
"\"]";
  +            StringBuffer focusControl = new StringBuffer("document.forms[\"");
  +            focusControl.append(beanName);
  +            focusControl.append("\"].elements[\"");
  +            focusControl.append(this.focus);
  +            focusControl.append("\"]");
  +
  +            results.append("  var focusControl = ");
  +            results.append(focusControl.toString());
  +            results.append(";");
  +            results.append(lineEnd);
  +            results.append(lineEnd);
   
  -            results.append("  var focusControl = " + focusControl + ";\r\n\r\n");
  -
  -            results.append("  if (focusControl.type != \"hidden\") {\r\n");
  +            results.append("  if (focusControl.type != \"hidden\") {");
  +            results.append(lineEnd);
   
               // Construct the index if needed and insert into focus statement
               String index = "";
               if (this.focusIndex != null) {
  -                index = "[" + this.focusIndex + "]";
  +                StringBuffer sb = new StringBuffer("[");
  +                sb.append(this.focusIndex);
  +                sb.append("]");
  +                index = sb.toString();
               }
  -            results.append("     focusControl" + index + ".focus();\r\n  } \r\n");
  +            results.append("     focusControl");
  +            results.append(index);
  +            results.append(".focus();");
  +            results.append(lineEnd);
  +
  +            results.append("  }");
  +            results.append(lineEnd);
   
               if (!this.isXhtml()) {
  -                results.append("  // -->\r\n");
  +                results.append("  // -->");
  +                results.append(lineEnd);
               }
   
  -            results.append("</script>\r\n");
  +            results.append("</script>");
  +            results.append(lineEnd);
           }
   
           // Print this value to our output writer
  @@ -763,14 +789,13 @@
        * Returns the starting javascript element formatted for xhtml if needed.
        */
       private String getJsStartElement() {
  -        String start = "<script type=\"text/javascript\"";
  -
  +        StringBuffer sb = new StringBuffer("<script type=\"text/javascript\"");
           if (!this.isXhtml()) {
  -            start += " language=\"JavaScript\"";
  +            sb.append(" language=\"JavaScript\"");
           }
  -        start += ">\r\n";
  -
  -        return start;
  +        sb.append(">");
  +        sb.append(lineEnd);
  +        return sb.toString();
       }
   
       /**
  
  
  
  1.24      +9 -4      
jakarta-struts/src/share/org/apache/struts/taglib/html/JavascriptValidatorTag.java
  
  Index: JavascriptValidatorTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/JavascriptValidatorTag.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- JavascriptValidatorTag.java       8 Mar 2003 19:23:49 -0000       1.23
  +++ JavascriptValidatorTag.java       10 Mar 2003 01:57:31 -0000      1.24
  @@ -118,6 +118,11 @@
       protected String formName = null;
   
       /**
  +     * The line ending string.
  +     */
  +    protected static String lineEnd = System.getProperty("line.separator");
  +
  +    /**
        * The current page number of a multi-part form.
        * Only valid when the formName attribute is set.
        */
  
  
  
  1.2       +3 -3      
jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestFormTag1.jsp
  
  Index: TestFormTag1.jsp
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestFormTag1.jsp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestFormTag1.jsp  7 Mar 2003 05:38:24 -0000       1.1
  +++ TestFormTag1.jsp  10 Mar 2003 01:57:31 -0000      1.2
  @@ -43,7 +43,7 @@
   
     if (focusControl.type != "hidden") {
        focusControl.focus();
  -  } 
  +  }
     // -->
   </script>
        </bean:define>
  @@ -64,7 +64,7 @@
   
     if (focusControl.type != "hidden") {
        focusControl[2].focus();
  -  } 
  +  }
     // -->
   </script>
        </bean:define>
  @@ -215,4 +215,4 @@
   }
        
   Assert.assertEquals(compareTo, expected);
  -%>
  \ No newline at end of file
  +%>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to