I am trying to update the patch attached to this JIRA
https://issues.apache.org/jira/browse/OFBIZ-4021 to compile againg after this change. I am wondering if I could use the new mainFieldList David has introduced here but I have not well understood what the group-columns stuff does. Could anyone please give a look to the patch attached in the JIRA? I think it could be a good improvement to the form widget. Thank you, Bruno 2010/11/20 <[hidden email]> > Author: jonesde > Date: Sat Nov 20 09:32:30 2010 > New Revision: 1037146 > > URL: http://svn.apache.org/viewvc?rev=1037146&view=rev > Log: > Added new group-columns attribute to form element to not group input/other > columns if not desired, defaults to true which is the old/original behavior > > Modified: > ofbiz/trunk/framework/widget/dtd/widget-form.xsd > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java > > Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?rev=1037146&r1=1037145&r2=1037146&view=diff > > ============================================================================== > --- ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original) > +++ ofbiz/trunk/framework/widget/dtd/widget-form.xsd Sat Nov 20 09:32:30 > 2010 > @@ -155,6 +155,14 @@ under the License. > </xs:restriction> > </xs:simpleType> > </xs:attribute> > + <xs:attribute name="group-columns" default="true"> > + <xs:simpleType> > + <xs:restriction base="xs:token"> > + <xs:enumeration value="true"/> > + <xs:enumeration value="false"/> > + </xs:restriction> > + </xs:simpleType> > + </xs:attribute> > <xs:attribute type="xs:integer" name="view-size"> > <xs:annotation><xs:documentation>The number of items to display > per page</xs:documentation></xs:annotation> > </xs:attribute> > > 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=1037146&r1=1037145&r2=1037146&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 > Sat Nov 20 09:32:30 2010 > @@ -112,6 +112,7 @@ public class ModelForm extends ModelWidg > protected String paginateTargetAnchor; > protected String paginateStyle; > protected boolean separateColumns = false; > + protected boolean groupColumns = true; > protected boolean useRowSubmit = false; > protected FlexibleStringExpander targetWindowExdr; > protected String defaultRequiredFieldStyle; > @@ -285,6 +286,7 @@ public class ModelForm extends ModelWidg > this.defaultTooltipStyle = parent.defaultTooltipStyle; > this.itemIndexSeparator = parent.itemIndexSeparator; > this.separateColumns = parent.separateColumns; > + this.groupColumns = parent.groupColumns; > this.targetType = parent.targetType; > this.defaultMapName = parent.defaultMapName; > this.targetWindowExdr = parent.targetWindowExdr; > @@ -460,6 +462,11 @@ public class ModelForm extends ModelWidg > if (sepColumns != null && sepColumns.equalsIgnoreCase("true")) > separateColumns = true; > } > + if (formElement.hasAttribute("group-columns")) { > + String groupColumnsStr = > formElement.getAttribute("group-columns"); > + if (groupColumnsStr != null && > groupColumnsStr.equalsIgnoreCase("false")) > + groupColumns = false; > + } > if (formElement.hasAttribute("use-row-submit")) { > String rowSubmit = formElement.getAttribute("use-row-submit"); > if (rowSubmit != null && rowSubmit.equalsIgnoreCase("true")) > @@ -1236,7 +1243,8 @@ public class ModelForm extends ModelWidg > > Map<String, List<ModelFormField>> fieldRow = > UtilMisc.toMap("displayBefore", innerDisplayHyperlinkFieldsBegin, > "inputFields", > innerFormFields, > - "displayAfter", > innerDisplayHyperlinkFieldsEnd); > + "displayAfter", > innerDisplayHyperlinkFieldsEnd, > + "mainFieldList", > mainFieldList); > fieldRowsByPosition.add(fieldRow); > } > // =========================== > @@ -1246,6 +1254,7 @@ public class ModelForm extends ModelWidg > List<ModelFormField> innerDisplayHyperlinkFieldsBegin = > listsMap.get("displayBefore"); > List<ModelFormField> innerFormFields = > listsMap.get("inputFields"); > List<ModelFormField> innerDisplayHyperlinkFieldsEnd = > listsMap.get("displayAfter"); > + List<ModelFormField> mainFieldList = > listsMap.get("mainFieldList"); > > int numOfCells = innerDisplayHyperlinkFieldsBegin.size() + > innerDisplayHyperlinkFieldsEnd.size() + > @@ -1257,57 +1266,81 @@ public class ModelForm extends ModelWidg > > if (numOfCells > 0) { > formStringRenderer.renderFormatHeaderRowOpen(writer, > context, this); > - Iterator<ModelFormField> > innerDisplayHyperlinkFieldsBeginIt = > innerDisplayHyperlinkFieldsBegin.iterator(); > - while (innerDisplayHyperlinkFieldsBeginIt.hasNext()) { > - ModelFormField modelFormField = > innerDisplayHyperlinkFieldsBeginIt.next(); > - // span columns only if this is the last column in the > row (not just in this first list) > - if (innerDisplayHyperlinkFieldsBeginIt.hasNext() || > numOfCells > innerDisplayHyperlinkFieldsBegin.size()) { > - > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, 1); > - } else { > - > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, numOfColumnsToSpan); > + > + if (this.groupColumns) { > + Iterator<ModelFormField> > innerDisplayHyperlinkFieldsBeginIt = > innerDisplayHyperlinkFieldsBegin.iterator(); > + while (innerDisplayHyperlinkFieldsBeginIt.hasNext()) { > + ModelFormField modelFormField = > innerDisplayHyperlinkFieldsBeginIt.next(); > + // span columns only if this is the last column in > the row (not just in this first list) > + if (innerDisplayHyperlinkFieldsBeginIt.hasNext() > || numOfCells > innerDisplayHyperlinkFieldsBegin.size()) { > + > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, 1); > + } else { > + > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, numOfColumnsToSpan); > + } > + formStringRenderer.renderFieldTitle(writer, > context, modelFormField); > + > formStringRenderer.renderFormatHeaderRowCellClose(writer, context, this, > modelFormField); > } > - formStringRenderer.renderFieldTitle(writer, context, > modelFormField); > - > formStringRenderer.renderFormatHeaderRowCellClose(writer, context, this, > modelFormField); > - } > - if (innerFormFields.size() > 0) { > - // TODO: manage colspan > - > formStringRenderer.renderFormatHeaderRowFormCellOpen(writer, context, > this); > - Iterator<ModelFormField> innerFormFieldsIt = > innerFormFields.iterator(); > - while (innerFormFieldsIt.hasNext()) { > - ModelFormField modelFormField = > innerFormFieldsIt.next(); > + if (innerFormFields.size() > 0) { > + // TODO: manage colspan > + > formStringRenderer.renderFormatHeaderRowFormCellOpen(writer, context, > this); > + Iterator<ModelFormField> innerFormFieldsIt = > innerFormFields.iterator(); > + while (innerFormFieldsIt.hasNext()) { > + ModelFormField modelFormField = > innerFormFieldsIt.next(); > > - if (separateColumns || > modelFormField.getSeparateColumn()) { > - > formStringRenderer.renderFormatItemRowCellOpen(writer, context, this, > modelFormField, 1); > - } > + if (separateColumns || > modelFormField.getSeparateColumn()) { > + > formStringRenderer.renderFormatItemRowCellOpen(writer, context, this, > modelFormField, 1); > + } > > - // render title (unless this is a submit or a > reset field) > - formStringRenderer.renderFieldTitle(writer, > context, modelFormField); > + // render title (unless this is a submit or a > reset field) > + formStringRenderer.renderFieldTitle(writer, > context, modelFormField); > > - if (separateColumns || > modelFormField.getSeparateColumn()) { > - > formStringRenderer.renderFormatItemRowCellClose(writer, context, this, > modelFormField); > - } > + if (separateColumns || > modelFormField.getSeparateColumn()) { > + > formStringRenderer.renderFormatItemRowCellClose(writer, context, this, > modelFormField); > + } > > - if (innerFormFieldsIt.hasNext()) { > - // TODO: determine somehow if this is the last > one... how? > - if (!separateColumns && > !modelFormField.getSeparateColumn()) { > - > formStringRenderer.renderFormatHeaderRowFormCellTitleSeparator(writer, > context, this, modelFormField, false); > - } > + if (innerFormFieldsIt.hasNext()) { > + // TODO: determine somehow if this is the > last one... how? > + if (!separateColumns && > !modelFormField.getSeparateColumn()) { > + > formStringRenderer.renderFormatHeaderRowFormCellTitleSeparator(writer, > context, this, modelFormField, false); > + } > + } > } > + > formStringRenderer.renderFormatHeaderRowFormCellClose(writer, context, > this); > } > - > formStringRenderer.renderFormatHeaderRowFormCellClose(writer, context, > this); > - } > - Iterator<ModelFormField> innerDisplayHyperlinkFieldsEndIt > = innerDisplayHyperlinkFieldsEnd.iterator(); > - while (innerDisplayHyperlinkFieldsEndIt.hasNext()) { > - ModelFormField modelFormField = > innerDisplayHyperlinkFieldsEndIt.next(); > - // span columns only if this is the last column in the > row (not just in this first list) > - if (innerDisplayHyperlinkFieldsEndIt.hasNext() || > numOfCells > innerDisplayHyperlinkFieldsEnd.size()) { > - > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, 1); > - } else { > - > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, numOfColumnsToSpan); > + Iterator<ModelFormField> > innerDisplayHyperlinkFieldsEndIt = > innerDisplayHyperlinkFieldsEnd.iterator(); > + while (innerDisplayHyperlinkFieldsEndIt.hasNext()) { > + ModelFormField modelFormField = > innerDisplayHyperlinkFieldsEndIt.next(); > + // span columns only if this is the last column in > the row (not just in this first list) > + if (innerDisplayHyperlinkFieldsEndIt.hasNext() || > numOfCells > innerDisplayHyperlinkFieldsEnd.size()) { > + > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, 1); > + } else { > + > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, numOfColumnsToSpan); > + } > + formStringRenderer.renderFieldTitle(writer, > context, modelFormField); > + > formStringRenderer.renderFormatHeaderRowCellClose(writer, context, this, > modelFormField); > + } > + } else { > + Iterator<ModelFormField> mainFieldListIter = > mainFieldList.iterator(); > + while (mainFieldListIter.hasNext()) { > + ModelFormField modelFormField = > mainFieldListIter.next(); > + > + // don't do any header for hidden or ignored > fields > + ModelFormField.FieldInfo fieldInfo = > modelFormField.getFieldInfo(); > + if (fieldInfo.getFieldType() == > ModelFormField.FieldInfo.HIDDEN || fieldInfo.getFieldType() == > ModelFormField.FieldInfo.IGNORED) { > + continue; > + } > + > + // span columns only if this is the last column in > the row (not just in this first list) > + if (mainFieldListIter.hasNext() || numOfCells > > mainFieldList.size()) { > + > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, 1); > + } else { > + > formStringRenderer.renderFormatHeaderRowCellOpen(writer, context, this, > modelFormField, numOfColumnsToSpan); > + } > + formStringRenderer.renderFieldTitle(writer, > context, modelFormField); > + > formStringRenderer.renderFormatHeaderRowCellClose(writer, context, this, > modelFormField); > } > - formStringRenderer.renderFieldTitle(writer, context, > modelFormField); > - > formStringRenderer.renderFormatHeaderRowCellClose(writer, context, this, > modelFormField); > } > + > formStringRenderer.renderFormatHeaderRowClose(writer, > context, this); > } > } > @@ -1589,7 +1622,9 @@ public class ModelForm extends ModelWidg > // are now rendered: this will create a visual > representation > // of one row (for the current position). > if (innerDisplayHyperlinkFieldsBegin.size() > 0 || > innerFormFields.size() > 0 || innerDisplayHyperlinkFieldsEnd.size() > 0) { > - this.renderItemRow(writer, localContext, > formStringRenderer, formPerItem, hiddenIgnoredFieldList, > innerDisplayHyperlinkFieldsBegin, innerFormFields, > innerDisplayHyperlinkFieldsEnd, currentPosition, numOfColumns); > + this.renderItemRow(writer, localContext, > formStringRenderer, formPerItem, hiddenIgnoredFieldList, > + innerDisplayHyperlinkFieldsBegin, > innerFormFields, innerDisplayHyperlinkFieldsEnd, fieldListByPosition, > + currentPosition, numOfColumns); > } > } // iteration on positions > } // iteration on items > @@ -1615,7 +1650,10 @@ public class ModelForm extends ModelWidg > // The fields in the three lists, usually created in the preprocessing > phase > // of the renderItemRows method are rendered: this will create a visual > representation > // of one row (corresponding to one position). > - public void renderItemRow(Appendable writer, Map<String, Object> > localContext, FormStringRenderer formStringRenderer, boolean formPerItem, > List<ModelFormField> hiddenIgnoredFieldList, List<ModelFormField> > innerDisplayHyperlinkFieldsBegin, List<ModelFormField> innerFormFields, > List<ModelFormField> innerDisplayHyperlinkFieldsEnd, int position, int > numOfColumns) throws IOException { > + public void renderItemRow(Appendable writer, Map<String, Object> > localContext, FormStringRenderer formStringRenderer, > + boolean formPerItem, List<ModelFormField> > hiddenIgnoredFieldList, List<ModelFormField> > innerDisplayHyperlinkFieldsBegin, > + List<ModelFormField> innerFormFields, List<ModelFormField> > innerDisplayHyperlinkFieldsEnd, List<ModelFormField> mainFieldList, > + int position, int numOfColumns) throws IOException { > int numOfCells = innerDisplayHyperlinkFieldsBegin.size() + > innerDisplayHyperlinkFieldsEnd.size() + > (innerFormFields.size() > 0? 1: 0); > @@ -1638,86 +1676,111 @@ public class ModelForm extends ModelWidg > } > } > > - // do the first part of display and hyperlink fields > - Iterator<ModelFormField> innerDisplayHyperlinkFieldIter = > innerDisplayHyperlinkFieldsBegin.iterator(); > - while (innerDisplayHyperlinkFieldIter.hasNext()) { > - boolean cellOpen = false; > - ModelFormField modelFormField = > innerDisplayHyperlinkFieldIter.next(); > - // span columns only if this is the last column in the row > (not just in this first list) > - if( fieldCount.get(modelFormField.getName()) < 2 ){ > - if ((innerDisplayHyperlinkFieldIter.hasNext() || > numOfCells > innerDisplayHyperlinkFieldsBegin.size())) { > - formStringRenderer.renderFormatItemRowCellOpen(writer, > localContext, this, modelFormField, 1); > - } else { > - formStringRenderer.renderFormatItemRowCellOpen(writer, > localContext, this, modelFormField, numOfColumnsToSpan); > + if (this.groupColumns) { > + // do the first part of display and hyperlink fields > + Iterator<ModelFormField> innerDisplayHyperlinkFieldIter = > innerDisplayHyperlinkFieldsBegin.iterator(); > + while (innerDisplayHyperlinkFieldIter.hasNext()) { > + boolean cellOpen = false; > + ModelFormField modelFormField = > innerDisplayHyperlinkFieldIter.next(); > + // span columns only if this is the last column in the row > (not just in this first list) > + if( fieldCount.get(modelFormField.getName()) < 2 ){ > + if ((innerDisplayHyperlinkFieldIter.hasNext() || > numOfCells > innerDisplayHyperlinkFieldsBegin.size())) { > + > formStringRenderer.renderFormatItemRowCellOpen(writer, localContext, this, > modelFormField, 1); > + } else { > + > formStringRenderer.renderFormatItemRowCellOpen(writer, localContext, this, > modelFormField, numOfColumnsToSpan); > + } > + cellOpen = true; > } > - cellOpen = true; > - } > - if ((!"list".equals(this.getType()) && > !"multi".equals(this.getType())) || modelFormField.shouldUse(localContext)) > { > - if(( fieldCount.get(modelFormField.getName()) > 1 )){ > - if ((innerDisplayHyperlinkFieldIter.hasNext() || > numOfCells > innerDisplayHyperlinkFieldsBegin.size())) { > - > formStringRenderer.renderFormatItemRowCellOpen(writer, localContext, this, > modelFormField, 1); > - } else { > - > formStringRenderer.renderFormatItemRowCellOpen(writer, localContext, this, > modelFormField, numOfColumnsToSpan); > + if ((!"list".equals(this.getType()) && > !"multi".equals(this.getType())) || modelFormField.shouldUse(localContext)) > { > + if(( fieldCount.get(modelFormField.getName()) > 1 > )){ > + if ((innerDisplayHyperlinkFieldIter.hasNext() > || numOfCells > innerDisplayHyperlinkFieldsBegin.size())) { > + > formStringRenderer.renderFormatItemRowCellOpen(writer, localContext, this, > modelFormField, 1); > + } else { > + > formStringRenderer.renderFormatItemRowCellOpen(writer, localContext, this, > modelFormField, numOfColumnsToSpan); > + } > + cellOpen = true; > } > - cellOpen = true; > - } > - modelFormField.renderFieldString(writer, localContext, > formStringRenderer); > - } > - if (cellOpen) { > - formStringRenderer.renderFormatItemRowCellClose(writer, > localContext, this, modelFormField); > + modelFormField.renderFieldString(writer, localContext, > formStringRenderer); > + } > + if (cellOpen) { > + > formStringRenderer.renderFormatItemRowCellClose(writer, localContext, this, > modelFormField); > + } > } > - } > > - // The form cell is rendered only if there is at least an input > field > - if (innerFormFields.size() > 0) { > - // render the "form" cell > - formStringRenderer.renderFormatItemRowFormCellOpen(writer, > localContext, this); // TODO: colspan > - > - if (formPerItem) { > - formStringRenderer.renderFormOpen(writer, localContext, > this); > - } > - > - // do all of the hidden fields... > - this.renderHiddenIgnoredFields(writer, localContext, > formStringRenderer, hiddenIgnoredFieldList); > - > - Iterator<ModelFormField> innerFormFieldIter = > innerFormFields.iterator(); > - while (innerFormFieldIter.hasNext()) { > - ModelFormField modelFormField = innerFormFieldIter.next(); > - if (separateColumns || modelFormField.getSeparateColumn()) > { > - formStringRenderer.renderFormatItemRowCellOpen(writer, > localContext, this, modelFormField, 1); > + // The form cell is rendered only if there is at least an > input field > + if (innerFormFields.size() > 0) { > + // render the "form" cell > + formStringRenderer.renderFormatItemRowFormCellOpen(writer, > localContext, this); // TODO: colspan > + > + if (formPerItem) { > + formStringRenderer.renderFormOpen(writer, > localContext, this); > } > - // render field widget > - if ((!"list".equals(this.getType()) && > !"multi".equals(this.getType())) || modelFormField.shouldUse(localContext)) > { > - modelFormField.renderFieldString(writer, localContext, > formStringRenderer); > + > + // do all of the hidden fields... > + this.renderHiddenIgnoredFields(writer, localContext, > formStringRenderer, hiddenIgnoredFieldList); > + > + Iterator<ModelFormField> innerFormFieldIter = > innerFormFields.iterator(); > + while (innerFormFieldIter.hasNext()) { > + ModelFormField modelFormField = > innerFormFieldIter.next(); > + if (separateColumns || > modelFormField.getSeparateColumn()) { > + > formStringRenderer.renderFormatItemRowCellOpen(writer, localContext, this, > modelFormField, 1); > + } > + // render field widget > + if ((!"list".equals(this.getType()) && > !"multi".equals(this.getType())) || modelFormField.shouldUse(localContext)) > { > + modelFormField.renderFieldString(writer, > localContext, formStringRenderer); > + } > + > + if (separateColumns || > modelFormField.getSeparateColumn()) { > + > formStringRenderer.renderFormatItemRowCellClose(writer, localContext, this, > modelFormField); > + } > } > > - if (separateColumns || modelFormField.getSeparateColumn()) > { > - > formStringRenderer.renderFormatItemRowCellClose(writer, localContext, this, > modelFormField); > + if (formPerItem) { > + formStringRenderer.renderFormClose(writer, > localContext, this); > } > + > + > formStringRenderer.renderFormatItemRowFormCellClose(writer, localContext, > this); > } > > - if (formPerItem) { > - formStringRenderer.renderFormClose(writer, localContext, > this); > + // render the rest of the display/hyperlink fields > + innerDisplayHyperlinkFieldIter = > innerDisplayHyperlinkFieldsEnd.iterator(); > + while (innerDisplayHyperlinkFieldIter.hasNext()) { > + ModelFormField modelFormField = > innerDisplayHyperlinkFieldIter.next(); > + // span columns only if this is the last column in the row > + if (innerDisplayHyperlinkFieldIter.hasNext()) { > + formStringRenderer.renderFormatItemRowCellOpen(writer, > localContext, this, modelFormField, 1); > + } else { > + formStringRenderer.renderFormatItemRowCellOpen(writer, > localContext, this, modelFormField, numOfColumnsToSpan); > + } > + if ((!"list".equals(this.getType()) && > !"multi".equals(this.getType())) || modelFormField.shouldUse(localContext)) > { > + modelFormField.renderFieldString(writer, localContext, > formStringRenderer); > + } > + formStringRenderer.renderFormatItemRowCellClose(writer, > localContext, this, modelFormField); > } > + } else { > + Iterator<ModelFormField> mainFieldIter = > mainFieldList.iterator(); > + while (mainFieldIter.hasNext()) { > + ModelFormField modelFormField = mainFieldIter.next(); > > - formStringRenderer.renderFormatItemRowFormCellClose(writer, > localContext, this); > - } > + // don't do any header for hidden or ignored fields > + ModelFormField.FieldInfo fieldInfo = > modelFormField.getFieldInfo(); > + if (fieldInfo.getFieldType() == > ModelFormField.FieldInfo.HIDDEN || fieldInfo.getFieldType() == > ModelFormField.FieldInfo.IGNORED) { > + continue; > + } > > - // render the rest of the display/hyperlink fields > - innerDisplayHyperlinkFieldIter = > innerDisplayHyperlinkFieldsEnd.iterator(); > - while (innerDisplayHyperlinkFieldIter.hasNext()) { > - ModelFormField modelFormField = > innerDisplayHyperlinkFieldIter.next(); > - // span columns only if this is the last column in the row > - if (innerDisplayHyperlinkFieldIter.hasNext()) { > - formStringRenderer.renderFormatItemRowCellOpen(writer, > localContext, this, modelFormField, 1); > - } else { > - formStringRenderer.renderFormatItemRowCellOpen(writer, > localContext, this, modelFormField, numOfColumnsToSpan); > - } > - if ((!"list".equals(this.getType()) && > !"multi".equals(this.getType())) || modelFormField.shouldUse(localContext)) > { > - modelFormField.renderFieldString(writer, localContext, > formStringRenderer); > + // span columns only if this is the last column in the row > + if (mainFieldIter.hasNext()) { > + formStringRenderer.renderFormatItemRowCellOpen(writer, > localContext, this, modelFormField, 1); > + } else { > + formStringRenderer.renderFormatItemRowCellOpen(writer, > localContext, this, modelFormField, numOfColumnsToSpan); > + } > + if ((!"list".equals(this.getType()) && > !"multi".equals(this.getType())) || modelFormField.shouldUse(localContext)) > { > + modelFormField.renderFieldString(writer, localContext, > formStringRenderer); > + } > + formStringRenderer.renderFormatItemRowCellClose(writer, > localContext, this, modelFormField); > } > - formStringRenderer.renderFormatItemRowCellClose(writer, > localContext, this, modelFormField); > } > + > > // render row formatting close > formStringRenderer.renderFormatItemRowClose(writer, localContext, > this); > > > |
Free forum by Nabble | Edit this page |