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, <[hidden email]> 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=""> > > > |
Free forum by Nabble | Edit this page |