Author: ssteiner
Date: Wed Jun 15 08:10:12 2022
New Revision: 1901930

URL: http://svn.apache.org/viewvc?rev=1901930&view=rev
Log:
FOP-3080: Allow removing empty table elements from structure tree

Added:
    
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/table-artifact.fo
   (with props)
Modified:
    
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverter.java
    
xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java
    
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/fo2StructureTree.xsl

Modified: 
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverter.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverter.java?rev=1901930&r1=1901929&r2=1901930&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverter.java
 (original)
+++ 
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverter.java
 Wed Jun 15 08:10:12 2022
@@ -380,11 +380,12 @@ public class FO2StructureTreeConverter e
 
     @Override
     public void startHeader(final TableHeader header) {
+        handleStartArtifact(header);
         startContent(new Event(this) {
             public void run() {
                 eventHandler.startHeader(header);
             }
-        }, true);
+        }, false);
         super.startHeader(header);
     }
 
@@ -395,16 +396,18 @@ public class FO2StructureTreeConverter e
                 eventHandler.endHeader(header);
             }
         });
+        handleEndArtifact(header);
         super.endHeader(header);
     }
 
     @Override
     public void startFooter(final TableFooter footer) {
+        handleStartArtifact(footer);
         startContent(new Event(this) {
             public void run() {
                 eventHandler.startFooter(footer);
             }
-        }, true);
+        }, false);
         super.startFooter(footer);
     }
 
@@ -415,6 +418,7 @@ public class FO2StructureTreeConverter e
                 eventHandler.endFooter(footer);
             }
         });
+        handleEndArtifact(footer);
         super.endFooter(footer);
     }
 
@@ -444,7 +448,7 @@ public class FO2StructureTreeConverter e
             public void run() {
                 eventHandler.startRow(tr);
             }
-        }, true);
+        }, false);
         super.startRow(tr);
     }
 
@@ -464,7 +468,7 @@ public class FO2StructureTreeConverter e
             public void run() {
                 eventHandler.startCell(tc);
             }
-        }, true);
+        }, false);
         super.startCell(tc);
     }
 

Modified: 
xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java?rev=1901930&r1=1901929&r2=1901930&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java
 (original)
+++ 
xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java
 Wed Jun 15 08:10:12 2022
@@ -51,6 +51,8 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import org.apache.commons.io.IOUtils;
+
 import org.apache.fop.accessibility.StructureTree2SAXEventAdapter;
 import org.apache.fop.accessibility.StructureTreeEventHandler;
 import org.apache.fop.apps.FOPException;
@@ -115,6 +117,11 @@ public class FO2StructureTreeConverterTe
     }
 
     @Test
+    public void testTableArtifact() throws Exception {
+        testConverter("table-artifact.fo");
+    }
+
+    @Test
     public void testLanguage() throws Exception {
         testConverter("language.fo");
     }
@@ -173,6 +180,36 @@ public class FO2StructureTreeConverterTe
                         + "</structure-tree-sequence>\n");
     }
 
+    @Test
+    public void testRemoveTableHeader() throws Exception {
+        keepEmptyTags = false;
+        String fo = 
IOUtils.toString(getResource("table-artifact.fo")).replace("role=\"artifact\"", 
"");
+        compare(fo, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+                        + "<structure-tree-sequence>\n"
+                        + "<structure-tree 
xmlns=\"http://xmlgraphics.apache.org/fop/intermediate\"; "
+                        + 
"xmlns:foi=\"http://xmlgraphics.apache.org/fop/internal\"; "
+                        + 
"xmlns:fox=\"http://xmlgraphics.apache.org/fop/extensions\";>\n"
+                        + "<fo:flow 
xmlns:fo=\"http://www.w3.org/1999/XSL/Format\"; flow-name=\"xsl-region-body\">\n"
+                        + "<fo:table>\n"
+                        + "<fo:table-body>\n"
+                        + "<fo:table-row>\n"
+                        + "<fo:table-cell>\n"
+                        + "<fo:block>\n"
+                        + "<marked-content/>\n"
+                        + "<fo:block>\n"
+                        + "<marked-content/>\n"
+                        + "</fo:block>\n"
+                        + "<marked-content/>\n"
+                        + "</fo:block>\n"
+                        + "</fo:table-cell>\n"
+                        + "</fo:table-row>\n"
+                        + "</fo:table-body>\n"
+                        + "</fo:table>\n"
+                        + "</fo:flow>\n"
+                        + "</structure-tree>\n"
+                        + "</structure-tree-sequence>");
+    }
+
     private void compare(final String fo, String tree) throws Exception {
         foLoader = new FOLoader("") {
             public InputStream getFoInputStream() {

Modified: 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/fo2StructureTree.xsl
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/fo2StructureTree.xsl?rev=1901930&r1=1901929&r2=1901930&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/fo2StructureTree.xsl
 (original)
+++ 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/fo2StructureTree.xsl
 Wed Jun 15 08:10:12 2022
@@ -145,6 +145,8 @@
 
   <xsl:template match="fo:wrapper[translate(normalize-space(@role), 'ARTIFCT', 
'artifct') = 'artifact']"/>
 
+  <xsl:template match="fo:table-header[@role = 'artifact']"/>
+  <xsl:template match="fo:table-footer[@role = 'artifact']"/>
 
   <!-- Discard descendants of fo:leader -->
   <xsl:template match="fo:leader"/>

Added: 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/table-artifact.fo
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/table-artifact.fo?rev=1901930&view=auto
==============================================================================
--- 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/table-artifact.fo
 (added)
+++ 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/table-artifact.fo
 Wed Jun 15 08:10:12 2022
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"; 
xmlns:fox="http://xmlgraphics.apache.org/fop/extensions";>
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="simple" page-height="27.9cm" 
page-width="21.6cm">
+      <fo:region-body />
+    </fo:simple-page-master>
+  </fo:layout-master-set>
+  <fo:page-sequence master-reference="simple">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:table border-collapse="separate" table-layout="fixed">
+        <fo:table-column column-width="2in" column-number="1"/>
+        <fo:table-header role="artifact">
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block>
+                  <fo:leader/>
+                </fo:block>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-footer role="artifact">
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block>
+                  <fo:leader/>
+                </fo:block>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-footer>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block>a</fo:block>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Propchange: 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/accessibility/fo/table-artifact.fo
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-h...@xmlgraphics.apache.org

Reply via email to