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 05:46:21 UTC

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

Author: jkuhnert
Date: Wed Jul 26 20:46:21 2006
New Revision: 425944

URL: http://svn.apache.org/viewvc?rev=425944&view=rev
Log:
Fixed bug that caused form initilization scripts (for validation) to not be registered if form focus was disabled. Oops!

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/   (props changed)
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java

Propchange: tapestry/tapestry4/trunk/tapestry-framework/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed Jul 26 20:46:21 2006
@@ -1,3 +1,5 @@
+
 target
 classes
 cachedir
+null

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=425944&r1=425943&r2=425944&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 20:46:21 2006
@@ -533,11 +533,11 @@
         // 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)
-            return;
-        
-        _pageRenderSupport.addInitializationScript(_form, "tapestry.form.focusField('" + fieldId + "');");
-        _cycle.setAttribute(FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);
+        if (_form.getFocus() && _cycle.getAttribute(FIELD_FOCUS_ATTRIBUTE) != null) {
+            
+            _pageRenderSupport.addInitializationScript(_form, "tapestry.form.focusField('" + fieldId + "');");
+            _cycle.setAttribute(FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);
+        }
         
         // register the validation profile with client side form manager
         

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java?rev=425944&r1=425943&r2=425944&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java Wed Jul 26 20:46:21 2006
@@ -325,6 +325,50 @@
         verify();
     }
 
+    public void test_Focus_Disabled()
+    {
+        IMarkupWriter writer = newWriter();
+        IRequestCycle cycle = newCycle();
+        FormSupport support = newFormSupport();
+        WebResponse response = newResponse();
+        IEngineService direct = newEngineService();
+        ILink link = newLink();
+        IRender render = newRender();
+        IValidationDelegate delegate = newDelegate();
+        
+        Form form = newInstance(FormFixture.class, new Object[]
+        { "id", "myform", "expectedWriter", writer, "expectedRequestCycle", cycle,
+                "formSupport", support, "response", response, "directService", direct, "method",
+                "post", "delegate", delegate, "focus", false });
+
+        trainStoreForm(cycle, form);
+        
+        trainIsRewinding(support, false);
+        
+        trainGetUniqueId(cycle, "myform", "myform_1");
+        
+        trainGetNamespace(response, "$ns");
+        
+        trainGetLinkCheckIgnoreParameter(
+                direct,
+                cycle,
+                true,
+                new DirectServiceParameter(form),
+                link);
+        
+        trainRender(support, link, render, null, null);
+        
+        TapestryUtils.removeForm(cycle);
+
+        delegate.setFormComponent(null);
+        
+        replay();
+
+        form.render(writer, cycle);
+
+        verify();
+    }
+    
     private IValidationDelegate newDelegate(boolean hasErrors)
     {
         IValidationDelegate delegate = newMock(IValidationDelegate.class);