Hi Jacques,

I’ll do some tests and see if it could be fixed quickly, else revert it for now.

--
Thanks & Regards,
Mridul Pathak


> On Oct 17, 2016, at 6:43 PM, Jacques Le Roux <jacques.le.r...@les7arts.com> 
> wrote:
> 
> Hi Mridul,
> 
> After Arun fixed a compilation issue at r1765080, I found that this 
> introduced a regression. Please see 
> https://issues.apache.org/jira/browse/OFBIZ-8505
> 
> I think it's better to revert and test this more.
> 
> Thanks
> 
> Jacques
> 
> 
> Le 15/10/2016 à 16:25, Jacques Le Roux a écrit :
>> Hi Mridul,
>> 
>> Did you notice we have a compilation issue with this commit?
>> 
>> https://ci.apache.org/builders/ofbiz-trunk
>> 
>> https://ci.apache.org/builders/ofbiz-trunk/builds/1607/steps/shell/logs/stdio
>> 
>> Thanks
>> 
>> Jacques
>> 
>> 
>> Le 15/10/2016 à 15:19, mridulpat...@apache.org a écrit :
>>> Author: mridulpathak
>>> Date: Sat Oct 15 13:19:35 2016
>>> New Revision: 1765058
>>> 
>>> URL: http://svn.apache.org/viewvc?rev=1765058&view=rev
>>> Log:
>>> Improved: In form widgets of list type empty header row should not render 
>>> if list to render in file is empty.
>>> (OFBIZ-7598)
>>> 
>>> Thanks: Suraj Khurana for contribution.
>>> 
>>> Modified:
>>>     ofbiz/trunk/framework/widget/dtd/widget-form.xsd
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormRenderer.java
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
>>> ofbiz/trunk/framework/widget/templates/HtmlFormMacroLibrary.ftl
>>> 
>>> Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?rev=1765058&r1=1765057&r2=1765058&view=diff
>>> ==============================================================================
>>> --- ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original)
>>> +++ ofbiz/trunk/framework/widget/dtd/widget-form.xsd Sat Oct 15 13:19:35 
>>> 2016
>>> @@ -86,6 +86,7 @@ under the License.
>>>              <xs:attribute name="style" type="xs:string" />
>>>              <xs:attribute name="focus-field-name" type="xs:string" />
>>>              <xs:attribute name="title" type="xs:string" />
>>> +            <xs:attribute name="empty-form-data-message" type="xs:string" 
>>> />
>>>              <xs:attribute name="tooltip" type="xs:string" />
>>>              <xs:attribute name="list-name" type="xs:string">
>>>                  <xs:annotation>
>>> @@ -327,6 +328,7 @@ under the License.
>>>              <xs:attribute name="style" type="xs:string" />
>>>              <xs:attribute name="focus-field-name" type="xs:string" />
>>>              <xs:attribute name="title" type="xs:string" />
>>> +            <xs:attribute name="empty-form-data-message" type="xs:string" 
>>> />
>>>              <xs:attribute name="tooltip" type="xs:string" />
>>>              <xs:attribute name="list-name" type="xs:string">
>>>                  <xs:annotation>
>>> 
>>> Modified: 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java?rev=1765058&r1=1765057&r2=1765058&view=diff
>>> ==============================================================================
>>> --- 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
>>>  (original)
>>> +++ 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
>>>  Sat Oct 15 13:19:35 2016
>>> @@ -147,7 +147,7 @@ public abstract class ModelForm extends
>>>      private final String formWidgetAreaStyle;
>>>      private final boolean groupColumns;
>>>      private final String headerRowStyle;
>>> -    private final boolean hideHeader;
>>> +    private boolean hideHeader;
>>>      private final String itemIndexSeparator;
>>>      private final List<String> lastOrderFields;
>>>      private final String listEntryName;
>>> @@ -184,6 +184,7 @@ public abstract class ModelForm extends
>>>      private final String targetType;
>>>      private final FlexibleStringExpander targetWindowExdr;
>>>      private final String title;
>>> +    private final String emptyFormDataMessage;
>>>      private final String tooltip;
>>>      private final String type;
>>>      private final boolean useRowSubmit;
>>> @@ -241,6 +242,13 @@ public abstract class ModelForm extends
>>>              title = parentModel.title;
>>>          }
>>>          this.title = title;
>>> +        String emptyFormDataMessage = 
>>> formElement.getAttribute("empty-form-data-message");
>>> +        if (emptyFormDataMessage.isEmpty() && parentModel != null) {
>>> +            emptyFormDataMessage = parentModel.emptyFormDataMessage;
>>> +        } else if (emptyFormDataMessage.isEmpty()) {
>>> +            emptyFormDataMessage = "No records found";
>>> +        }
>>> +        this.emptyFormDataMessage = emptyFormDataMessage;
>>>          String tooltip = formElement.getAttribute("tooltip");
>>>          if (tooltip.isEmpty() && parentModel != null) {
>>>              tooltip = parentModel.tooltip;
>>> @@ -1015,6 +1023,10 @@ public abstract class ModelForm extends
>>>      public boolean getHideHeader() {
>>>          return this.hideHeader;
>>>      }
>>> +    public boolean setHideHeader(Boolean hideHeader) {
>>> +        this.hideHeader = hideHeader;
>>> +        return hideHeader;
>>> +    }
>>>        public String getItemIndexSeparator() {
>>>          if (UtilValidate.isNotEmpty(this.itemIndexSeparator)) {
>>> @@ -1384,6 +1396,10 @@ public abstract class ModelForm extends
>>>          return this.title;
>>>      }
>>>  +    public String getEmptyFormDataMessage() {
>>> +        return this.emptyFormDataMessage;
>>> +    }
>>> +
>>>      public String getTooltip() {
>>>          return this.tooltip;
>>>      }
>>> 
>>> Modified: 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormRenderer.java
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormRenderer.java?rev=1765058&r1=1765057&r2=1765058&view=diff
>>> ==============================================================================
>>> --- 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormRenderer.java
>>>  (original)
>>> +++ 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormRenderer.java
>>>  Sat Oct 15 13:19:35 2016
>>> @@ -48,6 +48,7 @@ import org.apache.ofbiz.widget.model.*;
>>>  import org.apache.ofbiz.widget.model.ModelForm.FieldGroup;
>>>  import org.apache.ofbiz.widget.model.ModelForm.FieldGroupBase;
>>>  import org.apache.ofbiz.widget.model.ModelFormField;
>>> +import org.apache.ofbiz.widget.model.ModelFormField.DisplayField;
>>>    /**
>>>   * A form rendering engine.
>>> @@ -925,9 +926,12 @@ public class FormRenderer {
>>>          formStringRenderer.renderFormatListWrapperOpen(writer, context, 
>>> modelForm);
>>>            int numOfColumns = 0;
>>> +        this.checkFormDataAndSetHeader(context);
>>>          // ===== render header row =====
>>>          if (!modelForm.getHideHeader()) {
>>>              numOfColumns = this.renderHeaderRow(writer, context);
>>> +        } else {
>>> + formStringRenderer.renderEmptyFormDataMessage(writer, context, modelForm);
>>>          }
>>>            // ===== render the item rows =====
>>> @@ -951,9 +955,12 @@ public class FormRenderer {
>>>          formStringRenderer.renderFormatListWrapperOpen(writer, context, 
>>> modelForm);
>>>            int numOfColumns = 0;
>>> +        this.checkFormDataAndSetHeader(context);
>>>          // ===== render header row =====
>>>          if (!modelForm.getHideHeader()) {
>>>              numOfColumns = this.renderHeaderRow(writer, context);
>>> +        } else {
>>> + formStringRenderer.renderEmptyFormDataMessage(writer, context, modelForm);
>>>          }
>>>            // ===== render the item rows =====
>>> @@ -967,6 +974,32 @@ public class FormRenderer {
>>>        }
>>>  +    private void checkFormDataAndSetHeader(Map<String, Object> context) {
>>> +        String lookupName = modelForm.getListName();
>>> +        Object obj = context.get(lookupName);
>>> +        if (obj == null) {
>>> +            if (Debug.verboseOn())
>>> +                Debug.logVerbose("No object for list or iterator name [" + 
>>> lookupName + "] found, so not rendering rows.", module);
>>> +            return;
>>> +        }
>>> +        // if list is empty, do not render rows
>>> +        Iterator<?> iter = null;
>>> +        if (obj instanceof Iterator<?>) {
>>> +            iter = (Iterator<?>) obj;
>>> +        } else if (obj instanceof List<?>) {
>>> +            iter = ((List<?>) obj).listIterator();
>>> +        }
>>> +        int itemIndex = -1;
>>> +        Object item = null;
>>> +        while ((item = safeNext(iter)) != null) {
>>> +            itemIndex++;
>>> +            break;
>>> +        }
>>> +        if (itemIndex < 0) {
>>> +            modelForm.setHideHeader(true);
>>> +        }
>>> +    }
>>> +
>>>      private void renderSingleFormString(Appendable writer, Map<String, 
>>> Object> context,
>>>              int positions) throws IOException {
>>>          List<ModelFormField> tempFieldList = new 
>>> LinkedList<ModelFormField>();
>>> 
>>> Modified: 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java?rev=1765058&r1=1765057&r2=1765058&view=diff
>>> ==============================================================================
>>> --- 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java
>>>  (original)
>>> +++ 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java
>>>  Sat Oct 15 13:19:35 2016
>>> @@ -99,4 +99,5 @@ public interface FormStringRenderer {
>>>      public void renderContainerFindField(Appendable writer, Map<String, 
>>> Object> context, ModelFormField.ContainerField containerField) throws 
>>> IOException;
>>>      public void renderFieldGroupOpen(Appendable writer, Map<String, 
>>> Object> context, ModelForm.FieldGroup fieldGroup) throws IOException;
>>>      public void renderFieldGroupClose(Appendable writer, Map<String, 
>>> Object> context, ModelForm.FieldGroup fieldGroup) throws IOException;
>>> +    public void renderEmptyFormDataMessage(Appendable writer, Map<String, 
>>> Object> context, ModelForm modelForm) throws IOException;
>>>  }
>>> 
>>> Modified: 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java?rev=1765058&r1=1765057&r2=1765058&view=diff
>>> ==============================================================================
>>> --- 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
>>>  (original)
>>> +++ 
>>> ofbiz/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
>>>  Sat Oct 15 13:19:35 2016
>>> @@ -1538,7 +1538,16 @@ public final class MacroFormRenderer imp
>>>              renderEndingBoundaryComment(writer, "Grid Widget - Grid 
>>> Element", modelForm);
>>>          }
>>>      }
>>> -
>>> +
>>> +    public void renderEmptyFormDataMessage(Appendable writer, Map<String, 
>>> Object> context, ModelForm modelForm) throws IOException {
>>> +        StringWriter sr = new StringWriter();
>>> +        sr.append("<@renderEmptyFormDataMessage");
>>> +        sr.append(" message=\"");
>>> +        sr.append(modelForm.getEmptyFormDataMessage());
>>> +        sr.append("\" />");
>>> +        executeMacro(writer, sr.toString());
>>> +    }
>>> +
>>>      public void renderFormatHeaderOpen(Appendable writer, Map<String, 
>>> Object> context, ModelForm modelForm) throws IOException {
>>>          StringWriter sr = new StringWriter();
>>>          sr.append("<@renderFormatHeaderOpen ");
>>> 
>>> Modified: ofbiz/trunk/framework/widget/templates/HtmlFormMacroLibrary.ftl
>>> URL: 
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/HtmlFormMacroLibrary.ftl?rev=1765058&r1=1765057&r2=1765058&view=diff
>>> ==============================================================================
>>> --- ofbiz/trunk/framework/widget/templates/HtmlFormMacroLibrary.ftl 
>>> (original)
>>> +++ ofbiz/trunk/framework/widget/templates/HtmlFormMacroLibrary.ftl Sat Oct 
>>> 15 13:19:35 2016
>>> @@ -326,6 +326,10 @@ under the License.
>>>    </label><#t/>
>>>  </#macro>
>>>  +<#macro renderEmptyFormDataMessage message>
>>> +  <h3><#if message?has_content>${message}</#if></h3>
>>> +</#macro>
>>> +
>>>  <#macro renderSingleFormFieldTitle></#macro>
>>>    <#macro renderFormOpen linkUrl formType targetWindow containerId 
>>> containerStyle autocomplete name viewIndexField viewSizeField viewIndex 
>>> viewSize useRowSubmit>
>>> 
>>> 
>>> 
>> 
>> 
> 

Reply via email to