You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by bu...@apache.org on 2010/04/11 08:29:54 UTC
svn commit: r932840 -
/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
Author: buscob
Date: Sun Apr 11 06:29:53 2010
New Revision: 932840
URL: http://svn.apache.org/viewvc?rev=932840&view=rev
Log:
A slightly changed patch from Blas Rodriguez Somoza
OFBIZ-3626 - XHTML validation errors (framework/widget) Bugs in ModelForm (fieldgroups, itemrows with links)
https://issues.apache.org/jira/browse/OFBIZ-3626
Errors in ModelForm in fieldgroups and itemrows.
I only removed some tabs and added curly brackets
Modified:
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
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=932840&r1=932839&r2=932840&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 Sun Apr 11 06:29:53 2010
@@ -959,6 +959,10 @@ public class ModelForm extends ModelWidg
if (lastFieldGroup != null) {
lastFieldGroupName = lastFieldGroup.getId();
if (!lastFieldGroupName.equals(currentFieldGroupName)) {
+ if (haveRenderedOpenFieldRow) {
+ formStringRenderer.renderFormatFieldRowClose(writer, context, this);
+ haveRenderedOpenFieldRow = false;
+ }
lastFieldGroup.renderEndString(writer, context, formStringRenderer);
List<FieldGroupBase> inbetweenList = getInbetweenList(lastFieldGroup, currentFieldGroup);
@@ -1031,6 +1035,14 @@ public class ModelForm extends ModelWidg
haveRenderedOpenFieldRow = true;
}
+ //
+ // It must be a row open before rendering a field. If not, open it
+ //
+ if (!haveRenderedOpenFieldRow) {
+ formStringRenderer.renderFormatFieldRowOpen(writer, context, this);
+ haveRenderedOpenFieldRow = true;
+ }
+
// render title formatting open
formStringRenderer.renderFormatFieldRowTitleCellOpen(writer, context, currentFormField);
@@ -1057,8 +1069,10 @@ public class ModelForm extends ModelWidg
formStringRenderer.renderFormatFieldRowWidgetCellClose(writer, context, currentFormField, positions, positionSpan, nextPositionInRow);
}
- // always render row formatting close after the end
- formStringRenderer.renderFormatFieldRowClose(writer, context, this);
+ // render row formatting close after the end if needed
+ if (haveRenderedOpenFieldRow) {
+ formStringRenderer.renderFormatFieldRowClose(writer, context, this);
+ }
if (lastFieldGroup != null) {
lastFieldGroup.renderEndString(writer, context, formStringRenderer);
@@ -1625,6 +1639,7 @@ 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 ){
@@ -1633,6 +1648,7 @@ public class ModelForm extends ModelWidg
} else {
formStringRenderer.renderFormatItemRowCellOpen(writer, localContext, this, modelFormField, numOfColumnsToSpan);
}
+ cellOpen = true;
}
if ((!"list".equals(this.getType()) && !"multi".equals(this.getType())) || modelFormField.shouldUse(localContext)) {
if(( fieldCount.get(modelFormField.getName()) > 1 )){
@@ -1641,10 +1657,13 @@ public class ModelForm extends ModelWidg
} else {
formStringRenderer.renderFormatItemRowCellOpen(writer, localContext, this, modelFormField, numOfColumnsToSpan);
}
+ cellOpen = true;
}
modelFormField.renderFieldString(writer, localContext, formStringRenderer);
}
- formStringRenderer.renderFormatItemRowCellClose(writer, localContext, this, modelFormField);
+ if (cellOpen) {
+ formStringRenderer.renderFormatItemRowCellClose(writer, localContext, this, modelFormField);
+ }
}
// The form cell is rendered only if there is at least an input field