Author: erwan
Date: Fri Feb 5 15:31:48 2010
New Revision: 906973
URL: http://svn.apache.org/viewvc?rev=906973&view=rev
Log:
Remove the differences in columns in a fom as reported by Nicolas Malin on the
dev mailing list.
More details on this issue here :
https://issues.apache.org/jira/browse/OFBIZ-3444 with screenshots and an example
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=906973&r1=906972&r2=906973&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 Fri
Feb 5 15:31:48 2010
@@ -1608,18 +1608,38 @@
// render row formatting open
formStringRenderer.renderFormatItemRowOpen(writer, localContext, this);
+ Iterator<ModelFormField> innerDisplayHyperlinkFieldsBeginIter =
innerDisplayHyperlinkFieldsBegin.iterator();
+ Map<String, Integer> fieldCount = FastMap.newInstance();
+ while(innerDisplayHyperlinkFieldsBeginIter.hasNext()){
+ ModelFormField modelFormField =
innerDisplayHyperlinkFieldsBeginIter.next();
+ if(fieldCount.containsKey(modelFormField.getFieldName())){
+ fieldCount.put(modelFormField.getFieldName(),
fieldCount.get(modelFormField.getFieldName())+1);
+ }
+ else{
+ fieldCount.put(modelFormField.getFieldName(), 1);
+ }
+ }
// do the first part of display and hyperlink fields
Iterator<ModelFormField> innerDisplayHyperlinkFieldIter =
innerDisplayHyperlinkFieldsBegin.iterator();
while (innerDisplayHyperlinkFieldIter.hasNext()) {
ModelFormField modelFormField =
innerDisplayHyperlinkFieldIter.next();
// span columns only if this is the last column in the row (not
just in this first list)
- if (innerDisplayHyperlinkFieldIter.hasNext() || numOfCells >
innerDisplayHyperlinkFieldsBegin.size()) {
- formStringRenderer.renderFormatItemRowCellOpen(writer,
localContext, this, modelFormField, 1);
- } else {
- formStringRenderer.renderFormatItemRowCellOpen(writer,
localContext, this, modelFormField, numOfColumnsToSpan);
+ 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 ((!"list".equals(this.getType()) &&
!"multi".equals(this.getType())) || modelFormField.shouldUse(localContext)) {
+ 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);
+ }
+ }
modelFormField.renderFieldString(writer, localContext,
formStringRenderer);
}
formStringRenderer.renderFormatItemRowCellClose(writer,
localContext, this, modelFormField);