You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Deepak Dixit <de...@hotwax.co> on 2018/07/14 05:13:06 UTC

Re: svn commit: r1835869 - in /ofbiz/ofbiz-framework/trunk: framework/widget/dtd/ framework/widget/src/main/java/org/apache/ofbiz/widget/model/ framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/ framework/widget/src/main/java/org/apache/ofbiz...

Hi Suraj,

You need to add renderEmptyFormDataMessage macro for rest of the macro
template file as well.

Thanks & Regards
--
Deepak Dixit


On Sat, Jul 14, 2018 at 10:40 AM, <su...@apache.org> wrote:

> Author: surajk
> Date: Sat Jul 14 05:10:00 2018
> New Revision: 1835869
>
> URL: http://svn.apache.org/viewvc?rev=1835869&view=rev
> Log:
> Improved: Empty header row should not render if list to render in file is
> empty.
> (OFBIZ-7598)
>
> Modified:
>     ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd
>     ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/model/ModelForm.java
>     ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormRenderer.java
>     ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java
>     ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.java
>     ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
>     ofbiz/ofbiz-framework/trunk/themes/common-theme/template/
> macro/HtmlFormMacroLibrary.ftl
>
> Modified: ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/dtd/widget-form.xsd?rev=1835869&r1=
> 1835868&r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd
> (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd Sat
> Jul 14 05:10:00 2018
> @@ -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/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/model/ModelForm.java
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/src/main/java/org/apache/ofbiz/widget/
> model/ModelForm.java?rev=1835869&r1=1835868&r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/model/ModelForm.java (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/model/ModelForm.java Sat Jul 14 05:10:00 2018
> @@ -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 = UtilProperties.getMessage("CommonUiLabels",
> "CommonNoRecordFound", Locale.getDefault());
> +        }
> +        this.emptyFormDataMessage = emptyFormDataMessage;
>          String tooltip = formElement.getAttribute("tooltip");
>          if (tooltip.isEmpty() && parentModel != null) {
>              tooltip = parentModel.tooltip;
> @@ -1007,6 +1015,9 @@ public abstract class ModelForm extends
>      public boolean getHideHeader() {
>          return this.hideHeader;
>      }
> +    public void setHideHeader(Boolean hideHeader) {
> +        this.hideHeader = hideHeader;
> +    }
>
>      public String getItemIndexSeparator() {
>          if (UtilValidate.isNotEmpty(this.itemIndexSeparator)) {
> @@ -1374,6 +1385,10 @@ public abstract class ModelForm extends
>          return this.title;
>      }
>
> +    public String getEmptyFormDataMessage() {
> +        return this.emptyFormDataMessage;
> +    }
> +
>      public String getTooltip() {
>          return this.tooltip;
>      }
>
> Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/src/main/java/org/apache/ofbiz/widget/
> renderer/FormRenderer.java?rev=1835869&r1=1835868&r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormRenderer.java (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormRenderer.java Sat Jul 14
> 05:10:00 2018
> @@ -47,6 +47,7 @@ import org.apache.ofbiz.widget.model.Fie
>  import org.apache.ofbiz.widget.model.ModelForm;
>  import org.apache.ofbiz.widget.model.ModelForm.FieldGroup;
>  import org.apache.ofbiz.widget.model.ModelForm.FieldGroupBase;
> +import org.apache.ofbiz.widget.model.ModelFormField.DisplayField;
>  import org.apache.ofbiz.widget.model.ModelFormField;
>  import org.apache.ofbiz.widget.model.ModelGrid;
>
> @@ -932,11 +933,13 @@ 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 =====
>          this.renderItemRows(writer, context, formStringRenderer, true,
> numOfColumns);
>
> @@ -958,9 +961,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 =====
> @@ -973,7 +979,41 @@ 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;
> +        if (iter instanceof EntityListIterator) {
> +            EntityListIterator eli = (EntityListIterator) iter;
> +            try {
> +                if(eli.getResultsSizeAfterPartialList() > 0){
> +                    itemIndex++;
> +                }
> +            } catch (GenericEntityException gee) {
> +                Debug.logError(gee,module);
> +            }
> +        } else {
> +            while (iter.hasNext()) {
> +                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<>();
>
> Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/src/main/java/org/apache/ofbiz/widget/
> renderer/FormStringRenderer.java?rev=1835869&r1=1835868&
> r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java Sat Jul 14
> 05:10:00 2018
> @@ -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/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/src/main/java/org/apache/ofbiz/widget/
> renderer/fo/FoFormRenderer.java?rev=1835869&r1=1835868&
> r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.java (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.java Sat Jul 14
> 05:10:00 2018
> @@ -438,4 +438,7 @@ public class FoFormRenderer extends Html
>
>      public void renderContainerFindField(Appendable writer, Map<String,
> Object> context, ContainerField containerField) throws IOException {
>      }
> +    public void renderEmptyFormDataMessage(Appendable writer,
> Map<String, Object> context, ModelForm modelForm) throws IOException {
> +        // TODO
> +    }
>  }
>
> Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/
> MacroFormRenderer.java?rev=1835869&r1=1835868&r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
> (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java Sat
> Jul 14 05:10:00 2018
> @@ -1546,7 +1546,14 @@ public final class MacroFormRenderer imp
>          executeMacro(writer, sr.toString());
>
>      }
> -
> +    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 renderFormatListWrapperClose(Appendable writer,
> Map<String, Object> context, ModelForm modelForm) throws IOException {
>          StringWriter sr = new StringWriter();
>          sr.append("<@renderFormatListWrapperClose");
>
> Modified: ofbiz/ofbiz-framework/trunk/themes/common-theme/template/
> macro/HtmlFormMacroLibrary.ftl
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> themes/common-theme/template/macro/HtmlFormMacroLibrary.
> ftl?rev=1835869&r1=1835868&r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl
> (original)
> +++ ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl
> Sat Jul 14 05:10:00 2018
> @@ -317,7 +317,9 @@ under the License.
>      ${title}<#t/>
>    </label><#t/>
>  </#macro>
> -
> +<#macro renderEmptyFormDataMessage message>
> +  <h3><#if message?has_content>${message}</#if></h3>
> +</#macro>
>  <#macro renderSingleFormFieldTitle></#macro>
>
>  <#macro renderFormOpen linkUrl formType name viewIndexField viewSizeField
> viewIndex viewSize targetWindow="" containerId="" containerStyle=""
> autocomplete="" useRowSubmit="" focusFieldName="" hasRequiredField="">
>
>
>