You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mu...@apache.org on 2007/06/14 20:35:05 UTC
svn commit: r547350 - in /struts/struts2/trunk/core/src:
main/java/org/apache/struts2/components/
main/java/org/apache/struts2/views/jsp/ui/
main/resources/template/css_xhtml/ main/resources/template/xhtml/
site/resources/tags/ test/java/org/apache/str...
Author: musachy
Date: Thu Jun 14 11:35:04 2007
New Revision: 547350
URL: http://svn.apache.org/viewvc?view=rev&rev=547350
Log:
WW-1350 Autofocus element of a form, the id of the element to get the focus is specified in the "focusElement" attribute of the "form" tag
Added:
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-12.txt
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Form.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FormTag.java
struts/struts2/trunk/core/src/main/resources/template/css_xhtml/form-close.ftl
struts/struts2/trunk/core/src/main/resources/template/xhtml/form-close.ftl
struts/struts2/trunk/core/src/site/resources/tags/form.html
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Form.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Form.java?view=diff&rev=547350&r1=547349&r2=547350
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Form.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Form.java Thu Jun 14 11:35:04 2007
@@ -110,7 +110,8 @@
protected String portletMode;
protected String windowState;
protected String acceptcharset;
-
+ protected String focusElement;
+
protected boolean enableDynamicMethodInvocation = true;
protected Configuration configuration;
protected ObjectFactory objectFactory;
@@ -201,6 +202,10 @@
// we have this if check so we don't do this twice (on open and close of the template)
addParameter("tagNames", new ArrayList());
}
+
+ if (focusElement != null) {
+ addParameter("focusElement", findString(focusElement));
+ }
}
/**
@@ -484,5 +489,10 @@
@StrutsTagAttribute(description="The accepted charsets for this form. The values may be comma or blank delimited.")
public void setAcceptcharset(String acceptcharset) {
this.acceptcharset = acceptcharset;
+ }
+
+ @StrutsTagAttribute(description="Id of element that will receive the focus when page loads.")
+ public void setFocusElement(String focusElement) {
+ this.focusElement = focusElement;
}
}
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FormTag.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FormTag.java?view=diff&rev=547350&r1=547349&r2=547350
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FormTag.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/FormTag.java Thu Jun 14 11:35:04 2007
@@ -48,7 +48,8 @@
protected String portletMode;
protected String windowState;
protected String acceptcharset;
-
+ protected String focusElement;
+
public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
return new Form(stack, req, res);
}
@@ -66,6 +67,7 @@
form.setPortletMode(portletMode);
form.setWindowState(windowState);
form.setAcceptcharset(acceptcharset);
+ form.setFocusElement(focusElement);
}
@@ -107,5 +109,9 @@
public void setAcceptcharset(String acceptcharset) {
this.acceptcharset = acceptcharset;
+ }
+
+ public void setFocusElement(String focusElement) {
+ this.focusElement = focusElement;
}
}
Modified: struts/struts2/trunk/core/src/main/resources/template/css_xhtml/form-close.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/template/css_xhtml/form-close.ftl?view=diff&rev=547350&r1=547349&r2=547350
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/template/css_xhtml/form-close.ftl (original)
+++ struts/struts2/trunk/core/src/main/resources/template/css_xhtml/form-close.ftl Thu Jun 14 11:35:04 2007
@@ -1,3 +1,13 @@
<#include "/${parameters.templateDir}/css_xhtml/control-close.ftl" />
<#include "/${parameters.templateDir}/simple/form-close.ftl" />
<#include "/${parameters.templateDir}/xhtml/form-close-validate.ftl" />
+<#if parameters.focusElement?if_exists != "">
+<script type="text/javascript">
+ StrutsUtils.addOnLoad(function() {
+ var element = document.getElementById("${parameters.focusElement?html}");
+ if(element) {
+ element.focus();
+ }
+ });
+</script>
+</#if>
Modified: struts/struts2/trunk/core/src/main/resources/template/xhtml/form-close.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/template/xhtml/form-close.ftl?view=diff&rev=547350&r1=547349&r2=547350
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/template/xhtml/form-close.ftl (original)
+++ struts/struts2/trunk/core/src/main/resources/template/xhtml/form-close.ftl Thu Jun 14 11:35:04 2007
@@ -1,3 +1,13 @@
<#include "/${parameters.templateDir}/xhtml/control-close.ftl" />
<#include "/${parameters.templateDir}/simple/form-close.ftl" />
<#include "/${parameters.templateDir}/xhtml/form-close-validate.ftl" />
+<#if parameters.focusElement?if_exists != "">
+<script type="text/javascript">
+ StrutsUtils.addOnLoad(function() {
+ var element = document.getElementById("${parameters.focusElement?html}");
+ if(element) {
+ element.focus();
+ }
+ });
+</script>
+</#if>
Modified: struts/struts2/trunk/core/src/site/resources/tags/form.html
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/site/resources/tags/form.html?view=diff&rev=547350&r1=547349&r2=547350
==============================================================================
--- struts/struts2/trunk/core/src/site/resources/tags/form.html (original)
+++ struts/struts2/trunk/core/src/site/resources/tags/form.html Thu Jun 14 11:35:04 2007
@@ -84,6 +84,14 @@
<td align="left" valign="top">HTML form enctype attribute</td>
</tr>
<tr>
+ <td align="left" valign="top">focusElement</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">true</td>
+ <td align="left" valign="top">String</td>
+ <td align="left" valign="top">Id of element that will receive the focus when page loads.</td>
+ </tr>
+ <tr>
<td align="left" valign="top">id</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java?view=diff&rev=547350&r1=547349&r2=547350
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java Thu Jun 14 11:35:04 2007
@@ -61,13 +61,23 @@
tag.setEnctype("myEncType");
tag.setTitle("mytitle");
tag.setOnsubmit("submitMe()");
-
tag.doStartTag();
tag.doEndTag();
verify(FormTag.class.getResource("Formtag-9.txt"));
}
+ public void testFormWithFocusElement() throws Exception {
+ FormTag tag = new FormTag();
+ tag.setTheme("xhtml");
+ tag.setPageContext(pageContext);
+ tag.setAction("testAction");
+ tag.setFocusElement("felement");
+ tag.doStartTag();
+ tag.doEndTag();
+
+ verify(FormTag.class.getResource("Formtag-12.txt"));
+ }
public void testFormWithActionAttributeContainingBothActionAndMethodAndNamespace() throws Exception {
FormTag tag = new FormTag();
Added: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-12.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-12.txt?view=auto&rev=547350
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-12.txt (added)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-12.txt Thu Jun 14 11:35:04 2007
@@ -0,0 +1,13 @@
+<form id="testAction" name="testAction" onsubmit="return true;" action="/testAction.action" method="post">
+<table class="wwFormTable">
+</table>
+</form>
+
+<script type="text/javascript">
+ StrutsUtils.addOnLoad(function() {
+ var element = document.getElementById("felement");
+ if(element) {
+ element.focus();
+ }
+ });
+</script>
\ No newline at end of file