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"; |
Free forum by Nabble | Edit this page |