You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by David E Jones <de...@me.com> on 2010/02/06 02:15:36 UTC
Re: svn commit: r906973 -
/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
Thanks for doing this Erwan! Based on a read through this diff, this approach looks good, and consistent with what was discussed on the list.
-David
On Feb 5, 2010, at 9:31 AM, erwan@apache.org wrote:
> 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);
>
>