Author: adrianc
Date: Mon Nov  3 12:42:03 2014
New Revision: 1636339

URL: http://svn.apache.org/r1636339
Log:
Major overhaul of ModelForm.java:

1. Class and its nested classes were not thread-safe.
2. Bugs caused by C&P errors.
3. The "extends" feature had problems:
  3.1 Only a few class members were inherited from the parent form.
  3.2 Child forms modified the state of the parent form.
4. Bad null/empty checking.
5. Inefficient code.

Modified:
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormFactory.java
    
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java

Modified: 
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormFactory.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormFactory.java?rev=1636339&r1=1636338&r2=1636339&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormFactory.java 
(original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormFactory.java Mon 
Nov  3 12:42:03 2014
@@ -90,8 +90,7 @@ public class FormFactory {
             URL formFileUrl = servletContext.getResource(resourceName);
             Document formFileDoc = UtilXml.readXmlDocument(formFileUrl, true, 
true);
             Element formElement = 
UtilXml.firstChildElement(formFileDoc.getDocumentElement(), "form", "name", 
formName);
-            modelForm = new ModelForm(formElement, delegator.getModelReader(), 
dispatcher.getDispatchContext());
-            modelForm.setFormLocation(resourceName);
+            modelForm = new ModelForm(formElement, resourceName, 
delegator.getModelReader(), dispatcher.getDispatchContext());
             modelForm = formWebappCache.putIfAbsentAndGet(cacheKey, modelForm);
         }
         if (modelForm == null) {
@@ -126,8 +125,7 @@ public class FormFactory {
     }
 
     public static ModelForm createModelForm(Element formElement, ModelReader 
entityModelReader, DispatchContext dispatchContext, String formLocation, String 
formName) {
-        ModelForm modelForm = new ModelForm(formElement, entityModelReader, 
dispatchContext);
-        modelForm.setFormLocation(formLocation);
+        ModelForm modelForm = new ModelForm(formElement, formLocation, 
entityModelReader, dispatchContext);
         return modelForm;
     }
 }

Modified: 
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=1636339&r1=1636338&r2=1636339&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java 
(original)
+++ 
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java 
Mon Nov  3 12:42:03 2014
@@ -1090,7 +1090,7 @@ public final class MacroFormRenderer imp
             }
             updateAreas.add(new ModelForm.UpdateArea("submit", formId, 
backgroundSubmitRefreshTarget));
         }
-        boolean ajaxEnabled = (updateAreas != null || 
UtilValidate.isNotEmpty(backgroundSubmitRefreshTarget)) && 
this.javaScriptEnabled;
+        boolean ajaxEnabled = (UtilValidate.isNotEmpty(updateAreas) || 
UtilValidate.isNotEmpty(backgroundSubmitRefreshTarget)) && 
this.javaScriptEnabled;
         String ajaxUrl = "";
         if (ajaxEnabled) {
             ajaxUrl = createAjaxParamsFromUpdateAreas(updateAreas, "", 
context);
@@ -2014,7 +2014,7 @@ public final class MacroFormRenderer imp
             updateAreas = new LinkedList<ModelForm.UpdateArea>();
             updateAreas.add(new ModelForm.UpdateArea("change", id, 
autoCompleterTarget));
         }
-        boolean ajaxEnabled = updateAreas != null && this.javaScriptEnabled;
+        boolean ajaxEnabled = UtilValidate.isNotEmpty(updateAreas) && 
this.javaScriptEnabled;
         String autocomplete = "";
         if (!lookupField.getClientAutocompleteField() || !ajaxEnabled) {
             autocomplete = "off";


Reply via email to