You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/07/27 06:04:37 UTC

svn commit: r425949 - in /tapestry/tapestry4/trunk/tapestry-framework/src: java/org/apache/tapestry/form/FormSupportImpl.java test/org/apache/tapestry/form/FormSupportTest.java

Author: jkuhnert
Date: Wed Jul 26 21:04:36 2006
New Revision: 425949

URL: http://svn.apache.org/viewvc?rev=425949&view=rev
Log:
The agony. I can't believe I let such a huge bug through the cracks. Must've been all of that easymock refactoring.

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java?rev=425949&r1=425948&r2=425949&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java Wed Jul 26 21:04:36 2006
@@ -526,14 +526,15 @@
         _writer.end();
 
         String fieldId = _delegate.getFocusField();
-
-        if (fieldId == null || _pageRenderSupport == null)
+        
+        if (_pageRenderSupport == null)
             return;
-
+        
         // If the form doesn't support focus, or the focus has already been set by a different form,
         // then do nothing.
-
-        if (_form.getFocus() && _cycle.getAttribute(FIELD_FOCUS_ATTRIBUTE) != null) {
+        
+        if (fieldId != null && _form.getFocus() 
+                && _cycle.getAttribute(FIELD_FOCUS_ATTRIBUTE) != null) {
             
             _pageRenderSupport.addInitializationScript(_form, "tapestry.form.focusField('" + fieldId + "');");
             _cycle.setAttribute(FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java?rev=425949&r1=425948&r2=425949&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java Wed Jul 26 21:04:36 2006
@@ -156,7 +156,7 @@
         MockForm form = new MockForm(delegate);
 
         trainIsRewound(cycle, form, false);
-
+        
         PageRenderSupport support = newPageRenderSupport();
 
         trainGetPageRenderSupport(cycle, support);
@@ -202,14 +202,13 @@
         nested.close();
 
         writer.end();
-
+        
         trainGetFocusField(delegate, "wilma");
+        
+        // effectively means someone else has already claimed focus
+        
         trainGetFieldFocus(cycle, null);
 
-        trainFocus(support, form);
-
-        trainSetFieldFocus(cycle);
-
         replay();
 
         fs.render("post", render, link, null, null);
@@ -1049,7 +1048,11 @@
         // Side test: check for another form already grabbing focus
 
         trainGetFieldFocus(cycle, Boolean.TRUE);
-
+        
+        support.addInitializationScript(form, "tapestry.form.focusField('barney');");
+        
+        cycle.setAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);
+        
         replay();
 
         fs.render("post", render, link, null, null);
@@ -1198,7 +1201,11 @@
         // Side test: check for another form already grabbing focus
 
         trainGetFieldFocus(cycle, Boolean.TRUE);
-
+        
+        support.addInitializationScript(form, "tapestry.form.focusField('barney');");
+        
+        cycle.setAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE, true);
+        
         replay();
 
         fs.render("post", render, link, "https", new Integer(443));
@@ -1393,11 +1400,6 @@
         writer.attribute("id", form.getName() + "hidden");
     }
 
-    private void trainFocus(PageRenderSupport support, IForm form)
-    {
-        support.addInitializationScript(form, "tapestry.form.focusField('wilma');");
-    }
-
     private void trainGetFieldFocus(IRequestCycle cycle, Object value)
     {
         expect(cycle.getAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE)).andReturn(value);
@@ -1461,9 +1463,4 @@
         support.addInitializationScript(form, "dojo.require(\"tapestry.form\");"
                 + "tapestry.form.registerForm('" + formId + "');");
     }
-
-    private void trainSetFieldFocus(IRequestCycle cycle)
-    {
-        cycle.setAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);
-    }
-}
\ No newline at end of file
+}