]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
More work on border corresponding properties
authorPeter Bernard West <pbwest@apache.org>
Thu, 22 Apr 2004 07:36:55 +0000 (07:36 +0000)
committerPeter Bernard West <pbwest@apache.org>
Thu, 22 Apr 2004 07:36:55 +0000 (07:36 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/FOP_0-20-0_Alt-Design@197530 13f79535-47bb-0310-9956-ffa450edef68

26 files changed:
src/java/org/apache/fop/fo/properties/BorderAfterColor.java
src/java/org/apache/fop/fo/properties/BorderAfterStyle.java
src/java/org/apache/fop/fo/properties/BorderAfterWidth.java
src/java/org/apache/fop/fo/properties/BorderBeforeColor.java
src/java/org/apache/fop/fo/properties/BorderBeforeStyle.java
src/java/org/apache/fop/fo/properties/BorderBeforeWidth.java
src/java/org/apache/fop/fo/properties/BorderBottomColor.java
src/java/org/apache/fop/fo/properties/BorderBottomWidth.java
src/java/org/apache/fop/fo/properties/BorderColorCorresponding.java [new file with mode: 0644]
src/java/org/apache/fop/fo/properties/BorderColorCorrespondingAbsolute.java [new file with mode: 0644]
src/java/org/apache/fop/fo/properties/BorderColorCorrespondingRelative.java [new file with mode: 0644]
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/BorderCommonWidthAbsolute.java [new file with mode: 0644]
src/java/org/apache/fop/fo/properties/BorderCommonWidthRelative.java [new file with mode: 0644]
src/java/org/apache/fop/fo/properties/BorderEndColor.java
src/java/org/apache/fop/fo/properties/BorderEndStyle.java
src/java/org/apache/fop/fo/properties/BorderEndWidth.java
src/java/org/apache/fop/fo/properties/BorderLeftColor.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/BorderRightWidth.java
src/java/org/apache/fop/fo/properties/BorderStartColor.java
src/java/org/apache/fop/fo/properties/BorderStartWidth.java
src/java/org/apache/fop/fo/properties/BorderTopColor.java
src/java/org/apache/fop/fo/properties/BorderTopWidth.java

index ae5036e00c6d81921a9af2c43244bdfe1b30e959..5868289321abdb2dec61558342ca6fe5f803a893 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.ColorType;
 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 BorderAfterColor extends ColorTransparent {
+public class BorderAfterColor extends BorderColorCorrespondingRelative {
     public static final int dataTypes = ENUM | COLOR_T | INHERIT;
 
     public int getDataTypes() {
@@ -56,4 +57,10 @@ public class BorderAfterColor extends ColorTransparent {
         return new ColorType (PropNames.BACKGROUND_COLOR, BLACK);
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingColorProperty(
+                foNode, WritingMode.AFTER);
+    }
+
 }
index af3facff69fc77d6c01db1ce1e5ce011f6bd57ad..8631c5e9a8db0638d2965289499c9909888c43fd 100644 (file)
@@ -57,9 +57,5 @@ extends BorderCommonStyleRelative {
                 foNode, WritingMode.AFTER);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 940f30c4716d5618894709c581270065865705bf..0844c8608c0f29fd60df93fb7bda6edc29afbb0e 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderAfterWidth extends BorderCommonWidth {
+public class BorderAfterWidth extends BorderCommonWidthRelative {
     public static final int dataTypes =
                             COMPOUND | MAPPED_LENGTH | LENGTH | INHERIT;
 
@@ -47,7 +47,7 @@ public class BorderAfterWidth extends BorderCommonWidth {
     }
 
 
-    // Initial value for BorderAfterWidth is tne mapped enumerated value
+    // Initial value for BorderAfterWidth is the mapped enumerated value
     // "medium".  This maps to 1pt.  There is no way at present to
     // automatically update the following initial Length PropertyValue
     // if the mapping changes.
@@ -70,7 +70,11 @@ public class BorderAfterWidth extends BorderCommonWidth {
         return inherited;
     }
 
-    
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.AFTER);
+    }
 
 }
 
index ad478d656b7112114e47a0c7ee1c3b9bcefb173e..bfc6b751aaff59152170c511b8741f4edd65d986 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.ColorType;
 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 BorderBeforeColor extends ColorTransparent {
+public class BorderBeforeColor extends BorderColorCorrespondingRelative {
     public static final int dataTypes = ENUM | COLOR_T | INHERIT;
 
     public int getDataTypes() {
@@ -56,5 +57,11 @@ public class BorderBeforeColor extends ColorTransparent {
         return new ColorType(PropNames.BACKGROUND_COLOR, BLACK);
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingColorProperty(
+                foNode, WritingMode.BEFORE);
+    }
+
 }
 
index b45a8e265ccef301a267d9d37f3c0f5598f49b15..c334ae0f4c29360618c566406ff26ff838566b6d 100644 (file)
@@ -57,9 +57,5 @@ extends BorderCommonStyleRelative {
                 foNode, WritingMode.BEFORE);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index 7684592f6519eadfdef5deda7d8c46685270bf35..750545dc01966d5b2537d035922760d3fd866bde 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderBeforeWidth extends BorderCommonWidth {
+public class BorderBeforeWidth extends BorderCommonWidthRelative {
     public static final int dataTypes =
                             COMPOUND | MAPPED_LENGTH | LENGTH | INHERIT;
 
@@ -64,6 +64,11 @@ public class BorderBeforeWidth extends BorderCommonWidth {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.BEFORE);
+    }
 
 }
 
index cd5eb88712cf8e0ac17fd7b23da6eb204aef84ab..5b88df5ee767950844c37ba70b32a168956fa6d0 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.ColorType;
 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 BorderBottomColor extends ColorTransparent {
+public class BorderBottomColor extends BorderColorCorrespondingAbsolute {
     public static final int dataTypes = ENUM | COLOR_T | INHERIT;
 
     public int getDataTypes() {
@@ -56,5 +57,15 @@ public class BorderBottomColor extends ColorTransparent {
         return new ColorType(PropNames.BACKGROUND_COLOR, BLACK);
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingColorProperty(
+                foNode, WritingMode.BOTTOM);
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
+
 }
 
index 76afc49c35402d4f5ee2c87549bb3c1722ad36d7..f80d3d60916b30c9e141d1230a3c2f0fc44b00a4 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderBottomWidth extends BorderCommonWidth {
+public class BorderBottomWidth extends BorderCommonWidthAbsolute {
     public static final int dataTypes = LENGTH | MAPPED_LENGTH | INHERIT;
 
     public int getDataTypes() {
@@ -63,6 +63,15 @@ public class BorderBottomWidth extends BorderCommonWidth {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.BOTTOM);
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
 
 }
 
diff --git a/src/java/org/apache/fop/fo/properties/BorderColorCorresponding.java b/src/java/org/apache/fop/fo/properties/BorderColorCorresponding.java
new file mode 100644 (file)
index 0000000..0fe19b0
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ *
+ * 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 22/04/2004
+ * $Id$
+ */
+package org.apache.fop.fo.properties;
+
+import org.apache.fop.datatypes.EnumType;
+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;
+
+/**
+ * @author pbw
+ * @version $Revision$ $Name$
+ */
+public abstract class BorderColorCorresponding extends ColorTransparent
+        implements
+            CorrespondingProperty {
+    /* (non-Javadoc)
+     * @see org.apache.fop.fo.properties.CorrespondingProperty#getWritingMode(org.apache.fop.fo.FONode)
+     */
+    public int getWritingMode(FONode foNode)
+    throws PropertyException {
+        PropertyValue wm = foNode.getPropertyValue(PropNames.WRITING_MODE);
+        return EnumType.getEnumValue(wm);
+    }
+    /* (non-Javadoc)
+     * @see org.apache.fop.fo.properties.CorrespondingProperty#getCorrespondingProperty(org.apache.fop.fo.FONode)
+     */
+    public int getCorrespondingProperty(FONode foNode)
+    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");
+    }
+}
diff --git a/src/java/org/apache/fop/fo/properties/BorderColorCorrespondingAbsolute.java b/src/java/org/apache/fop/fo/properties/BorderColorCorrespondingAbsolute.java
new file mode 100644 (file)
index 0000000..ec0c8bf
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ *
+ * 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 22/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 class BorderColorCorrespondingAbsolute extends BorderColorCorresponding {
+
+    /** Array of relative border color properties,
+     * indexed by relative edge constants */
+    private static int[] relBorderColorProps = {
+            PropNames.NO_PROPERTY
+            ,PropNames.BORDER_BEFORE_COLOR
+            ,PropNames.BORDER_AFTER_COLOR
+            ,PropNames.BORDER_START_COLOR
+            ,PropNames.BORDER_END_COLOR
+    };
+
+    /**
+     * Gets the relative border color property corresponding to the given
+     * absolute edge
+     * @param foNode the node on which the property is being defined
+     * @param absoluteEdge
+     * @return the relative border color property index
+     * @throws PropertyException
+     */
+    protected int getCorrespondingColorProperty(
+            FONode foNode, int absoluteEdge)
+    throws PropertyException {
+        int relEdge = WritingMode.getCorrespondingRelativeEdge(
+                getWritingMode(foNode), absoluteEdge);
+        return relBorderColorProps[relEdge];
+    }
+
+}
diff --git a/src/java/org/apache/fop/fo/properties/BorderColorCorrespondingRelative.java b/src/java/org/apache/fop/fo/properties/BorderColorCorrespondingRelative.java
new file mode 100644 (file)
index 0000000..df814cd
--- /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 22/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 class BorderColorCorrespondingRelative extends BorderColorCorresponding {
+
+    /** Array of absolute border color properties,
+     * indexed by absolute edge constants */
+    private static int[] absBorderColorProps = {
+            PropNames.NO_PROPERTY
+            ,PropNames.BORDER_TOP_COLOR
+            ,PropNames.BORDER_BOTTOM_COLOR
+            ,PropNames.BORDER_LEFT_COLOR
+            ,PropNames.BORDER_RIGHT_COLOR
+    };
+
+    /**
+     * Gets the absolute border color property corresponding to the given
+     * relative edge
+     * @param foNode the node on which the property is being defined
+     * @param relativeEdge
+     * @return the relative border color property index
+     * @throws PropertyException
+     */
+    protected int getCorrespondingColorProperty(
+            FONode foNode, int relativeEdge)
+    throws PropertyException {
+        int absEdge = WritingMode.getCorrespondingAbsoluteEdge(
+                getWritingMode(foNode), relativeEdge);
+        return absBorderColorProps[absEdge];
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
+
+}
index 3325188baecaa66792048be88cace327dca7ac20..7fc0a8e970d11bbc2709525eb2e64b68d4776cf6 100644 (file)
@@ -33,7 +33,6 @@ import org.apache.fop.fo.expr.PropertyException;
 public abstract class BorderCommonStyleRelative
 extends BorderCommonStyle {
 
-
     /** Array of absolute border style properties,
      * indexed by absolute edge constants */
     private static int[] absBorderStyleProps = {
@@ -60,4 +59,8 @@ extends BorderCommonStyle {
         return absBorderStyleProps[absEdge];
     }
 
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
+
 }
index c88a8c509e3b79cf3eb42e85ff9c341483d0a66b..0a6b59a6263ef299fbe47c2fac153b83d1688867 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.fop.fo.expr.PropertyException;
  * Pseudo-property class for common border width values occurring in a
  * number of classes.
  */
-public class BorderCommonWidth extends Property  {
+public abstract class BorderCommonWidth extends AbstractCorrespondingProperty  {
     public static final int THIN = 1;
     public static final int MEDIUM = 2;
     public static final int THICK = 3;
@@ -72,5 +72,10 @@ public class BorderCommonWidth extends Property  {
         return rwEnums[index];
     }
 
+    public boolean overridesCorresponding(FONode foNode)
+    throws PropertyException {
+        throw new PropertyException("Called within superclass");
+    }
+
 }
 
diff --git a/src/java/org/apache/fop/fo/properties/BorderCommonWidthAbsolute.java b/src/java/org/apache/fop/fo/properties/BorderCommonWidthAbsolute.java
new file mode 100644 (file)
index 0000000..096f466
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ *
+ * 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 22/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 BorderCommonWidthAbsolute extends BorderCommonWidth {
+
+    /** Array of relative border width properties,
+     * indexed by relative edge constants */
+    private static int[] relBorderWidthProps = {
+            PropNames.NO_PROPERTY
+            ,PropNames.BORDER_BEFORE_WIDTH
+            ,PropNames.BORDER_AFTER_WIDTH
+            ,PropNames.BORDER_START_WIDTH
+            ,PropNames.BORDER_END_WIDTH
+    };
+
+    /**
+     * Gets the relative border width property corresponding to the given
+     * absolute edge
+     * @param foNode the node on which the property is being defined
+     * @param absoluteEdge
+     * @return the relative border width property index
+     * @throws PropertyException
+     */
+    protected int getCorrespondingWidthProperty(
+            FONode foNode, int absoluteEdge)
+    throws PropertyException {
+        int relEdge = WritingMode.getCorrespondingRelativeEdge(
+                getWritingMode(foNode), absoluteEdge);
+        return relBorderWidthProps[relEdge];
+    }
+
+}
diff --git a/src/java/org/apache/fop/fo/properties/BorderCommonWidthRelative.java b/src/java/org/apache/fop/fo/properties/BorderCommonWidthRelative.java
new file mode 100644 (file)
index 0000000..ce6c4ce
--- /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 22/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 BorderCommonWidthRelative extends BorderCommonWidth {
+
+    /** Array of absolute border width properties,
+     * indexed by absolute edge constants */
+    private static int[] absBorderWidthProps = {
+            PropNames.NO_PROPERTY
+            ,PropNames.BORDER_TOP_WIDTH
+            ,PropNames.BORDER_BOTTOM_WIDTH
+            ,PropNames.BORDER_LEFT_WIDTH
+            ,PropNames.BORDER_RIGHT_WIDTH
+    };
+
+    /**
+     * Gets the absolute border width property corresponding to the given
+     * relative edge
+     * @param foNode the node on which the property is being defined
+     * @param relativeEdge
+     * @return the absolute border width property index
+     * @throws PropertyException
+     */
+    protected int getCorrespondingWidthProperty(
+            FONode foNode, int relativeEdge)
+    throws PropertyException {
+        int absEdge = WritingMode.getCorrespondingAbsoluteEdge(
+                getWritingMode(foNode), relativeEdge);
+        return absBorderWidthProps[absEdge];
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
+
+}
index 7e59b7c424f216bb262d0dfd7731a1d62ed93f1a..8121ebccce25ba575cf2dcbb62c71132f6b867b7 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.ColorType;
 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 BorderEndColor extends ColorTransparent {
+public class BorderEndColor extends BorderColorCorrespondingRelative {
     public static final int dataTypes = ENUM | COLOR_T | INHERIT;
 
     public int getDataTypes() {
@@ -56,5 +57,11 @@ public class BorderEndColor extends ColorTransparent {
         return new ColorType (PropNames.BACKGROUND_COLOR, BLACK);
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingColorProperty(
+                foNode, WritingMode.END);
+    }
+
 }
 
index 726addad7f5d7b3d3bf056223cae0ec31ac70284..26f14086423f8fe74958b3db316ff750ae33a532 100644 (file)
@@ -57,9 +57,5 @@ extends BorderCommonStyleRelative {
                 foNode, WritingMode.END);
     }
 
-    public boolean overridesCorresponding(FONode foNode) {
-        return false;
-    }
-
 }
 
index bac0d425b24c8550d1a13da18d02cb1df2fed03c..51d85692530eae5645414f3d42018d41154c5707 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderEndWidth extends BorderCommonWidth {
+public class BorderEndWidth extends BorderCommonWidthRelative {
     public static final int dataTypes =
                             COMPOUND | MAPPED_LENGTH | LENGTH | INHERIT;
 
@@ -64,6 +64,11 @@ public class BorderEndWidth extends BorderCommonWidth {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.END);
+    }
 
 }
 
index 8f0d480f7edf64b9d8794d384a6274d7c907060e..60f4b56dcc7e56611342837eeda10e0ea729b9cb 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.ColorType;
 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 BorderLeftColor extends ColorTransparent {
+public class BorderLeftColor extends BorderColorCorrespondingAbsolute {
     public static final int dataTypes = ENUM | COLOR_T | INHERIT;
 
     public int getDataTypes() {
@@ -56,5 +57,15 @@ public class BorderLeftColor extends ColorTransparent {
         return new ColorType (PropNames.BACKGROUND_COLOR, BLACK);
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingColorProperty(
+                foNode, WritingMode.LEFT);
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
+
 }
 
index 1f7455c06927e78592f23949314182814feea5a0..64c9f636ce89eb1bb2fdecf91360f2b1289238e4 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderLeftWidth extends BorderCommonWidth {
+public class BorderLeftWidth extends BorderCommonWidthAbsolute {
     public static final int dataTypes = LENGTH | MAPPED_LENGTH | INHERIT;
 
     public int getDataTypes() {
@@ -63,6 +63,15 @@ public class BorderLeftWidth extends BorderCommonWidth {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.LEFT);
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
 
 }
 
index c38104d238a4af0298d19d90da95475ebb9de538..e7d46abf5fc9b2b701364277020a0a8af8a52e72 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.ColorType;
 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 BorderRightColor extends ColorTransparent {
+public class BorderRightColor extends BorderColorCorrespondingAbsolute {
     public static final int dataTypes = ENUM | COLOR_T | INHERIT;
 
     public int getDataTypes() {
@@ -56,5 +57,15 @@ public class BorderRightColor extends ColorTransparent {
         return new ColorType (PropNames.BACKGROUND_COLOR, BLACK);
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingColorProperty(
+                foNode, WritingMode.RIGHT);
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
+
 }
 
index a1ce13d366b22005027980d8e577c1aeb7e9f4e3..8d81f17043bd621d96c915f3c3eb80e56d9e742b 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderRightWidth extends BorderCommonWidth {
+public class BorderRightWidth extends BorderCommonWidthAbsolute {
     public static final int dataTypes = LENGTH | MAPPED_LENGTH | INHERIT;
 
     public int getDataTypes() {
@@ -63,6 +63,15 @@ public class BorderRightWidth extends BorderCommonWidth {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.RIGHT);
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
 
 }
 
index 25ed14512474ff43a937e5b100703f86f2bca991..be02bcdcf3632c1ca4d6288efa3ed336f4f4418f 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.ColorType;
 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 BorderStartColor extends ColorTransparent {
+public class BorderStartColor extends BorderColorCorrespondingRelative {
     public static final int dataTypes = ENUM | COLOR_T | INHERIT;
 
     public int getDataTypes() {
@@ -57,5 +58,11 @@ public class BorderStartColor extends ColorTransparent {
             new ColorType(PropNames.BACKGROUND_COLOR, BLACK);
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingColorProperty(
+                foNode, WritingMode.END);
+    }
+
 }
 
index 4c3378dbf19ef7e4e2d06a20ab9f3cac8a02af31..caaacd7b0a43c93f293322820830908f04cd712a 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderStartWidth extends BorderCommonWidth {
+public class BorderStartWidth extends BorderCommonWidthRelative {
     public static final int dataTypes =
                             COMPOUND | MAPPED_LENGTH | LENGTH | INHERIT;
 
@@ -64,6 +64,11 @@ public class BorderStartWidth extends BorderCommonWidth {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.START);
+    }
 
 }
 
index d42d4cf5736f14f55f2c64583678c797e17ee597..632229c4787abfc85b83b918d6550ea057fd72fd 100644 (file)
@@ -22,10 +22,11 @@ package org.apache.fop.fo.properties;
 
 import org.apache.fop.datatypes.ColorType;
 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 BorderTopColor extends ColorTransparent {
+public class BorderTopColor extends BorderColorCorrespondingAbsolute {
     public static final int dataTypes = ENUM | COLOR_T | INHERIT;
 
     public int getDataTypes() {
@@ -56,5 +57,15 @@ public class BorderTopColor extends ColorTransparent {
         return new ColorType (PropNames.BACKGROUND_COLOR, BLACK);
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingColorProperty(
+                foNode, WritingMode.TOP);
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
+
 }
 
index c070e0c96f8468e45044099de9d0714c2f800500..71dd6121d13a314d24eb90fd0c897628039593fb 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.PropNames;
 import org.apache.fop.fo.expr.PropertyException;
 
-public class BorderTopWidth extends BorderCommonWidth {
+public class BorderTopWidth extends BorderCommonWidthAbsolute {
     public static final int dataTypes = LENGTH | MAPPED_LENGTH | INHERIT;
 
     public int getDataTypes() {
@@ -63,6 +63,15 @@ public class BorderTopWidth extends BorderCommonWidth {
         return inherited;
     }
 
+    public int getCorrespondingProperty(FONode foNode)
+    throws PropertyException {
+        return getCorrespondingWidthProperty(
+                foNode, WritingMode.TOP);
+    }
+
+    public boolean overridesCorresponding(FONode foNode) {
+        return false;
+    }
 
 }