Hi Jacques, Build fails due to this commit.
{code} FoFormRenderer is not abstract and does not override abstract method renderFormatHeaderClose(Appendable,Map<String,Object>,ModelForm) in FormStringRenderer [javac18] public class FoFormRenderer extends HtmlWidgetRenderer implements FormStringRenderer {code} Thanks & Regards -- Deepak Dixit www.hotwaxsystems.com On Mon, Oct 26, 2015 at 1:45 PM, <jler...@apache.org> wrote: > Author: jleroux > Date: Mon Oct 26 08:15:45 2015 > New Revision: 1710527 > > URL: http://svn.apache.org/viewvc?rev=1710527&view=rev > Log: > A patch from Christian Carlow for "FOP rendered list form widgets do not > work for fields with postition > 0" > https://issues.apache.org/jira/browse/OFBIZ-6354 > > It doesn't work because of the way the renderFormatHeaderRowOpen is called > causes the FOP renderer to create more than one <fo:table-header>. > > This patch adds renderFormatHeaderOpen and renderFormatHeaderClose to > separately generate <fo:table-header> for FOP and <thead> for html. > > Modified: > > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormRenderer.java > > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormStringRenderer.java > > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java > ofbiz/trunk/framework/widget/templates/foFormMacroLibrary.ftl > ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl > > Modified: > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormRenderer.java > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormRenderer.java?rev=1710527&r1=1710526&r2=1710527&view=diff > > ============================================================================== > --- > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormRenderer.java > (original) > +++ > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormRenderer.java > Mon Oct 26 08:15:45 2015 > @@ -394,6 +394,7 @@ public class FormRenderer { > // =========================== > // Rendering > // =========================== > + formStringRenderer.renderFormatHeaderOpen(writer, context, > modelForm); > for (Map<String, List<ModelFormField>> listsMap : > fieldRowsByPosition) { > List<ModelFormField> innerDisplayHyperlinkFieldsBegin = > listsMap.get("displayBefore"); > List<ModelFormField> innerFormFields = > listsMap.get("inputFields"); > @@ -492,6 +493,7 @@ public class FormRenderer { > formStringRenderer.renderFormatHeaderRowClose(writer, > context, modelForm); > } > } > + formStringRenderer.renderFormatHeaderClose(writer, context, > modelForm); > > return maxNumOfColumns; > } > > Modified: > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormStringRenderer.java > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormStringRenderer.java?rev=1710527&r1=1710526&r2=1710527&view=diff > > ============================================================================== > --- > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormStringRenderer.java > (original) > +++ > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/FormStringRenderer.java > Mon Oct 26 08:15:45 2015 > @@ -59,6 +59,8 @@ public interface FormStringRenderer { > > public void renderFormatHeaderRowOpen(Appendable writer, Map<String, > Object> context, ModelForm modelForm) throws IOException; > public void renderFormatHeaderRowClose(Appendable writer, Map<String, > Object> context, ModelForm modelForm) throws IOException; > + public void renderFormatHeaderOpen(Appendable writer, Map<String, > Object> context, ModelForm modelForm) throws IOException; > + public void renderFormatHeaderClose(Appendable writer, Map<String, > Object> context, ModelForm modelForm) throws IOException; > public void renderFormatHeaderRowCellOpen(Appendable writer, > Map<String, Object> context, ModelForm modelForm, ModelFormField > modelFormField, int positionSpan) throws IOException; > public void renderFormatHeaderRowCellClose(Appendable writer, > Map<String, Object> context, ModelForm modelForm, ModelFormField > modelFormField) throws IOException; > > > Modified: > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java?rev=1710527&r1=1710526&r2=1710527&view=diff > > ============================================================================== > --- > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java > (original) > +++ > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java > Mon Oct 26 08:15:45 2015 > @@ -1532,6 +1532,20 @@ public final class MacroFormRenderer imp > renderEndingBoundaryComment(writer, "Grid Widget - Grid > Element", modelForm); > } > } > + > + public void renderFormatHeaderOpen(Appendable writer, Map<String, > Object> context, ModelForm modelForm) throws IOException { > + StringWriter sr = new StringWriter(); > + sr.append("<@renderFormatHeaderOpen "); > + sr.append(" />"); > + executeMacro(writer, sr.toString()); > + } > + > + public void renderFormatHeaderClose(Appendable writer, Map<String, > Object> context, ModelForm modelForm) throws IOException { > + StringWriter sr = new StringWriter(); > + sr.append("<@renderFormatHeaderClose"); > + sr.append(" />"); > + executeMacro(writer, sr.toString()); > + } > > public void renderFormatHeaderRowOpen(Appendable writer, Map<String, > Object> context, ModelForm modelForm) throws IOException { > String headerStyle = > FlexibleStringExpander.expandString(modelForm.getHeaderRowStyle(), context); > > Modified: ofbiz/trunk/framework/widget/templates/foFormMacroLibrary.ftl > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/foFormMacroLibrary.ftl?rev=1710527&r1=1710526&r2=1710527&view=diff > > ============================================================================== > --- ofbiz/trunk/framework/widget/templates/foFormMacroLibrary.ftl > (original) > +++ ofbiz/trunk/framework/widget/templates/foFormMacroLibrary.ftl Mon Oct > 26 08:15:45 2015 > @@ -86,8 +86,11 @@ under the License. > <#macro renderFormatListWrapperOpen formName style columnStyles><fo:table > border="solid black" <@getFoStyle style/>><#list columnStyles as > columnStyle><fo:table-column<#if columnStyle?has_content> <@getFoStyle > columnStyle/></#if>/></#list></#macro> > <#macro renderFormatListWrapperClose > formName></fo:table-body></fo:table></#macro> > > -<#macro renderFormatHeaderRowOpen > style><fo:table-header><fo:table-row></#macro> > -<#macro > renderFormatHeaderRowClose></fo:table-row></fo:table-header><fo:table-body> > +<#macro renderFormatHeaderOpen><fo:table-header></#macro> > +<#macro renderFormatHeaderClose></fo:table-header><fo:table-body></#macro> > + > +<#macro renderFormatHeaderRowOpen style><fo:table-row></#macro> > +<#macro renderFormatHeaderRowClose></fo:table-row> > <#-- FIXME: this is an hack to avoid FOP rendering errors for empty lists > (fo:table-body cannot be null) --> > <fo:table-row><fo:table-cell><fo:block/></fo:table-cell></fo:table-row> > </#macro> > > Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=1710527&r1=1710526&r2=1710527&view=diff > > ============================================================================== > --- ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl > (original) > +++ ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Mon > Oct 26 08:15:45 2015 > @@ -376,6 +376,13 @@ under the License. > </table><#lt/> > </#macro> > > +<#macro renderFormatHeaderOpen> > + <thead> > +</#macro> > +<#macro renderFormatHeaderClose> > + </thead> > +</#macro> > + > <#macro renderFormatHeaderRowOpen style> > <tr class="<#if style?has_content>${style}<#else>header-row</#if>"> > </#macro> > > >