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> |
Free forum by Nabble | Edit this page |