svn commit: r906973 - /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java

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

svn commit: r906973 - /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java

erwan
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);