svn commit: r1710527 - in /ofbiz/trunk/framework/widget: src/org/ofbiz/widget/renderer/ src/org/ofbiz/widget/renderer/macro/ templates/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1710527 - in /ofbiz/trunk/framework/widget: src/org/ofbiz/widget/renderer/ src/org/ofbiz/widget/renderer/macro/ templates/

jleroux@apache.org
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>