--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+ Copyright 2005 The Apache Software Foundation\r
+\r
+ Licensed under the Apache License, Version 2.0 (the "License");\r
+ you may not use this file except in compliance with the License.\r
+ You may obtain a copy of the License at\r
+\r
+ http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.\r
+-->\r
+<!-- $Id$ -->\r
+<!-- This test verifies the correct values of border-separation and its shorthand, border-spacing. -->\r
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:test="http://xmlgraphics.apache.org/fop/test">\r
+ <fo:layout-master-set>\r
+ <fo:simple-page-master master-name="A4" page-height="29.7cm" page-width="21cm">\r
+ <fo:region-body/>\r
+ </fo:simple-page-master>\r
+ </fo:layout-master-set>\r
+ <fo:page-sequence master-reference="A4">\r
+ <fo:flow flow-name="xsl-region-body">\r
+ <fo:table table-layout="fixed" border-collapse="separate" border-spacing="5pt 2pt">\r
+ <test:assert property="border-separation.inline-progression-direction" expected="5000mpt"/>\r
+ <test:assert property="border-separation.block-progression-direction" expected="2000mpt"/>\r
+ <fo:table-column column-width="160pt"/>\r
+ <fo:table-column column-width="160pt"/>\r
+ <fo:table-body>\r
+ <fo:table-row>\r
+ <fo:table-cell>\r
+ <fo:block>cell1</fo:block>\r
+ </fo:table-cell>\r
+ <fo:table-cell border="solid 5pt black">\r
+ <fo:block>cell2</fo:block>\r
+ </fo:table-cell>\r
+ </fo:table-row>\r
+ <fo:table-row>\r
+ <fo:table-cell border="solid 5pt">\r
+ <fo:block>cell3</fo:block>\r
+ </fo:table-cell>\r
+ <fo:table-cell height="20pt" border="solid 10pt red">\r
+ <fo:block>cell4</fo:block>\r
+ </fo:table-cell>\r
+ </fo:table-row>\r
+ </fo:table-body>\r
+ </fo:table>\r
+ <fo:table table-layout="fixed" border-collapse="separate" \r
+ border-separation.inline-progression-direction="5pt" \r
+ border-separation.block-progression-direction="2pt">\r
+ <test:assert property="border-separation.inline-progression-direction" expected="5000mpt"/>\r
+ <test:assert property="border-separation.block-progression-direction" expected="2000mpt"/>\r
+ <fo:table-column column-width="160pt"/>\r
+ <fo:table-column column-width="160pt"/>\r
+ <fo:table-body start-indent="0pt" end-indent="0pt">\r
+ <fo:table-row>\r
+ <fo:table-cell>\r
+ <fo:block>cell1</fo:block>\r
+ </fo:table-cell>\r
+ <fo:table-cell border="solid 5pt black">\r
+ <fo:block>cell2</fo:block>\r
+ </fo:table-cell>\r
+ </fo:table-row>\r
+ <fo:table-row>\r
+ <fo:table-cell border="solid 5pt">\r
+ <fo:block>cell3</fo:block>\r
+ </fo:table-cell>\r
+ <fo:table-cell height="20pt" border="solid 10pt red">\r
+ <fo:block>cell4</fo:block>\r
+ </fo:table-cell>\r
+ </fo:table-row>\r
+ </fo:table-body>\r
+ </fo:table>\r
+ </fo:flow>\r
+ </fo:page-sequence>\r
+</fo:root>\r
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.FOPropertyMapping;
import org.apache.fop.fo.PropertyList;
+import org.apache.fop.fo.properties.LengthPairProperty;
import org.apache.fop.fo.properties.Property;
import org.apache.fop.fotreetest.ResultCollector;
//super.processNode(elementName, locator, attlist, propertyList);
ResultCollector collector = ResultCollector.getInstance();
- String propName = attlist.getValue("property");
+ String propName = attlist.getValue("property");
+ String component = null;
+ int dotIndex = propName.indexOf('.');
+ if (dotIndex >= 0) {
+ component = propName.substring(dotIndex + 1);
+ propName = propName.substring(0, dotIndex);
+ }
int propID = FOPropertyMapping.getPropertyId(propName);
if (propID < 0) {
collector.notifyException(new IllegalArgumentException(
"Property not found: " + propName));
} else {
- Property prop = propertyList.getParentPropertyList().get(propID);
+ Property prop;
+ prop = propertyList.getParentPropertyList().get(propID);
+ if (component != null) {
+ //Access subcomponent
+ Property mainProp = prop;
+ prop = null;
+ LengthPairProperty lpp = mainProp.getLengthPair();
+ if (lpp != null) {
+ prop = lpp.getComponent(FOPropertyMapping.getSubPropertyId(component));
+ }
+ }
String s = String.valueOf(prop);
String expected = attlist.getValue("expected");
if (!expected.equals(s)) {