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>