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