Author: gadams
Date: Tue Apr 17 19:49:33 2012
New Revision: 1327244

URL: http://svn.apache.org/viewvc?rev=1327244&view=rev
Log:
Bugzilla #53097: Ensure writing-mode specified on fo:table is used to determine 
writing mode of table and its descendants.

Added:
    
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_1.xml
      - copied, changed from r1327157, 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl.xml
    
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_2.xml
      - copied, changed from r1327157, 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl.xml
Removed:
    
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl.xml
Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/Table.java
    xmlgraphics/fop/trunk/status.xml
    
xmlgraphics/fop/trunk/test/java/org/apache/fop/fo/properties/PropertyListMocks.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/Table.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/Table.java?rev=1327244&r1=1327243&r2=1327244&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/Table.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/Table.java Tue 
Apr 17 19:49:33 2012
@@ -40,12 +40,16 @@ import org.apache.fop.fo.properties.Keep
 import org.apache.fop.fo.properties.LengthPairProperty;
 import org.apache.fop.fo.properties.LengthRangeProperty;
 import org.apache.fop.fo.properties.TableColLength;
+import org.apache.fop.traits.Direction;
+import org.apache.fop.traits.WritingMode;
+import org.apache.fop.traits.WritingModeTraits;
+import org.apache.fop.traits.WritingModeTraitsGetter;
 
 /**
  * Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_table";>
  * <code>fo:table</code></a> object.
  */
-public class Table extends TableFObj implements ColumnNumberManagerHolder, 
BreakPropertySet,
+public class Table extends TableFObj implements ColumnNumberManagerHolder, 
BreakPropertySet, WritingModeTraitsGetter,
         CommonAccessibilityHolder {
 
     // The value of FO traits (refined properties) that apply to fo:table.
@@ -64,7 +68,7 @@ public class Table extends TableFObj imp
     private int tableLayout;
     private int tableOmitFooterAtBreak;
     private int tableOmitHeaderAtBreak;
-    private int writingMode;
+    private WritingModeTraits writingModeTraits;
     // Unused but valid items, commented out for performance:
     //     private CommonAural commonAural;
     //     private CommonRelativePosition commonRelativePosition;
@@ -131,7 +135,8 @@ public class Table extends TableFObj imp
         tableLayout = pList.get(PR_TABLE_LAYOUT).getEnum();
         tableOmitFooterAtBreak = 
pList.get(PR_TABLE_OMIT_FOOTER_AT_BREAK).getEnum();
         tableOmitHeaderAtBreak = 
pList.get(PR_TABLE_OMIT_HEADER_AT_BREAK).getEnum();
-        writingMode = pList.get(PR_WRITING_MODE).getEnum();
+        writingModeTraits = new WritingModeTraits
+            ( WritingMode.valueOf(pList.get(PR_WRITING_MODE).getEnum()) );
 
         //Bind extension properties
         widowContentLimit = pList.get(PR_X_WIDOW_CONTENT_LIMIT).getLength();
@@ -516,9 +521,34 @@ public class Table extends TableFObj imp
         return borderSeparation;
     }
 
-    /** @return the "writing-mode" FO trait */
-    public int getWritingMode() {
-        return writingMode;
+    /** {@inheritDoc} */
+    public Direction getInlineProgressionDirection() {
+        return writingModeTraits.getInlineProgressionDirection();
+    }
+
+    /** {@inheritDoc} */
+    public Direction getBlockProgressionDirection() {
+        return writingModeTraits.getBlockProgressionDirection();
+    }
+
+    /** {@inheritDoc} */
+    public Direction getColumnProgressionDirection() {
+        return writingModeTraits.getColumnProgressionDirection();
+    }
+
+    /** {@inheritDoc} */
+    public Direction getRowProgressionDirection() {
+        return writingModeTraits.getRowProgressionDirection();
+    }
+
+    /** {@inheritDoc} */
+    public Direction getShiftDirection() {
+        return writingModeTraits.getShiftDirection();
+    }
+
+    /** {@inheritDoc} */
+    public WritingMode getWritingMode() {
+        return writingModeTraits.getWritingMode();
     }
 
     /** @return the "fox:widow-content-limit" extension FO trait */

Modified: xmlgraphics/fop/trunk/status.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=1327244&r1=1327243&r2=1327244&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Tue Apr 17 19:49:33 2012
@@ -62,7 +62,10 @@
       documents. Example: the fix of marks layering will be such a case when 
it's done.
     -->
     <release version="FOP Trunk" date="TBD">
-      <action context="Code" dev="GA" type="update" fixes-bug="53094" 
due-to="Luis Bernardo">
+      <action context="Code" dev="GA" type="fix" fixes-bug="53097">
+        Ensure writing-mode specified on fo:table is used to determine writing 
mode of table and its descendants.
+      </action>
+      <action context="Code" dev="GA" type="fix" fixes-bug="53094" 
due-to="Luis Bernardo">
         Convert block container overflow exception to event model, improving 
overflow property behavior.
       </action>
       <action context="Code" dev="GA" type="update" fixes-bug="51617">

Modified: 
xmlgraphics/fop/trunk/test/java/org/apache/fop/fo/properties/PropertyListMocks.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/fo/properties/PropertyListMocks.java?rev=1327244&r1=1327243&r2=1327244&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/java/org/apache/fop/fo/properties/PropertyListMocks.java
 (original)
+++ 
xmlgraphics/fop/trunk/test/java/org/apache/fop/fo/properties/PropertyListMocks.java
 Tue Apr 17 19:49:33 2012
@@ -69,6 +69,10 @@ public final class PropertyListMocks {
             final Property borderCollapseProperty = mock(Property.class);
             
when(borderCollapseProperty.getEnum()).thenReturn(Constants.EN_SEPARATE);
             
when(mockPList.get(Constants.PR_BORDER_COLLAPSE)).thenReturn(borderCollapseProperty);
+
+            final Property writingModeProperty = mock(Property.class);
+            when(writingModeProperty.getEnum()).thenReturn(Constants.EN_LR_TB);
+            
when(mockPList.get(Constants.PR_WRITING_MODE)).thenReturn(writingModeProperty);
         } catch (PropertyException e) {
             throw new RuntimeException(e);
         }

Copied: 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_1.xml
 (from r1327157, 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl.xml)
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_1.xml?p2=xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_1.xml&p1=xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl.xml&r1=1327157&r2=1327244&rev=1327244&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl.xml
 (original)
+++ 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_1.xml
 Tue Apr 17 19:49:33 2012
@@ -19,9 +19,10 @@
 <testcase>
   <info>
     <p>
-      This test checks table column progression with right-to-left writing 
mode. The first column
-      should be to the right of the second column; the second column should be 
to the right of the
-      third column. The columns should be colored red, yellow, orange from 
right to left.
+      This test checks table column progression with right-to-left writing 
mode when writing-mode
+      is specified on fo:page-sequence. The first column should be to the 
right of the second column; the
+      second column should be to the right of the third column. The columns 
should be colored red,
+      yellow, orange from right to left.
     </p>
   </info>
   <fo>

Copied: 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_2.xml
 (from r1327157, 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl.xml)
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_2.xml?p2=xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_2.xml&p1=xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl.xml&r1=1327157&r2=1327244&rev=1327244&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl.xml
 (original)
+++ 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-column_column-progression-rl_2.xml
 Tue Apr 17 19:49:33 2012
@@ -19,9 +19,10 @@
 <testcase>
   <info>
     <p>
-      This test checks table column progression with right-to-left writing 
mode. The first column
-      should be to the right of the second column; the second column should be 
to the right of the
-      third column. The columns should be colored red, yellow, orange from 
right to left.
+      This test checks table column progression with right-to-left writing 
mode when writing-mode
+      is specified on fo:table. The first column should be to the right of the 
second column; the
+      second column should be to the right of the third column. The columns 
should be colored red,
+      yellow, orange from right to left.
     </p>
   </info>
   <fo>
@@ -31,9 +32,9 @@
           <fo:region-body/>
         </fo:simple-page-master>
       </fo:layout-master-set>
-      <fo:page-sequence master-reference="normal" writing-mode="rl">
+      <fo:page-sequence master-reference="normal">
         <fo:flow flow-name="xsl-region-body">
-          <fo:table table-layout="fixed" width="100%">
+          <fo:table table-layout="fixed" width="100%" writing-mode="rl">
             <fo:table-column column-width="1in" background-color="red"/>
             <fo:table-column column-width="1in" background-color="yellow"/>
             <fo:table-column column-width="2in" background-color="orange"/>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to