You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by aw...@apache.org on 2007/08/14 18:26:48 UTC

svn commit: r565825 - in /myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main: java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java javascript/META-INF/adf/jsLibs/Core.js javascript/META-INF/adf/jsLibs/Page.js

Author: awiner
Date: Tue Aug 14 09:26:46 2007
New Revision: 565825

URL: http://svn.apache.org/viewvc?view=rev&rev=565825
Log:
Step 3 of TRINIDAD-96: Validators should be added incrementally, not set as a whole
- Move the array of hidden-fields-to-be-reset onto Page, and make it incremental too

Modified:
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Page.js

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java?view=diff&rev=565825&r1=565824&r2=565825
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java Tue Aug 14 09:26:46 2007
@@ -1085,10 +1085,9 @@
             // render the type="text/javascript" attribute in accessibility mode
             renderScriptTypeAttribute(context, arc);
 
-            writer.writeText("var _reset", null);
-            writer.writeText(XhtmlUtils.getJSIdentifier(fData.getName()),
-                             null);
-            writer.writeText("Names=[\"", null);
+            writer.writeText("TrPage.getInstance()._addResetFields('", null);
+            writer.writeText(fData.getName(), null);
+            writer.writeText("',[\"", null);
             writer.writeText(neededValues.get(0), null);
 
             for (int i = 1; i < realNeededIndex; i++)
@@ -1097,7 +1096,7 @@
               writer.writeText(neededValues.get(i), null);
             }
 
-            writer.writeText("\"];", null);
+            writer.writeText("\"]);", null);
             writer.endElement("script");
           }
         }

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js?view=diff&rev=565825&r1=565824&r2=565825
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js Tue Aug 14 09:26:46 2007
@@ -1782,7 +1782,7 @@
   if (doSubmit)
   {
     // reset any hidden form values before submitting
-    _resetHiddenValues(form);
+    TrPage.getInstance()._resetHiddenValues(form);
 
     if (isPartial)
     {
@@ -2084,40 +2084,6 @@
   {
   }
   return ( datatosend.substring(0, datatosend.length - 1));
-}
-
-
-
-
-/**
- * Resets any server-generated hidden values on the form passed in.
- * All hidden form values generated by the server on this form are set to
- * the empty string.
- */
-function _resetHiddenValues(
-  form
-  )
-{
-  var resetFields = window["_reset" + _getJavascriptId(form.name) + "Names"];
-  if (resetFields)
-  {
-    for (var i = 0; i < resetFields.length; i++)
-    {
-      var currField;
-      if (_agent.isPIE)
-      {
-        currField = form.elements[resetFields[i]];
-      }
-      else
-      {
-        currField = form[resetFields[i]];
-      }
-      if (currField)
-      {
-        currField.value = '';
-      }
-    }
-  }
 }
 
 

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Page.js
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Page.js?view=diff&rev=565825&r1=565824&r2=565825
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Page.js (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Page.js Tue Aug 14 09:26:46 2007
@@ -159,10 +159,64 @@
   }
 }
 
+TrPage.prototype._addResetFields = function(formName, resetNames)
+{
+  // Create the necessary objects
+  var resetFields = this._resetFields;
+  if (!resetFields)
+  {
+    resetFields = new Object();
+    this._resetFields = resetFields;
+  }
+
+  var formReset = resetFields[formName];
+  if (!formReset)
+  {
+    formReset = new Object();
+    resetFields[formName] = formReset;
+  }
+
+  // Store "name":true in the map for each such item
+  for (var i = 0; i < resetNames.length; i++)
+  {
+    formReset[resetNames[i]] = true;
+  }
+}
+
+TrPage.prototype._resetHiddenValues = function(form)
+{
+  var resetFields = this._resetFields;
+  if (resetFields)
+  {
+    var formReset = resetFields[form.getAttribute("name")];
+    if (formReset)
+    {
+      for (var k in formReset)
+      {
+        var currField = form[k];
+        // Code previously used form.elements.currField
+        // on PocketIE.  Dunno why the prior form would ever fail.
+        if (!currField)
+          currField = form.elements.currField;
+
+        if (currField)
+          currField.value = '';
+      }
+    }
+  }
+}
+
+/**
+ * Add reset callbacks for a form:
+ * @param formName the name of the form
+ * @param callMap a map from clientId to the JS function
+ *   that will reset that component
+ */
 TrPage.prototype._addResetCalls = function(
   formName,
   callMap)
 {
+  // Create the necessary objects
   var resetCalls = this._resetCalls;
   if (!resetCalls)
   {
@@ -177,6 +231,8 @@
     resetCalls[formName] = formReset;
   }
 
+  // NOTE: this map is never pruned.  Ideally, it would be,
+  // but in practice this is unlikely to be a major concern
   for (var k in callMap)
   {
     formReset[k] = callMap[k];