]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
More work on corresponding properties;
authorPeter Bernard West <pbwest@apache.org>
Thu, 29 Apr 2004 03:30:20 +0000 (03:30 +0000)
committerPeter Bernard West <pbwest@apache.org>
Thu, 29 Apr 2004 03:30:20 +0000 (03:30 +0000)
Changes to interface CorrespodingProperties
Work on Padding properties

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/FOP_0-20-0_Alt-Design@197543 13f79535-47bb-0310-9956-ffa450edef68

35 files changed:
src/java/org/apache/fop/fo/properties/AbstractCorrespondingProperty.java
src/java/org/apache/fop/fo/properties/BorderAfterWidthLength.java
src/java/org/apache/fop/fo/properties/BorderBeforeWidthLength.java
src/java/org/apache/fop/fo/properties/BorderBottomColor.java
src/java/org/apache/fop/fo/properties/BorderBottomStyle.java
src/java/org/apache/fop/fo/properties/BorderBottomWidth.java
src/java/org/apache/fop/fo/properties/BorderColorCorresponding.java
src/java/org/apache/fop/fo/properties/BorderColorCorrespondingRelative.java
src/java/org/apache/fop/fo/properties/BorderCommonStyle.java
src/java/org/apache/fop/fo/properties/BorderCommonStyleRelative.java
src/java/org/apache/fop/fo/properties/BorderCommonWidth.java
src/java/org/apache/fop/fo/properties/BorderCommonWidthRelative.java
src/java/org/apache/fop/fo/properties/BorderEndWidthLength.java
src/java/org/apache/fop/fo/properties/BorderLeftColor.java
src/java/org/apache/fop/fo/properties/BorderLeftStyle.java
src/java/org/apache/fop/fo/properties/BorderLeftWidth.java
src/java/org/apache/fop/fo/properties/BorderRightColor.java
src/java/org/apache/fop/fo/properties/BorderRightStyle.java
src/java/org/apache/fop/fo/properties/BorderRightWidth.java
src/java/org/apache/fop/fo/properties/BorderStartStyle.java
src/java/org/apache/fop/fo/properties/BorderStartWidthLength.java
src/java/org/apache/fop/fo/properties/BorderTopColor.java
src/java/org/apache/fop/fo/properties/BorderTopStyle.java
src/java/org/apache/fop/fo/properties/BorderTopWidth.java
src/java/org/apache/fop/fo/properties/CorrespondingProperty.java
src/java/org/apache/fop/fo/properties/PaddingAfter.java
src/java/org/apache/fop/fo/properties/PaddingAfterLength.java
src/java/org/apache/fop/fo/properties/PaddingBefore.java
src/java/org/apache/fop/fo/properties/PaddingBeforeLength.java
src/java/org/apache/fop/fo/properties/PaddingCorrespondingAbsolute.java [new file with mode: 0644]
src/java/org/apache/fop/fo/properties/PaddingCorrespondingRelative.java [new file with mode: 0644]
src/java/org/apache/fop/fo/properties/PaddingEnd.java
src/java/org/apache/fop/fo/properties/PaddingEndLength.java
src/java/org/apache/fop/fo/properties/PaddingStart.java
src/java/org/apache/fop/fo/properties/PaddingStartLength.java

index 99c43a1a76b902dc076f39d6e574ce111f78c7f2..7e2ac74bbab7110da45abcb9bb48682a000375a0 100644 (file)
@@ -49,12 +49,4 @@ public abstract class AbstractCorrespondingProperty extends Property
         throw new PropertyException("Called from superclass");
     }
 
-    /**
-     * @return
-     * @throws PropertyException
-     */
-    public boolean overridesCorresponding()
-    throws PropertyException {
-        throw new PropertyException("Called from superclass");
-    }
 }
index 055af9103c240261721ca88b6d0b0cd48186d972..2c1ae6ca554f0b247b8a7367cbb287167348e341 100644 (file)
 package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderAfterWidthLength extends BorderCommonWidth  {
+public class BorderAfterWidthLength extends BorderCommonWidthRelative  {
     public static final int dataTypes = LENGTH;
 
     public int getDataTypes() {
@@ -56,6 +57,12 @@ public class BorderAfterWidthLength extends BorderCommonWidth  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.AFTER);
+    }
+
 
 }
 
index 814f3ce023b4a3ec3f1ace1074a2c35cb358126d..7fd869521bd31403cd1d147b2093cc03e86f89a9 100644 (file)
 package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderBeforeWidthLength extends BorderCommonWidth  {
+public class BorderBeforeWidthLength extends BorderCommonWidthRelative  {
     public static final int dataTypes = LENGTH;
 
     public int getDataTypes() {
@@ -56,6 +57,11 @@ public class BorderBeforeWidthLength extends BorderCommonWidth  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.BEFORE);
+    }
 
 }
 
index 5b88df5ee767950844c37ba70b32a168956fa6d0..b1b4ac73c6d54999224cd335cefd572b1e067dfe 100644 (file)
@@ -63,9 +63,5 @@ public class BorderBottomColor extends BorderColorCorrespondingAbsolute {
                 foNode, WritingMode.BOTTOM);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 8a1c434317a297b42265af7fa8135e81073974ea..6314d4119a8496c03d6d5e80fc62371d401a9bc9 100644 (file)
@@ -57,10 +57,5 @@ extends BorderCommonStyleAbsolute {
                 foNode, WritingMode.BOTTOM);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
-
 }
 
index f80d3d60916b30c9e141d1230a3c2f0fc44b00a4..9ca539d2c757e9aca2973fdfb7b156bf213696c3 100644 (file)
@@ -69,9 +69,5 @@ public class BorderBottomWidth extends BorderCommonWidthAbsolute {
                 foNode, WritingMode.BOTTOM);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 0fe19b0431a36b2480505286c9270e451e8ad532..fcdc94e2d3d6a7f67b6ce91a01eec0f1a5a2bcb9 100644 (file)
@@ -47,11 +47,4 @@ public abstract class BorderColorCorresponding extends ColorTransparent
     throws PropertyException {
         throw new PropertyException("Called from superclass");
     }
-    /* (non-Javadoc)
-     * @see org.apache.fop.fo.properties.CorrespondingProperty#overridesCorresponding(org.apache.fop.fo.FONode)
-     */
-    public boolean overridesCorresponding(FONode foNode)
-            throws PropertyException {
-        throw new PropertyException("Called from superclass");
-    }
 }
index db80d95fe8f2397057cf16d117d49b068c6acc51..fc6e6cad0242f9acc8bea352c4ee2ff698f543fc 100644 (file)
@@ -55,10 +55,6 @@ public class BorderColorCorrespondingRelative extends BorderColorCorresponding {
         return absBorderColorProps[absEdge];
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
     public boolean isCorrespondingRelative() {
         return true;
     }
index 12ff65565f80cb45b024f344861220bac50e3037..e841457cae9836cbd9d33eb26c0c1865a708b07e 100644 (file)
@@ -23,7 +23,6 @@ package org.apache.fop.fo.properties;
 import java.util.HashMap;
 
 import org.apache.fop.datatypes.Ints;
-import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.expr.PropertyException;
 
 /**
@@ -80,9 +79,5 @@ extends AbstractCorrespondingProperty  {
         return rwEnums[index];
     }
 
-    public boolean overridesCorresponding(FONode foNode)
-    throws PropertyException {
-        throw new PropertyException("Called within superclass");
-    }
 }
 
index c807d685badcc402093f1e2dad26f2cad9a4400f..d9e2b8b5e31b55cd7ab5c7367790b4b66bdb7b2f 100644 (file)
@@ -59,10 +59,6 @@ extends BorderCommonStyle {
         return absBorderStyleProps[absEdge];
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
     public boolean isCorrespondingRelative() {
         return true;
     }
index 0a6b59a6263ef299fbe47c2fac153b83d1688867..e2a8bd5a87110f629e43e09e1018730a4aa722e0 100644 (file)
@@ -72,10 +72,5 @@ public abstract class BorderCommonWidth extends AbstractCorrespondingProperty  {
         return rwEnums[index];
     }
 
-    public boolean overridesCorresponding(FONode foNode)
-    throws PropertyException {
-        throw new PropertyException("Called within superclass");
-    }
-
 }
 
index 6f6c982e613d9fe90e39196711bae523aff1f1fc..b8b1e56f98c0266eb9d457895982c1dcd54baefb 100644 (file)
@@ -55,10 +55,6 @@ public abstract class BorderCommonWidthRelative extends BorderCommonWidth {
         return absBorderWidthProps[absEdge];
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
     public boolean isCorrespondingRelative() {
         return true;
     }
index 925aea4c4778151de5b71a169ba8835ae3eb07fc..2c5374f6391f8b0937a6bb3ab14ca8df4fa3df83 100644 (file)
 package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderEndWidthLength extends BorderCommonWidth  {
+public class BorderEndWidthLength extends BorderCommonWidthRelative  {
     public static final int dataTypes = LENGTH;
 
     public int getDataTypes() {
@@ -55,7 +56,11 @@ public class BorderEndWidthLength extends BorderCommonWidth  {
     public int getInherited() {
         return inherited;
     }
-
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.END);
+    }
 
 }
 
index 60f4b56dcc7e56611342837eeda10e0ea729b9cb..b8c20b43dfbf790df5b2557836c170fb3977cc5e 100644 (file)
@@ -63,9 +63,5 @@ public class BorderLeftColor extends BorderColorCorrespondingAbsolute {
                 foNode, WritingMode.LEFT);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 90aa7a58e5156279f0772039dee62e610c0521cd..4936354a72387e654ebb6d46fcfe070b967f7d4b 100644 (file)
@@ -57,9 +57,5 @@ extends BorderCommonStyleAbsolute {
                 foNode, WritingMode.LEFT);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 64c9f636ce89eb1bb2fdecf91360f2b1289238e4..b102230e76650c4d852c8ea41eb101c5e08ef3cb 100644 (file)
@@ -69,9 +69,5 @@ public class BorderLeftWidth extends BorderCommonWidthAbsolute {
                 foNode, WritingMode.LEFT);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index e7d46abf5fc9b2b701364277020a0a8af8a52e72..e52f6e1ca5d39c71393f7e2159c91eba067973e5 100644 (file)
@@ -63,9 +63,5 @@ public class BorderRightColor extends BorderColorCorrespondingAbsolute {
                 foNode, WritingMode.RIGHT);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 2ba0b125a86b685738618a3884059603fea59dff..467f0ed4d00b3c6014b4d3cf6176f5510ab1e481 100644 (file)
@@ -57,9 +57,5 @@ extends BorderCommonStyleAbsolute {
                 foNode, WritingMode.RIGHT);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 8d81f17043bd621d96c915f3c3eb80e56d9e742b..2323503f7610766ae461c4dd3fc7b6498b3b540b 100644 (file)
@@ -69,9 +69,5 @@ public class BorderRightWidth extends BorderCommonWidthAbsolute {
                 foNode, WritingMode.RIGHT);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index d6274db31dd6e113871271a0e89e8e743c2b39dc..4e6f8481cb98ef36b2b03291c1ab9a9a8fe3eb5c 100644 (file)
@@ -57,9 +57,5 @@ extends BorderCommonStyleRelative {
                 foNode, WritingMode.START);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index adabf3f47927bd813f01b0224b6212c35323195e..8722fe98b69f2adad6159f11ea228367984b35e0 100644 (file)
 package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderStartWidthLength extends BorderCommonWidth {
+public class BorderStartWidthLength extends BorderCommonWidthRelative {
     public static final int dataTypes = LENGTH;
 
     public int getDataTypes() {
@@ -56,5 +57,11 @@ public class BorderStartWidthLength extends BorderCommonWidth {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.END);
+    }
+
 }
 
index 632229c4787abfc85b83b918d6550ea057fd72fd..8914f3a9dec85fe7ff58f09bfe88f68b46cc1e0c 100644 (file)
@@ -63,9 +63,5 @@ public class BorderTopColor extends BorderColorCorrespondingAbsolute {
                 foNode, WritingMode.TOP);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index d2bc28e4f8f2c08c6422962c60fb465f59b62780..c48fdc08f06200e33d60f0450fbd2bc97389f8d7 100644 (file)
@@ -56,9 +56,5 @@ extends BorderCommonStyleAbsolute {
                 foNode, WritingMode.TOP);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 71dd6121d13a314d24eb90fd0c897628039593fb..f43a1eabe3cc1032fe210482287bea6573ed6a31 100644 (file)
@@ -69,9 +69,5 @@ public class BorderTopWidth extends BorderCommonWidthAbsolute {
                 foNode, WritingMode.TOP);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 2f9404acf69ffd79dace31fa343dc7d0070aa0c6..e526098ce4e025ac52ec4eefbecc408b57c6e999 100644 (file)
@@ -34,6 +34,4 @@ public interface CorrespondingProperty {
     throws PropertyException;
     public int getCorrespondingProperty(FONode foNode)
     throws PropertyException;
-    public boolean overridesCorresponding(FONode foNode)
-    throws PropertyException;
 }
index 5dd794a3cf958548bbfa79a364e1cde2da8377b2..2296bbe7105eff5491bbb7ace4cf7b8ebba5146f 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class PaddingAfter extends Property  {
+public class PaddingAfter extends PaddingCorrespondingRelative  {
     public static final int dataTypes =
                                 COMPOUND | PERCENTAGE | LENGTH | INHERIT;
 
@@ -56,5 +57,11 @@ public class PaddingAfter extends Property  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingPaddingProperty(
+                foNode, WritingMode.AFTER);
+    }
+
 }
 
index c21206fa8418848187d73c4faa0d5ae4a33c2aa9..82f426ed6134edbb0ef162cb28b38af1bed1bba6 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class PaddingAfterLength extends Property  {
+public class PaddingAfterLength extends PaddingCorrespondingRelative  {
     public static final int dataTypes = PERCENTAGE | LENGTH;
 
     public int getDataTypes() {
@@ -56,5 +57,11 @@ public class PaddingAfterLength extends Property  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingPaddingProperty(
+                foNode, WritingMode.AFTER);
+    }
+
 }
 
index 40448a70e2c7a091ab80f3784ac6e3868cbcca92..6875023287755c6d66b9e80bc1ad004ae9230079 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class PaddingBefore extends Property  {
+public class PaddingBefore extends PaddingCorrespondingRelative  {
     public static final int dataTypes =
                                 COMPOUND |PERCENTAGE | LENGTH | INHERIT;
 
@@ -57,5 +58,11 @@ public class PaddingBefore extends Property  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingPaddingProperty(
+                foNode, WritingMode.BEFORE);
+    }
+
 }
 
index 7056731093a5de3730b7b003db236fb4c8f1f216..063d4f4a4121d3d4af977687a1038675c01c4a88 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class PaddingBeforeLength extends Property  {
+public class PaddingBeforeLength extends PaddingCorrespondingRelative  {
     public static final int dataTypes = LENGTH;
 
     public int getDataTypes() {
@@ -56,5 +57,11 @@ public class PaddingBeforeLength extends Property  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingPaddingProperty(
+                foNode, WritingMode.BEFORE);
+    }
+
 }
 
diff --git a/src/java/org/apache/fop/fo/properties/PaddingCorrespondingAbsolute.java b/src/java/org/apache/fop/fo/properties/PaddingCorrespondingAbsolute.java
new file mode 100644 (file)
index 0000000..83a3bf5
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ *
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Created on 29/04/2004
+ * $Id$
+ */
+package org.apache.fop.fo.properties;
+
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.PropNames;
+import org.apache.fop.fo.expr.PropertyException;
+
+/**
+ * @author pbw
+ * @version $Revision$ $Name$
+ */
+public abstract class PaddingCorrespondingAbsolute
+extends AbstractCorrespondingProperty {
+
+    /** Array of relative padding properties,
+     * indexed by relative edge constants */
+    private static int[] relPaddingProps = {
+            PropNames.NO_PROPERTY
+            ,PropNames.PADDING_BEFORE
+            ,PropNames.PADDING_AFTER
+            ,PropNames.PADDING_START
+            ,PropNames.PADDING_END
+    };
+
+    /**
+     * Gets the relative padding property corresponding to the given
+     * absolute edge
+     * @param foNode the node on which the property is being defined
+     * @param absoluteEdge
+     * @return the relative padding property index
+     * @throws PropertyException
+     */
+    protected int getCorrespondingPaddingProperty(
+            FONode foNode, int absoluteEdge)
+    throws PropertyException {
+        int relEdge = WritingMode.getCorrespondingRelativeEdge(
+                getWritingMode(foNode), absoluteEdge);
+        return relPaddingProps[relEdge];
+    }
+
+    public boolean isCorrespondingAbsolute() {
+        return true;
+    }
+
+}
diff --git a/src/java/org/apache/fop/fo/properties/PaddingCorrespondingRelative.java b/src/java/org/apache/fop/fo/properties/PaddingCorrespondingRelative.java
new file mode 100644 (file)
index 0000000..6d79404
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ *
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Created on 29/04/2004
+ * $Id$
+ */
+package org.apache.fop.fo.properties;
+
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.PropNames;
+import org.apache.fop.fo.expr.PropertyException;
+
+/**
+ * @author pbw
+ * @version $Revision$ $Name$
+ */
+public abstract class PaddingCorrespondingRelative extends AbstractCorrespondingProperty {
+
+    /** Array of absolute padding properties,
+     * indexed by absolute edge constants */
+    private static int[] absPaddingProps = {
+            PropNames.NO_PROPERTY
+            ,PropNames.PADDING_TOP
+            ,PropNames.PADDING_BOTTOM
+            ,PropNames.PADDING_LEFT
+            ,PropNames.PADDING_RIGHT
+    };
+
+    /**
+     * Gets the absolute padding property corresponding to the given
+     * relative edge
+     * @param foNode the node on which the property is being defined
+     * @param relativeEdge
+     * @return the absolute padding property index
+     * @throws PropertyException
+     */
+    protected int getCorrespondingPaddingProperty(
+            FONode foNode, int relativeEdge)
+    throws PropertyException {
+        int relEdge = WritingMode.getCorrespondingAbsoluteEdge(
+                getWritingMode(foNode), relativeEdge);
+        return absPaddingProps[relEdge];
+    }
+
+    public boolean isCorrespondingRelative() {
+        return true;
+    }
+
+}
index a2044ee4c53fc5f20537561493d5585264ce26b5..4c66dc086dbb48874b52671b5311dcc9846ea4fb 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class PaddingEnd extends Property  {
+public class PaddingEnd extends PaddingCorrespondingRelative  {
     public static final int dataTypes =
                                 COMPOUND | PERCENTAGE | LENGTH | INHERIT;
 
@@ -56,5 +57,11 @@ public class PaddingEnd extends Property  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingPaddingProperty(
+                foNode, WritingMode.END);
+    }
+
 }
 
index fb8e971bec355b9c70135b1ed3eae143d3545885..e240d46a9e56930aa4f288cf36a71578e51711ed 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class PaddingEndLength extends Property  {
+public class PaddingEndLength extends PaddingCorrespondingRelative  {
     public static final int dataTypes = PERCENTAGE | LENGTH;
 
     public int getDataTypes() {
@@ -56,5 +57,11 @@ public class PaddingEndLength extends Property  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingPaddingProperty(
+                foNode, WritingMode.END);
+    }
+
 }
 
index 5621893f578953303cb665e133b9513ebd788300..1619697c0d8c8cd8754166d77edb3e61cf69a75c 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class PaddingStart extends Property  {
+public class PaddingStart extends PaddingCorrespondingRelative  {
     public static final int dataTypes =
                                 COMPOUND | PERCENTAGE | LENGTH | INHERIT;
 
@@ -56,5 +57,11 @@ public class PaddingStart extends Property  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingPaddingProperty(
+                foNode, WritingMode.START);
+    }
+
 }
 
index d6c5cfe05b864c01fe6bdf07a048b9f4d0325770..997a5f51c2e8c9533631a7cc7d559250b47d3da2 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.PropertyValue;
+import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class PaddingStartLength extends Property  {
+public class PaddingStartLength extends PaddingCorrespondingRelative  {
     public static final int dataTypes = PERCENTAGE | LENGTH;
 
     public int getDataTypes() {
@@ -56,5 +57,11 @@ public class PaddingStartLength extends Property  {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingPaddingProperty(
+                foNode, WritingMode.START);
+    }
+
 }