Commits

mbogaert  committed 6b9d804

Implemented WW-658: JSP Tags do not support onFocus, onBlur js handlers. Added not only onfocus and onblur, but all HTML 4.0 valid scripting events.

git-svn-id: http://svn.opensymphony.com/svn/webwork/trunk@573573baa09-0c28-0410-bef9-dab3c582ae83

  • Participants
  • Parent commits 0cf6466

Comments (0)

Files changed (22)

File src/etc/taglib.tld

             <rtexprvalue>false</rtexprvalue>
         </attribute>
     </tag>
-
     <tag>
         <name>merge</name>
         <tagclass>com.opensymphony.webwork.views.jsp.iterator.MergeIteratorTag</tagclass>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
+        <!-- HTML scripting events attributes -->
         <attribute>
-            <name>onchange</name>
+            <name>onclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onclick</name>
+            <name>ondblclick</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousedown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseover</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousemove</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseout</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onfocus</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onblur</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeypress</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeydown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeyup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onselect</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onchange</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onkeyup</name>
+            <name>tabindex</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>tabindex</name>
+            <name>show</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
+        <!-- HTML scripting events attributes -->
         <attribute>
-            <name>onchange</name>
+            <name>onclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onclick</name>
+            <name>ondblclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>show</name>
+            <name>onmousedown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseover</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousemove</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseout</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onfocus</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onblur</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeypress</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeydown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeyup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onselect</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onchange</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
+        <!-- HTML scripting events attributes -->
         <attribute>
-            <name>onchange</name>
+            <name>onclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onclick</name>
+            <name>ondblclick</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousedown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseover</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousemove</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseout</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onfocus</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onblur</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeypress</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeydown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeyup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onselect</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onchange</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
+        <!-- HTML scripting events attributes -->
         <attribute>
-            <name>onchange</name>
+            <name>onclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onclick</name>
+            <name>ondblclick</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousedown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseover</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousemove</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseout</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onfocus</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onblur</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeypress</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeydown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeyup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onselect</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onchange</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onchange</name>
+            <name>headerKey</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>headerValue</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
+        <!-- HTML scripting events attributes -->
         <attribute>
             <name>onclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>headerKey</name>
+            <name>ondblclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>headerValue</name>
+            <name>onmousedown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseover</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousemove</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseout</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onfocus</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onblur</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeypress</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeydown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeyup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onselect</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onchange</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onkeyup</name>
+            <name>tabindex</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
+        <!-- HTML scripting events attributes -->
         <attribute>
-            <name>tabindex</name>
+            <name>onclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onchange</name>
+            <name>ondblclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onclick</name>
+            <name>onmousedown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseover</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousemove</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseout</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onfocus</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onblur</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeypress</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeydown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeyup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onselect</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onchange</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onkeyup</name>
+            <name>tabindex</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
+        <!-- HTML scripting events attributes -->
         <attribute>
-            <name>tabindex</name>
+            <name>onclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onchange</name>
+            <name>ondblclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onclick</name>
+            <name>onmousedown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseover</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousemove</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseout</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onfocus</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onblur</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeypress</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeydown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeyup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onselect</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onchange</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
         </attribute>
+        <!-- HTML scripting events attributes -->
         <attribute>
-            <name>onchange</name>
+            <name>onclick</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>
         <attribute>
-            <name>onclick</name>
+            <name>ondblclick</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousedown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseover</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmousemove</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onmouseout</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onfocus</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onblur</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeypress</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeydown</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onkeyup</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onselect</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>onchange</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
         </attribute>

File src/java/com/opensymphony/webwork/views/jsp/ui/AbstractUITag.java

     protected String labelAttr;
     protected String labelPositionAttr;
     protected String nameAttr;
-    protected String onchangeAttr;
-    protected String onclickAttr;
     protected String requiredAttr;
     protected String tabindexAttr;
     protected String templateAttr;
     protected String themeAttr;
     protected String valueAttr;
 
+    // HTML scripting events attributes
+    protected String onclickAttr;
+    protected String ondblclickAttr;
+    protected String onmousedownAttr;
+    protected String onmouseupAttr;
+    protected String onmouseoverAttr;
+    protected String onmousemoveAttr;
+    protected String onmouseoutAttr;
+    protected String onfocusAttr;
+    protected String onblurAttr;
+    protected String onkeypressAttr;
+    protected String onkeydownAttr;
+    protected String onkeyupAttr;
+    protected String onselectAttr;
+    protected String onchangeAttr;
+
     //~ Methods ////////////////////////////////////////////////////////////////
 
     public void setCssClass(String aCssClass) {
         nameAttr = aName;
     }
 
-    public void setOnchange(String onchange) {
-        this.onchangeAttr = onchange;
-    }
-
-    public void setOnclick(String onclick) {
-        this.onclickAttr = onclick;
-    }
-
     public void setRequired(String required) {
         this.requiredAttr = required;
     }
         valueAttr = aValue;
     }
 
+    // HTML scripting attribute setters
+
+    public void setOnclick(String onclick) {
+        this.onclickAttr = onclick;
+    }
+
+    public void setOndblclick(String ondblclick) {
+        this.ondblclickAttr = ondblclick;
+    }
+
+    public void setOnmousedown(String onmousedown) {
+        this.onmousedownAttr = onmousedown;
+    }
+
+    public void setOnmouseup(String onmouseup) {
+        this.onmouseupAttr = onmouseup;
+    }
+
+    public void setOnmouseover(String onmouseover) {
+        this.onmouseoverAttr = onmouseover;
+    }
+
+    public void setOnmousemove(String onmousemove) {
+        this.onmousemoveAttr = onmousemove;
+    }
+
+    public void setOnmouseout(String onmouseout) {
+        this.onmouseoutAttr = onmouseout;
+    }
+
+    public void setOnfocus(String onfocus) {
+        this.onfocusAttr = onfocus;
+    }
+
+    public void setOnblur(String onblur) {
+        this.onblurAttr = onblur;
+    }
+
+    public void setOnkeypress(String onkeypress) {
+        this.onkeypressAttr = onkeypress;
+    }
+
+    public void setOnkeydown(String onkeydown) {
+        this.onkeydownAttr = onkeydown;
+    }
+
+    public void setOnkeyup(String onkeyup) {
+        this.onkeyupAttr = onkeyup;
+    }
+
+    public void setOnselect(String onselect) {
+        this.onselectAttr = onselect;
+    }
+
+    public void setOnchange(String onchange) {
+        this.onchangeAttr = onchange;
+    }
+
     public int doEndTag() throws JspException {
         try {
             OgnlValueStack stack = getStack();
             addParameter("tabindex", findString(tabindexAttr));
         }
 
-        if (onchangeAttr != null) {
-            addParameter("onchange", findString(onchangeAttr));
-        }
-
         if (onclickAttr != null) {
             addParameter("onclick", findString(onclickAttr));
         }
 
+        if (ondblclickAttr != null) {
+            addParameter("ondblclick", findString(ondblclickAttr));
+        }
+
+        if (onmousedownAttr != null) {
+            addParameter("onmousedown", findString(onmousedownAttr));
+        }
+
+        if (onmouseupAttr != null) {
+            addParameter("onmouseup", findString(onmouseupAttr));
+        }
+
+        if (onmouseoverAttr != null) {
+            addParameter("onmouseover", findString(onmouseoverAttr));
+        }
+
+        if (onmousemoveAttr != null) {
+            addParameter("onmousemove", findString(onmousemoveAttr));
+        }
+
+        if (onmouseoutAttr != null) {
+            addParameter("onmouseout", findString(onmouseoutAttr));
+        }
+
+        if (onfocusAttr != null) {
+            addParameter("onfocus", findString(onfocusAttr));
+        }
+
+        if (onblurAttr != null) {
+            addParameter("onblur", findString(onblurAttr));
+        }
+
+        if (onkeypressAttr != null) {
+            addParameter("onkeypress", findString(onkeypressAttr));
+        }
+
+        if (onkeydownAttr != null) {
+            addParameter("onkeydown", findString(onkeydownAttr));
+        }
+
+        if (onkeyupAttr != null) {
+            addParameter("onkeyup", findString(onkeyupAttr));
+        }
+
+        if (onselectAttr != null) {
+            addParameter("onselect", findString(onselectAttr));
+        }
+
+        if (onchangeAttr != null) {
+            addParameter("onchange", findString(onchangeAttr));
+        }
+
         if (cssClassAttr != null) {
             addParameter("cssClass", findString(cssClassAttr));
         }

File src/java/com/opensymphony/webwork/views/jsp/ui/ComboBoxTag.java

 
     protected String list;
     protected String maxlengthAttr;
-    protected String onkeyupAttr;
     protected String sizeAttr;
 
     //~ Methods ////////////////////////////////////////////////////////////////
         this.maxlengthAttr = aMaxlength;
     }
 
-    public void setOnkeyup(String onkeyup) {
-        this.onkeyupAttr = onkeyup;
-    }
-
     public void setSize(String aSize) {
         this.sizeAttr = aSize;
     }
         if (maxlengthAttr != null) {
             addParameter("maxlength", findValue(maxlengthAttr, Integer.class));
         }
-
-        if (onkeyupAttr != null) {
-            addParameter("onkeyup", findString(onkeyupAttr));
-        }
     }
 }

File src/java/com/opensymphony/webwork/views/jsp/ui/TextFieldTag.java

     //~ Instance fields ////////////////////////////////////////////////////////
 
     protected String maxLengthAttr;
-    protected String onkeyupAttr;
     protected String readonlyAttr;
     protected String sizeAttr;
 
         this.maxLengthAttr = aMaxLength;
     }
 
-    public void setOnkeyup(String onkeyup) {
-        this.onkeyupAttr = onkeyup;
-    }
-
     public void setReadonly(String readonly) {
         this.readonlyAttr = readonly;
     }
         if (readonlyAttr != null) {
             addParameter("readonly", findValue(readonlyAttr, Boolean.class));
         }
-
-        if (onkeyupAttr != null) {
-            addParameter("onkeyup", findString(onkeyupAttr));
-        }
     }
 
     protected String getDefaultTemplate() {

File src/java/com/opensymphony/webwork/views/jsp/ui/TextareaTag.java

     //~ Instance fields ////////////////////////////////////////////////////////
 
     protected String colsAttr;
-    protected String onkeyupAttr;
     protected String readonlyAttr;
     protected String rowsAttr;
 
         this.colsAttr = cols;
     }
 
-    public void setOnkeyup(String onkeyup) {
-        this.onkeyupAttr = onkeyup;
-    }
-
     public void setReadonly(String readonly) {
         this.readonlyAttr = readonly;
     }
             addParameter("readonly", findValue(readonlyAttr, Boolean.class));
         }
 
-        if (onkeyupAttr != null) {
-            addParameter("onkeyup", findString(onkeyupAttr));
-        }
-
         if (colsAttr != null) {
             addParameter("cols", findString(colsAttr));
         }

File src/java/template/simple/checkbox.vm

 #if ($parameters.nameValue)        checked="checked"                                        #end
 #if ($parameters.disabled == true) disabled="disabled"                                      #end
 #if ($parameters.tabindex)         tabindex="$!webwork.htmlEncode($parameters.tabindex)"    #end
-#if ($parameters.onchange)         onchange="$!webwork.htmlEncode($parameters.onchange)"    #end
-#if ($parameters.onclick)          onclick="$!webwork.htmlEncode($parameters.onclick)"      #end
 #if ($parameters.id)               id="$!webwork.htmlEncode($parameters.id)"                #end
 #if ($parameters.cssClass)         class="$!webwork.htmlEncode($parameters.cssClass)"       #end
 #if ($parameters.cssStyle)         style="$!webwork.htmlEncode($parameters.cssStyle)"       #end
+#parse("/template/simple/scripting-events.vm")
 />

File src/java/template/simple/combobox.vm

 #if ($parameters.maxlength)        maxlength="$!webwork.htmlEncode($parameters.maxlength)"  #end
 #if ($parameters.nameValue)        value="$!webwork.htmlEncode($parameters.nameValue)"      #end
 #if ($parameters.disabled == true) disabled="disabled"                                      #end
-#if ($parameters.onkeyup)          onkeyup="$!webwork.htmlEncode($parameters.onkeyup)"      #end
 #if ($parameters.tabindex)         tabindex="$!webwork.htmlEncode($parameters.tabindex)"    #end
-#if ($parameters.onchange)         onchange="$!webwork.htmlEncode($parameters.onchange)"    #end
-#if ($parameters.onclick)          onclick="$!webwork.htmlEncode($parameters.onclick)"      #end
 #if ($parameters.id)               id="$!webwork.htmlEncode($parameters.id)"                #end
 #if ($parameters.cssClass)         class="$!webwork.htmlEncode($parameters.cssClass)"       #end
 #if ($parameters.cssStyle)         style="$!webwork.htmlEncode($parameters.cssStyle)"       #end
+#parse("/template/simple/scripting-events.vm")
 /><br/>
 
 #if ($parameters.list)

File src/java/template/simple/file.vm

 #if ($parameters.disabled == true) disabled="disabled"                                      #end
 #if ($parameters.id)               id="$!webwork.htmlEncode($parameters.id)"                #end
 #if ($parameters.accept)           accept="$!webwork.htmlEncode($parameters.accept)"        #end
-#if ($parameters.onchange)         onchange="$!parameters.onchange"                         #end
-#if ($parameters.onclick)          onchange="$!parameters.onclick"                          #end
 #if ($parameters.cssClass)         class="$!webwork.htmlEncode($parameters.cssClass)"       #end
 #if ($parameters.cssStyle)         style="$!webwork.htmlEncode($parameters.cssStyle)"       #end
+#parse("/template/simple/scripting-events.vm")
 />

File src/java/template/simple/password.vm

 
 #if ($parameters.disabled == true) disabled="disabled"                                      #end
 #if ($parameters.readonly)         readonly="readonly"                                      #end
-#if ($parameters.onkeyup)          onkeyup="$!webwork.htmlEncode($parameters.onkeyup)"      #end
 #if ($parameters.tabindex)         tabindex="$!webwork.htmlEncode($parameters.tabindex)"    #end
-#if ($parameters.onchange)         onchange="$!webwork.htmlEncode($parameters.onchange)"    #end
-#if ($parameters.onclick)          onclick="$!webwork.htmlEncode($parameters.onclick)"      #end
 #if ($parameters.id)               id="$!webwork.htmlEncode($parameters.id)"                #end
 #if ($parameters.cssClass)         class="$!webwork.htmlEncode($parameters.cssClass)"       #end
+#parse("/template/simple/scripting-events.vm")
 />

File src/java/template/simple/radiomap.vm

             #if ($itemKey)              value="$!webwork.htmlEncode($itemKey)"                #end
             #if ($parameters.disabled)  disabled="disabled"                                   #end
             #if ($parameters.tabindex)  tabindex="$!webwork.htmlEncode($parameters.tabindex)" #end
-            #if ($parameters.onchange)  onchange="$!webwork.htmlEncode($parameters.onchange)" #end
-            #if ($parameters.onclick)   onclick="$!webwork.htmlEncode($parameters.onclick)"   #end
             #if ($parameters.cssClass)  class="$!webwork.htmlEncode($parameters.cssClass)"    #end
             #if ($parameters.cssStyle)  style="$!webwork.htmlEncode($parameters.cssStyle)"    #end
+            #parse("/template/simple/scripting-events.vm")
         /><label for="$!webwork.htmlEncode($parameters.name)$!webwork.htmlEncode($itemKey)">$!itemValue</label>
 
         #set ($trash = $stack.pop())

File src/java/template/simple/scripting-events.vm

+#if ($parameters.onclick)     onclick="$!webwork.htmlEncode($parameters.onclick)"         #end
+#if ($parameters.ondblclick)  ondblclick="$!webwork.htmlEncode($parameters.ondblclick)"   #end
+#if ($parameters.onmousedown) onmousedown="$!webwork.htmlEncode($parameters.onmousedown)" #end
+#if ($parameters.onmouseup)   onmouseup="$!webwork.htmlEncode($parameters.onmouseup)"     #end
+#if ($parameters.onmouseover) onmouseover="$!webwork.htmlEncode($parameters.onmouseover)" #end
+#if ($parameters.onmousemove) onmousemove="$!webwork.htmlEncode($parameters.onmousemove)" #end
+#if ($parameters.onmouseout)  onmouseout="$!webwork.htmlEncode($parameters.onmouseout)"   #end
+#if ($parameters.onfocus)     onfocus="$!webwork.htmlEncode($parameters.onfocus)"         #end
+#if ($parameters.onblur)      onblur="$!webwork.htmlEncode($parameters.onblur)"           #end
+#if ($parameters.onkeypress)  onkeypress="$!webwork.htmlEncode($parameters.onkeypress)"   #end
+#if ($parameters.onkeydown)   onkeydown="$!webwork.htmlEncode($parameters.onkeydown)"     #end
+#if ($parameters.onkeyup)     onkeyup="$!webwork.htmlEncode($parameters.onkeyup)"         #end
+#if ($parameters.onselect)    onselect="$!webwork.htmlEncode($parameters.onselect)"       #end
+#if ($parameters.onchange)    onchange="$!webwork.htmlEncode($parameters.onchange)"       #end

File src/java/template/simple/select.vm

     #if ($parameters.size)             size="$!webwork.htmlEncode($parameters.size)"         #end
     #if ($parameters.disabled)         disabled="disabled"                                   #end
     #if ($parameters.tabindex)         tabindex="$!webwork.htmlEncode($parameters.tabindex)" #end
-    #if ($parameters.onchange)         onchange="$!webwork.htmlEncode($parameters.onchange)" #end
-    #if ($parameters.onclick)          onclick="$!webwork.htmlEncode($parameters.onclick)"   #end
     #if ($parameters.id)               id="$!webwork.htmlEncode($parameters.id)"             #end
     #if ($parameters.multiple)         multiple="multiple"                                   #end
     #if ($parameters.cssClass)         class="$!webwork.htmlEncode($parameters.cssClass)"    #end
     #if ($parameters.cssStyle)         style="$!webwork.htmlEncode($parameters.cssStyle)"    #end
+    #parse("/template/simple/scripting-events.vm")
 >
 
 #if ($parameters.headerKey && $parameters.headerValue)

File src/java/template/simple/text.vm

 #if ($parameters.nameValue)        value="$!webwork.htmlEncode($parameters.nameValue)"      #end
 #if ($parameters.disabled == true) disabled="disabled"                                      #end
 #if ($parameters.readonly)         readonly="readonly"                                      #end
-#if ($parameters.onkeyup)          onkeyup="$!webwork.htmlEncode($parameters.onkeyup)"      #end
 #if ($parameters.tabindex)         tabindex="$!webwork.htmlEncode($parameters.tabindex)"    #end
-#if ($parameters.onchange)         onchange="$!webwork.htmlEncode($parameters.onchange)"    #end
-#if ($parameters.onclick)          onclick="$!webwork.htmlEncode($parameters.onclick)"    #end
 #if ($parameters.id)               id="$!webwork.htmlEncode($parameters.id)"                #end
 #if ($parameters.cssClass)         class="$!webwork.htmlEncode($parameters.cssClass)"       #end
 #if ($parameters.cssStyle)         style="$!webwork.htmlEncode($parameters.cssStyle)"       #end
+#parse("/template/simple/scripting-events.vm")
 />

File src/java/template/simple/textarea.vm

 #if ($parameters.nameValue)        value="$!webwork.htmlEncode($parameters.nameValue)"      #end
 #if ($parameters.disabled == true) disabled="disabled"                                      #end
 #if ($parameters.readonly)         readonly="readonly"                                      #end
-#if ($parameters.onkeyup)          onkeyup="$!webwork.htmlEncode($parameters.onkeyup)"      #end
 #if ($parameters.tabindex)         tabindex="$!webwork.htmlEncode($parameters.tabindex)"    #end
-#if ($parameters.onchange)         onchange="$!webwork.htmlEncode($parameters.onchange)"    #end
-#if ($parameters.onclick)          onclick="$!webwork.htmlEncode($parameters.onclick)"      #end
 #if ($parameters.id)               id="$!webwork.htmlEncode($parameters.id)"                #end
 #if ($parameters.cssClass)         class="$!webwork.htmlEncode($parameters.cssClass)"       #end
 #if ($parameters.cssStyle)         style="$!webwork.htmlEncode($parameters.cssStyle)"       #end
+#parse("/template/simple/scripting-events.vm")
 >#if ($parameters.nameValue)$!webwork.htmlEncode($parameters.nameValue)#end</textarea>

File src/test/com/opensymphony/webwork/views/jsp/ui/Checkbox-1.txt

     <td valign="top" colspan="2">
         <table width="100%" border="0" cellpadding="0" cellspacing="0">
             <tr>
-                <td valign="top"><input type="checkbox" name="foo" value="baz" checked="checked" id="someId" /></td>
+                <td valign="top"><input type="checkbox" name="foo" value="baz" checked="checked" id="someId" onfocus="test();" /></td>
                 <td width="100%" valign="top"><label for="someId" class="checkboxLabel">mylabel</label></td>
             </tr>
         </table>

File src/test/com/opensymphony/webwork/views/jsp/ui/Checkbox-3.txt

     <td valign="top" colspan="2">
         <table width="100%" border="0" cellpadding="0" cellspacing="0">
             <tr>
-                <td valign="top"><input type="checkbox" name="foo" value="baz" checked="checked" /></td>
+                <td valign="top"><input type="checkbox" name="foo" value="baz" checked="checked" onclick="test();" ondblclick="test();" /></td>
                 <td width="100%" valign="top"><label class="checkboxErrorLabel">mylabel</label></td>
             </tr>
         </table>

File src/test/com/opensymphony/webwork/views/jsp/ui/CheckboxTest.java

         tag.setLabel("'mylabel'");
         tag.setName("'foo'");
         tag.setFieldValue("'baz'");
+        tag.setOnfocus("'test();'");
 
         int result = tag.doEndTag();
 
         tag.setLabel("'mylabel'");
         tag.setName("'foo'");
         tag.setFieldValue("'baz'");
+        tag.setOndblclick("'test();'");
+        tag.setOnclick("'test();'");
 
         int result = tag.doEndTag();
 

File src/test/com/opensymphony/webwork/views/jsp/ui/Select-2.txt

 <tr>
     <td align="right" valign="top"><label class="label">mylabel:</label></td>
-    <td><select name="collection" multiple="multiple" >
+    <td><select name="collection" multiple="multiple" onmousedown="alert('onmousedown');" onmouseup="alert('onmouseup');" onmouseover="alert('onmouseover');" onmousemove="alert('onmousemove');" onmouseout="alert('onmouseout');" >
             <option value="hello" selected="selected">world</option>
             <option value="foo" selected="selected">bar</option>
             <option value="cat" >dog</option>

File src/test/com/opensymphony/webwork/views/jsp/ui/SelectTest.java

         tag.setListKey("top[0]");
         tag.setListValue("top[1]");
         tag.setMultiple("true");
+        tag.setOnmousedown("'alert(\\'onmousedown\\');'");
+        tag.setOnmousemove("'alert(\\'onmousemove\\');'");
+        tag.setOnmouseout("'alert(\\'onmouseout\\');'");
+        tag.setOnmouseover("'alert(\\'onmouseover\\');'");
+        tag.setOnmouseup("'alert(\\'onmouseup\\');'");
 
         int result = tag.doEndTag();
 

File src/test/com/opensymphony/webwork/views/jsp/ui/Textarea-1.txt

                   value="bar"
                   disabled="disabled"
                   readonly="readonly"
-                  onkeyup="alert('hello');"
                   tabindex="5"
-                  onchange="alert('goodbye');"
-                  onclick="alert('onclick');"
                   id="the_id"
+                  onclick="alert('onclick');"
+                  onkeyup="alert('hello');"
+                  onchange="alert('goodbye');"
         >bar</textarea></td>
 </tr>

File src/test/com/opensymphony/webwork/views/jsp/ui/Textfield-3.txt

                name="myname"
                size="10"
                value="bar"
+               onblur="blahescape('somevalue');"
         /></td>
 </tr>

File src/test/com/opensymphony/webwork/views/jsp/ui/TextfieldTest.java

         tag.setName("'myname'");
         tag.setValue("foo");
         tag.setSize("'10'");
+        tag.setOnblur("'blahescape(\\'somevalue\\');'");
 
         tag.doEndTag();