]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Tweak page-break-* shorthands; keeps now working properly
authorAndreas L. Delmelle <adelmelle@apache.org>
Fri, 30 Dec 2005 00:18:57 +0000 (00:18 +0000)
committerAndreas L. Delmelle <adelmelle@apache.org>
Fri, 30 Dec 2005 00:18:57 +0000 (00:18 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@359939 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fo/properties/PageBreakShorthandParser.java
test/fotree/testcases/page-break_shorthand-expansion.fo
test/java/org/apache/fop/fotreetest/ext/AssertElement.java

index f139b2999b1995d76531b7cb67f5acec4e9aeb11..24d1f0f59c16b4c652e1c1d4be10d48b42531577 100644 (file)
@@ -21,6 +21,7 @@ package org.apache.fop.fo.properties;
 import org.apache.fop.fo.Constants;
 import org.apache.fop.fo.PropertyList;
 import org.apache.fop.fo.expr.PropertyException;
+import org.apache.fop.fo.properties.KeepProperty;
 
 /**
  * Shorthand parser for page-break-before, page-break-after and page-break-inside.
@@ -41,9 +42,8 @@ public class PageBreakShorthandParser implements ShorthandParser {
                 || propId == Constants.PR_KEEP_WITH_NEXT
                 || propId == Constants.PR_KEEP_TOGETHER) {
             if (property.getEnum() == Constants.EN_AVOID) {
-                return new EnumProperty(Constants.EN_ALWAYS, "ALWAYS");
-            } else {
-                return new EnumProperty(Constants.EN_AUTO, "AUTO");
+                return maker.make(null, Constants.CP_WITHIN_PAGE, 
+                            propertyList, "always", propertyList.getFObj());
             }
         } else if (propId == Constants.PR_BREAK_BEFORE
                 || propId == Constants.PR_BREAK_AFTER) {
@@ -51,12 +51,12 @@ public class PageBreakShorthandParser implements ShorthandParser {
             case Constants.EN_ALWAYS:
                 return new EnumProperty(Constants.EN_PAGE, "PAGE");
             case Constants.EN_LEFT:
-                return new EnumProperty(Constants.EN_EVEN_PAGE, "EVEN-PAGE");
+                return new EnumProperty(Constants.EN_EVEN_PAGE, "EVEN_PAGE");
             case Constants.EN_RIGHT:
-                return new EnumProperty(Constants.EN_ODD_PAGE, "ODD-PAGE");
+                return new EnumProperty(Constants.EN_ODD_PAGE, "ODD_PAGE");
             case Constants.EN_AVOID:
             default:
-                return new EnumProperty(Constants.EN_AUTO, "AUTO");
+                //nop;
             }
         }
         return null;
index 5643e6bd84d1cd6bd3d6d8e2e0c609b96bd63fbb..71743c208e5754fb24b558f3dc85478a49902313 100644 (file)
       <fo:flow flow-name="xsl-region-body">
         <fo:block page-break-before="avoid">
           <test:assert property="break-before" expected="AUTO" />
-          <test:assert property="keep-with-previous" expected="ALWAYS" />
+          <test:assert property="keep-with-previous.within-page" expected="ALWAYS" />
           Block 1: testing page-break-before="avoid"
         </fo:block>
         <fo:block page-break-before="always">
           <test:assert property="break-before" expected="PAGE" />
-          <test:assert property="keep-with-previous" expected="AUTO" />
+          <test:assert property="keep-with-previous.within-page" expected="AUTO" />
           Block 2: testing page-break-before="always"
         </fo:block>
         <fo:block page-break-before="left">
-          <test:assert property="break-before" expected="EVEN-PAGE" />
-          <test:assert property="keep-with-previous" expected="AUTO" />
+          <test:assert property="break-before" expected="EVEN_PAGE" />
+          <test:assert property="keep-with-previous.within-page" expected="AUTO" />
           Block 3: testing page-break-before="left"
         </fo:block>
         <fo:block page-break-before="right">
-          <test:assert property="break-before" expected="ODD-PAGE" />
-          <test:assert property="keep-with-previous" expected="AUTO" />
+          <test:assert property="break-before" expected="ODD_PAGE" />
+          <test:assert property="keep-with-previous.within-page" expected="AUTO" />
           Block 4: testing page-break-before="right"
         </fo:block>
         <fo:block page-break-after="avoid">
           <test:assert property="break-after" expected="AUTO" />
-          <test:assert property="keep-with-next" expected="ALWAYS" />
+          <test:assert property="keep-with-next.within-page" expected="ALWAYS" />
           Block 5: testing page-break-after="avoid"
         </fo:block>
         <fo:block page-break-after="always">
           <test:assert property="break-after" expected="PAGE" />
-          <test:assert property="keep-with-next" expected="AUTO" />
+          <test:assert property="keep-with-next.within-page" expected="AUTO" />
           Block 6: testing page-break-after="always"
         </fo:block>
         <fo:block page-break-after="left">
-          <test:assert property="break-after" expected="EVEN-PAGE" />
-          <test:assert property="keep-with-next" expected="AUTO" />
+          <test:assert property="break-after" expected="EVEN_PAGE" />
+          <test:assert property="keep-with-next.within-page" expected="AUTO" />
           Block 7: testing page-break-after="left"
         </fo:block>
         <fo:block page-break-after="right">
-          <test:assert property="break-after" expected="ODD-PAGE" />
-          <test:assert property="keep-with-next" expected="AUTO" />
+          <test:assert property="break-after" expected="ODD_PAGE" />
+          <test:assert property="keep-with-next.within-page" expected="AUTO" />
           Block 8: testing page-break-after="right"
         </fo:block>
         <fo:block page-break-inside="avoid">
-          <test:assert property="keep-together" expected="ALWAYS" />
+          <test:assert property="keep-together.within-page" expected="ALWAYS" />
           Block 9: testing page-break-inside="avoid"
         </fo:block>
         <fo:block page-break-before="left" page-break-inside="avoid"
                   page-break-after="right">
-          <test:assert property="break-before" expected="EVEN-PAGE" />
-          <test:assert property="keep-with-previous" expected="AUTO" />
-          <test:assert property="break-after" expected="ODD-PAGE" />
-          <test:assert property="keep-with-next" expected="AUTO" />
-          <test:assert property="keep-together" expected="ALWAYS" />
+          <test:assert property="break-before" expected="EVEN_PAGE" />
+          <test:assert property="keep-with-previous.within-page" expected="AUTO" />
+          <test:assert property="break-after" expected="ODD_PAGE" />
+          <test:assert property="keep-with-next.within-page" expected="AUTO" />
+          <test:assert property="keep-together.within-page" expected="ALWAYS" />
          Block 10: testing page-break-before="left", page-break-inside="avoid"
           and page-break-after="right"
         </fo:block>
index 0dfb4d41b20af81cb56ea62794e0502d2626ec8a..0a40b76042cc6389b4d64e3533bb2c1948707bec 100644 (file)
@@ -23,6 +23,7 @@ import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FOPropertyMapping;
 import org.apache.fop.fo.PropertyList;
+import org.apache.fop.fo.properties.KeepProperty;
 import org.apache.fop.fo.properties.LengthPairProperty;
 import org.apache.fop.fo.properties.LengthRangeProperty;
 import org.apache.fop.fo.properties.Property;
@@ -79,6 +80,10 @@ public class AssertElement extends TestObj {
                 if (lrp != null) {
                     prop = lrp.getComponent(FOPropertyMapping.getSubPropertyId(component));
                 }
+                KeepProperty kp = mainProp.getKeep();
+                if (kp != null) {
+                    prop = kp.getComponent(FOPropertyMapping.getSubPropertyId(component));
+                }
             }
             String s = String.valueOf(prop);
             String expected = attlist.getValue("expected");