svn commit: r1650357 - in /ofbiz/trunk/framework/widget/src/org/ofbiz/widget: form/FormRenderer.java form/MacroFormRenderer.java form/ModelForm.java html/HtmlFormRenderer.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1650357 - in /ofbiz/trunk/framework/widget/src/org/ofbiz/widget: form/FormRenderer.java form/MacroFormRenderer.java form/ModelForm.java html/HtmlFormRenderer.java

adrianc
Author: adrianc
Date: Thu Jan  8 19:25:41 2015
New Revision: 1650357

URL: http://svn.apache.org/r1650357
Log:
Form widget improvement: Set focus on first control when rendering a single form.

Modified:
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.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/html/HtmlFormRenderer.java

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java?rev=1650357&r1=1650356&r2=1650357&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java Thu Jan  8 19:25:41 2015
@@ -89,12 +89,22 @@ public class FormRenderer {
         }
     }
 
+    public static String getFocusFieldName(ModelForm modelForm, Map<String, Object> context) {
+        String focusFieldName = (String) context.get(modelForm.getName().concat(".focusFieldName"));
+        if (focusFieldName == null) {
+            return "";
+        }
+        return focusFieldName;
+    }
+
     private final ModelForm modelForm;
     private final FormStringRenderer formStringRenderer;
+    private String focusFieldName;
 
     public FormRenderer(ModelForm modelForm, FormStringRenderer formStringRenderer) {
         this.modelForm = modelForm;
         this.formStringRenderer = formStringRenderer;
+        this.focusFieldName = modelForm.getFocusFieldName();
     }
 
     private Collection<List<ModelFormField>> getFieldListsByPosition(List<ModelFormField> modelFormFieldList) {
@@ -111,6 +121,10 @@ public class FormRenderer {
         return fieldsByPosition.values();
     }
 
+    public String getFocusFieldName() {
+        return focusFieldName;
+    }
+
     private List<ModelFormField> getHiddenIgnoredFields(Map<String, Object> context, Set<String> alreadyRendered,
             List<ModelFormField> fieldList, int position) {
         /*
@@ -1093,6 +1107,15 @@ public class FormRenderer {
                 continue;
             }
             alreadyRendered.add(currentFormField.getName());
+            if (focusFieldName.isEmpty()) {
+                if (fieldInfo.getFieldType() != FieldInfo.DISPLAY && fieldInfo.getFieldType() != FieldInfo.HIDDEN
+                        && fieldInfo.getFieldType() != FieldInfo.DISPLAY_ENTITY
+                        && fieldInfo.getFieldType() != FieldInfo.IGNORED
+                        && fieldInfo.getFieldType() != FieldInfo.IMAGE) {
+                    focusFieldName = currentFormField.getName();
+                    context.put(modelForm.getName().concat(".focusFieldName"), focusFieldName);
+                }
+            }
 
             boolean stayingOnRow = false;
             if (lastFormField != null) {

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=1650357&r1=1650356&r2=1650357&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 Thu Jan  8 19:25:41 2015
@@ -1347,7 +1347,7 @@ public final class MacroFormRenderer imp
     }
 
     public void renderFormClose(Appendable writer, Map<String, Object> context, ModelForm modelForm) throws IOException {
-        String focusFieldName = modelForm.getfocusFieldName();
+        String focusFieldName = FormRenderer.getFocusFieldName(modelForm, context);
         String formName = FormRenderer.getCurrentFormName(modelForm, context);
         String containerId = FormRenderer.getCurrentContainerId(modelForm, context);
         String hasRequiredField = "";

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java?rev=1650357&r1=1650356&r2=1650357&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java Thu Jan  8 19:25:41 2015
@@ -730,12 +730,8 @@ public class ModelForm extends ModelWidg
         sortOrderFields.trimToSize();
         this.sortOrderFields = Collections.unmodifiableList(sortOrderFields);
         String focusFieldName = formElement.getAttribute("focus-field-name");
-        if (focusFieldName.isEmpty()) {
-            if (parentModelForm != null) {
-                focusFieldName = parentModelForm.focusFieldName;
-            } else {
-                // TODO: Set this automatically if not specified
-            }
+        if (focusFieldName.isEmpty() && parentModelForm != null) {
+            focusFieldName = parentModelForm.focusFieldName;
         }
         this.focusFieldName = focusFieldName;
     }
@@ -1006,10 +1002,6 @@ public class ModelForm extends ModelWidg
         return fieldList;
     }
 
-    public String getfocusFieldName() {
-        return this.focusFieldName;
-    }
-
     public String getFocusFieldName() {
         return focusFieldName;
     }

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java?rev=1650357&r1=1650356&r2=1650357&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java Thu Jan  8 19:25:41 2015
@@ -1223,7 +1223,7 @@ public class HtmlFormRenderer extends Ht
      */
     public void renderFormClose(Appendable writer, Map<String, Object> context, ModelForm modelForm) throws IOException {
         writer.append("</form>");
-        String focusFieldName = modelForm.getfocusFieldName();
+        String focusFieldName = FormRenderer.getFocusFieldName(modelForm, context);
         if (UtilValidate.isNotEmpty(focusFieldName)) {
             appendWhitespace(writer);
             writer.append("<script language=\"JavaScript\" type=\"text/javascript\">");