Author: vhennebert
Date: Wed Jan 28 15:33:02 2009
New Revision: 738514

URL: http://svn.apache.org/viewvc?rev=738514&view=rev
Log:
Bugzilla #46315: extension to disable column balancing before blocks spanning 
the whole page, in multiple-column documents.
Patch submitted by Georg Datterl, applied with some modifications (mainly 
Checkstyle issues)

Added:
    
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_disable-column-balancing.xml
   (with props)
Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/BlockContainer.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutContext.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/PageBreaker.java
    xmlgraphics/fop/trunk/status.xml

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java?rev=738514&r1=738513&r2=738514&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java Wed Jan 28 
15:33:02 2009
@@ -766,8 +766,13 @@
     int PR_X_WIDOW_CONTENT_LIMIT = 271;
     /** Property constant - FOP proprietary: limit for orphan content in lists 
and tables */
     int PR_X_ORPHAN_CONTENT_LIMIT = 272;
+    /**
+     * Property constant - FOP proprietary: disable balancing of columns in
+     * multi-column layouts.
+     */
+    int PR_X_DISABLE_COLUMN_BALANCING = 273;
     /** Number of property constants defined */
-    int PROPERTY_COUNT = 272;
+    int PROPERTY_COUNT = 273;
 
     // compound property constants
 

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java?rev=738514&r1=738513&r2=738514&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FOPropertyMapping.java Wed 
Jan 28 15:33:02 2009
@@ -1895,6 +1895,13 @@
         m.addEnum("all", getEnumProperty(EN_ALL, "ALL"));
         m.setDefault("none");
         addPropertyMaker("span", m);
+
+        // fox:disable-column-balancing
+        m  = new EnumProperty.Maker(PR_X_DISABLE_COLUMN_BALANCING);
+        m.useGeneric(genericBoolean);
+        m.setInherited(true);
+        m.setDefault("false");
+        addPropertyMaker("fox:disable-column-balancing", m);
     }
 
     private void createLeaderAndRuleProperties() {

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java?rev=738514&r1=738513&r2=738514&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
 Wed Jan 28 15:33:02 2009
@@ -45,6 +45,7 @@
         propertyAttributes.add("widow-content-limit");
         propertyAttributes.add("orphan-content-limit");
         propertyAttributes.add("internal-destination");
+        propertyAttributes.add("disable-column-balancing");
     }
 
     /**

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java?rev=738514&r1=738513&r2=738514&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java Wed Jan 28 
15:33:02 2009
@@ -21,8 +21,6 @@
 
 import java.awt.Color;
 
-import org.xml.sax.Locator;
-
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.Numeric;
@@ -40,6 +38,7 @@
 import org.apache.fop.fo.properties.CommonRelativePosition;
 import org.apache.fop.fo.properties.KeepProperty;
 import org.apache.fop.fo.properties.SpaceProperty;
+import org.xml.sax.Locator;
 
  /**
   * Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_block";>
@@ -80,6 +79,7 @@
     private int whiteSpaceCollapse;
     private Numeric widows;
     private int wrapOption;
+    private int disableColumnBalancing;
     // Unused but valid items, commented out for performance:
     //     private CommonAccessibility commonAccessibility;
     //     private CommonAural commonAural;
@@ -130,6 +130,7 @@
         whiteSpaceCollapse = pList.get(PR_WHITE_SPACE_COLLAPSE).getEnum();
         widows = pList.get(PR_WIDOWS).getNumeric();
         wrapOption = pList.get(PR_WRAP_OPTION).getEnum();
+        disableColumnBalancing = 
pList.get(PR_X_DISABLE_COLUMN_BALANCING).getEnum();
     }
 
     /** {...@inheritdoc} */
@@ -318,6 +319,15 @@
         return this.lineHeightShiftAdjustment;
     }
 
+     /**
+     * @return the "fox:disable-column-balancing" property, one of
+     * {...@link Constants#EN_TRUE}, {...@link Constants#EN_FALSE}
+     */
+     public int getDisableColumnBalancing() {
+         return disableColumnBalancing;
+     }
+
+
     /** {...@inheritdoc} */
     public CharIterator charIterator() {
         return NullCharIterator.getInstance();

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/BlockContainer.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/BlockContainer.java?rev=738514&r1=738513&r2=738514&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/BlockContainer.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/BlockContainer.java 
Wed Jan 28 15:33:02 2009
@@ -19,10 +19,7 @@
 
 package org.apache.fop.fo.flow;
 
-import org.xml.sax.Locator;
-
 import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.Length;
 import org.apache.fop.datatypes.Numeric;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
@@ -34,6 +31,7 @@
 import org.apache.fop.fo.properties.CommonMarginBlock;
 import org.apache.fop.fo.properties.KeepProperty;
 import org.apache.fop.fo.properties.LengthRangeProperty;
+import org.xml.sax.Locator;
 
 /**
  * Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_block-container";>
@@ -56,6 +54,7 @@
     private int overflow;
     private Numeric referenceOrientation;
     private int span;
+    private int disableColumnBalancing;
     private int writingMode;
     // Unused but valid items, commented out for performance:
     //     private int intrusionDisplace;
@@ -94,6 +93,7 @@
         referenceOrientation = 
pList.get(PR_REFERENCE_ORIENTATION).getNumeric();
         span = pList.get(PR_SPAN).getEnum();
         writingMode = pList.get(PR_WRITING_MODE).getEnum();
+        disableColumnBalancing = 
pList.get(PR_X_DISABLE_COLUMN_BALANCING).getEnum();
     }
 
     /** {...@inheritdoc} */
@@ -217,6 +217,15 @@
         return this.span;
     }
 
+    /**
+     * @return the "fox:disable-column-balancing" property, one of
+     * {...@link Constants#EN_TRUE}, {...@link Constants#EN_FALSE}
+     */
+    public int getDisableColumnBalancing() {
+        return disableColumnBalancing;
+    }
+
+
     /** @return the "writing-mode" property */
     public int getWritingMode() {
         return writingMode;

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java?rev=738514&r1=738513&r2=738514&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java 
(original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java 
Wed Jan 28 15:33:02 2009
@@ -25,7 +25,6 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-
 import org.apache.fop.area.Area;
 import org.apache.fop.area.BlockParent;
 import org.apache.fop.fo.pagination.Flow;
@@ -82,14 +81,22 @@
             }
 
             int span = EN_NONE;
+            int disableColumnBalancing = EN_FALSE;
             if (curLM instanceof BlockLayoutManager) {
                 span = ((BlockLayoutManager)curLM).getBlockFO().getSpan();
+                disableColumnBalancing = ((BlockLayoutManager) 
curLM).getBlockFO()
+                        .getDisableColumnBalancing();
             } else if (curLM instanceof BlockContainerLayoutManager) {
                 span = 
((BlockContainerLayoutManager)curLM).getBlockContainerFO().getSpan();
+                disableColumnBalancing = ((BlockContainerLayoutManager) curLM)
+                        .getBlockContainerFO().getDisableColumnBalancing();
             }
 
             int currentSpan = context.getCurrentSpan();
             if (currentSpan != span) {
+                if (span == EN_ALL) {
+                    context.setDisableColumnBalancing(disableColumnBalancing);
+                }
                 log.debug("span change from " + currentSpan + " to " + span);
                 context.signalSpanChange(span);
                 SpaceResolver.resolveElementList(returnList);

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutContext.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutContext.java?rev=738514&r1=738513&r2=738514&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutContext.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutContext.java 
Wed Jan 28 15:33:02 2009
@@ -148,6 +148,8 @@
     private int pendingKeepWithNext = BlockLevelLayoutManager.KEEP_AUTO;
     private int pendingKeepWithPrevious = BlockLevelLayoutManager.KEEP_AUTO;
 
+    private int disableColumnBalancing;
+
     /**
      * Copy constructor for creating child layout contexts.
      * @param parentLC the parent layout context to copy from
@@ -170,6 +172,7 @@
         this.pendingKeepWithNext = parentLC.pendingKeepWithNext;
         this.pendingKeepWithPrevious = parentLC.pendingKeepWithPrevious;
         // Copy other fields as necessary.
+        this.disableColumnBalancing = parentLC.disableColumnBalancing;
     }
 
     /**
@@ -412,7 +415,7 @@
 
     /**
      * Sets (Copies) the stack limits in both directions from another layout 
context.
-     * @param context the layout context to taje the values from
+     * @param context the layout context to take the values from
      */
     public void setStackLimitsFrom(LayoutContext context) {
         setStackLimitBP(context.getStackLimitBP());
@@ -681,5 +684,23 @@
         + (breakAfter != Constants.EN_AUTO ? "break-after" : "") + "]";
     }
 
+    /**
+     * Returns whether the column balancer should be disabled before a 
spanning block
+     *
+     * @return one of {...@link Constants#EN_TRUE}, {...@link 
Constants#EN_FALSE}
+     */
+    public int getDisableColumnBalancing() {
+        return disableColumnBalancing;
+    }
+
+    /**
+     * Sets whether the column balancer should be disabled before a spanning 
block
+     *
+     * @param disableColumnBalancing the value of the 
fox:disable-column-balancing property
+     * @see #getDisableColumnBalancing()
+     */
+    public void setDisableColumnBalancing(int disableColumnBalancing) {
+        this.disableColumnBalancing = disableColumnBalancing;
+    }
 }
 

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/PageBreaker.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/PageBreaker.java?rev=738514&r1=738513&r2=738514&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/PageBreaker.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/PageBreaker.java 
Wed Jan 28 15:33:02 2009
@@ -108,7 +108,9 @@
         if (childLC.getNextSpan() != Constants.NOT_SET) {
             //Next block list will have a different span.
             nextSequenceStartsOn = childLC.getNextSpan();
-            needColumnBalancing = (childLC.getNextSpan() == Constants.EN_ALL);
+            needColumnBalancing = childLC.getNextSpan() == Constants.EN_ALL
+                    && childLC.getDisableColumnBalancing() == 
Constants.EN_FALSE;
+
         }
         if (needColumnBalancing) {
             AbstractBreaker.log.debug(

Modified: xmlgraphics/fop/trunk/status.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=738514&r1=738513&r2=738514&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Wed Jan 28 15:33:02 2009
@@ -58,6 +58,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="Layout" dev="VH" type="add" fixes-bug="46315" 
due-to="Georg Datterl">
+        Added extension to disable column balancing before blocks spanning the 
whole page, in 
+        multiple-column documents.
+      </action>
       <action context="Renderers" dev="JM" type="add">
         AFP Output: Bilevel images in resource groups as generated as hard 
page segments
         (instead of image objects) for better interoperability with older IPDS 
environments

Added: 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_disable-column-balancing.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_disable-column-balancing.xml?rev=738514&view=auto
==============================================================================
--- 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_disable-column-balancing.xml
 (added)
+++ 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_disable-column-balancing.xml
 Wed Jan 28 15:33:02 2009
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+<!-- $Id$ -->
+<testcase>
+  <info>
+    <p>
+      This test checks fox:disable-column-balancing.
+    </p>
+  </info>
+  <fo>
+      <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"; 
+        xmlns:fox="http://xmlgraphics.apache.org/fop/extensions";
+        font-size="10pt" line-height="12pt">
+          <fo:layout-master-set>
+              <fo:simple-page-master page-height="250pt" page-width="200pt" 
master-name="page">
+                  <fo:region-body margin-right="3pt" margin-left="3pt" 
margin-bottom="14pt" 
+                    margin-top="8pt" column-count="2"/>
+              </fo:simple-page-master>
+          </fo:layout-master-set>
+          <!-- sequence 1: column balancing disabled -->
+          <fo:page-sequence master-reference="page" background-color="#AAAAAA">
+              <fo:flow flow-name="xsl-region-body" background-color="#80F010" 
+                fox:disable-column-balancing="true">
+                <fo:block background-color="#10F010">AAA AAA AAA AAA AAA AAA 
AAA AAA AAA AAA AAA 
+                  AAA</fo:block>
+                  <fo:block background-color="#20E020">BBB BBB BBB BBB BBB BBB 
BBB BBB BBB BBB BBB 
+                    BBB BBB</fo:block>
+                  <fo:block background-color="#80D030">CCC CCC CCC CCC CCC CCC 
CCC CCC CCC CCC CCC 
+                    CCC CCC</fo:block>
+                  <fo:block background-color="#30C040">DDD DDD DDD DDD DDD DDD 
DDD DDD DDD DDD DDD 
+                    DDD DDD</fo:block>
+                  <fo:block background-color="#90B050">EEE EEE EEE EEE EEE EEE 
EEE EEE EEE EEE EEE 
+                    EEE EEE EEE EEE</fo:block>
+                  <fo:block background-color="#40A060">FFF FFF FFF FFF FFF FFF 
FFF FFF FFF FFF FFF 
+                    FFF FFF FFF FFF</fo:block>
+                  <fo:block background-color="#A09070">GGG GGG GGG GGG GGG GGG 
GGG GGG GGG GGG GGG 
+                    GGG</fo:block>
+                  <fo:block background-color="#508080">HHH HHH HHH HHH HHH HHH 
HHH HHH HHH HHH HHH 
+                    HHH HHH</fo:block>
+                  <fo:block background-color="#B07090">III III III III III III 
III III III III III 
+                    III III III III III III III III III III III</fo:block>
+                  <fo:block background-color="#6060A0">JJJ JJJ JJJ JJJ JJJ JJJ 
JJJ JJJ JJJ JJJ JJJ 
+                    JJJ JJJ JJJ JJJ JJJ</fo:block>
+                  <fo:block span="all" id="span1" 
background-color="#C050B0">KKK KKK KKK KKK KKK KKK 
+                    KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK 
KKK KKK KKK 
+                    KKK</fo:block>
+                  <fo:block background-color="#7040C0">LLL LLL LLL LLL LLL LLL 
LLL LLL LLL LLL LLL 
+                    LLL LLL LLL</fo:block>
+                  <fo:block background-color="#D0F010">MMM MMM MMM MMM MMM MMM 
MMM MMM MMM 
+                    MMM</fo:block>
+                  <fo:block background-color="#8030D0">NNN NNN NNN NNN NNN NNN 
NNN NNN NNN NNN NNN 
+                    NNN NNN</fo:block>
+                  <fo:block background-color="#E020E0">OOO OOO OOO OOO OOO OOO 
OOO OOO OOO OOO 
+                    OOO</fo:block>
+                  <fo:block background-color="#9010F0">PPP PPP PPP PPP PPP PPP 
PPP PPP PPP PPP 
+                    PPP</fo:block>
+                  <fo:block background-color="#F0F010">QQQ QQQ QQQ QQQ QQQ QQQ 
QQQ QQQ 
+                    QQQ</fo:block>
+                  <fo:block background-color="#A0E020">RRR RRR RRR RRR RRR RRR 
RRR RRR RRR RRR RRR 
+                    RRR RRR</fo:block>
+                  <fo:block background-color="#10D030">SSS SSS SSS SSS SSS SSS 
SSS SSS SSS SSS SSS 
+                    SSS SSS</fo:block>
+                  <fo:block background-color="#B0C040">TTT TTT TTT TTT TTT TTT 
TTT TTT TTT TTT TTT 
+                    TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT 
TTT</fo:block>
+                  <fo:block span="all" id="span2" 
background-color="#20B050">UUU UUU UUU UUU UUU UUU 
+                    UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU 
UUU UUU UUU UUU UUU UUU 
+                    UUU UUU UUU UUU</fo:block>
+                  <fo:block background-color="#C0A060">VVV VVV VVV VVV VVV VVV 
VVV VVV VVV VVV VVV 
+                    VVV</fo:block>
+                  <fo:block background-color="#309070">WWW WWW WWW WWW WWW WWW 
WWW WWW WWW 
+                    WWW</fo:block>
+                  <fo:block background-color="#D08080">XXX XXX XXX XXX XXX XXX 
XXX XXX XXX XXX XXX 
+                    XXX XXX XXX</fo:block>
+                  <fo:block background-color="#407090">YYY YYY YYY YYY YYY YYY 
YYY YYY YYY YYY YYY 
+                    YYY YYY</fo:block>
+                  <fo:block background-color="#E060A0">ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ 
ZZZ ZZZ ZZZ ZZZ ZZZ 
+                    ZZZ ZZZ ZZZ ZZZ</fo:block>
+              </fo:flow>
+          </fo:page-sequence>
+          <!-- sequence 2: column balancing enabled -->
+          <fo:page-sequence master-reference="page" initial-page-number="1" 
background-color="#AAAAAA">
+              <fo:flow flow-name="xsl-region-body" background-color="#80F010" 
+                fox:disable-column-balancing="false">
+                  <fo:block background-color="#10F010">AAA AAA AAA AAA AAA AAA 
AAA AAA AAA 
+                    AAA</fo:block>
+                  <fo:block background-color="#20E020">BBB BBB BBB BBB BBB BBB 
BBB BBB BBB BBB 
+                    BBB</fo:block>
+                  <fo:block background-color="#80D030">CCC CCC CCC CCC CCC CCC 
CCC CCC CCC CCC 
+                    CCC</fo:block>
+                  <fo:block background-color="#30C040">DDD DDD DDD DDD DDD DDD 
DDD DDD DDD DDD 
+                    DDD</fo:block>
+                  <fo:block background-color="#90B050">EEE EEE EEE EEE EEE EEE 
EEE EEE EEE EEE EEE 
+                    EEE EEE</fo:block>
+                  <fo:block background-color="#40A060">FFF FFF FFF FFF FFF FFF 
FFF FFF FFF FFF FFF 
+                    FFF FFF</fo:block>
+                  <fo:block background-color="#A09070">GGG GGG GGG GGG GGG GGG 
GGG GGG GGG 
+                    GGG</fo:block>
+                  <fo:block background-color="#508080">HHH HHH HHH HHH HHH HHH 
HHH HHH HHH HHH HHH 
+                    HHH HHH</fo:block>
+                  <fo:block background-color="#B07090">III III III III III III 
III III III III III 
+                    III III III III III III III III III III III III III III 
III III III</fo:block>
+                  <fo:block background-color="#6060A0">JJJ JJJ JJJ JJJ JJJ JJJ 
JJJ JJJ JJJ JJJ JJJ 
+                    JJJ JJJ JJJ JJJ JJJ</fo:block>
+                  <fo:block span="all" id="span3" 
background-color="#C050B0">KKK KKK KKK KKK KKK KKK 
+                    KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK 
KKK KKK KKK 
+                    KKK</fo:block>
+                  <fo:block background-color="#7040C0">LLL LLL LLL LLL LLL LLL 
LLL LLL LLL LLL LLL 
+                    LLL LLL LLL</fo:block>
+                  <fo:block background-color="#D0F010">MMM MMM MMM MMM MMM MMM 
MMM MMM MMM 
+                    MMM</fo:block>
+                  <fo:block background-color="#8030D0">NNN NNN NNN NNN NNN NNN 
NNN NNN NNN 
+                    NNN NNN NNN NNN</fo:block>
+                  <fo:block background-color="#E020E0">OOO OOO OOO OOO OOO OOO 
OOO OOO OOO 
+                    OOO OOO</fo:block>
+                  <fo:block background-color="#9010F0">PPP PPP PPP PPP PPP PPP 
PPP PPP PPP 
+                    PPP PPP PPP PPP PPP PPP</fo:block>
+                  <fo:block background-color="#F0F010">QQQ QQQ QQQ QQQ QQQ QQQ 
QQQ QQQ QQQ 
+                    QQQ QQQ</fo:block>
+                  <fo:block background-color="#A0E020">RRR RRR RRR RRR RRR RRR 
RRR RRR RRR RRR 
+                    RRR</fo:block>
+                  <fo:block background-color="#10D030">SSS SSS SSS SSS SSS SSS 
SSS SSS SSS SSS 
+                    SSS</fo:block>
+                  <fo:block background-color="#B0C040">TTT TTT TTT TTT TTT TTT 
TTT TTT TTT TTT TTT 
+                    TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT 
TTT TTT</fo:block>
+                  <fo:block span="all" id="span4" 
background-color="#20B050">UUU UUU UUU UUU UUU UUU 
+                    UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU 
UUU UUU UUU UUU UUU UUU 
+                    UUU UUU</fo:block>
+                  <fo:block background-color="#C0A060">VVV VVV VVV VVV VVV VVV 
VVV VVV VVV VVV VVV 
+                    VVV</fo:block>
+                  <fo:block background-color="#309070">WWW WWW WWW WWW WWW WWW 
WWW WWW WWW 
+                    WWW</fo:block>
+                  <fo:block background-color="#D08080">XXX XXX XXX XXX XXX XXX 
XXX XXX XXX 
+                    XXX XXX XXX XXX XXX</fo:block>
+                  <fo:block background-color="#407090">YYY YYY YYY YYY YYY YYY 
YYY YYY YYY 
+                    YYY YYY YYY YYY</fo:block>
+                  <fo:block background-color="#E060A0">ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ 
ZZZ ZZZ ZZZ 
+                    ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ</fo:block>
+              </fo:flow>
+          </fo:page-sequence>
+          <!-- sequence 3: mixed -->
+          <fo:page-sequence master-reference="page" initial-page-number="1" 
background-color="#AAAAAA">
+              <fo:flow flow-name="xsl-region-body" background-color="#80F010">
+                  <fo:block background-color="#10F010">AAA AAA AAA AAA AAA AAA 
AAA AAA AAA 
+                    AAA</fo:block>
+                  <fo:block background-color="#20E020">BBB BBB 
+                    BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB</fo:block>
+                  <fo:block background-color="#80D030">CCC CCC CCC CCC CCC CCC 
CCC CCC CCC CCC CCC 
+                    CCC CCC</fo:block>
+                  <fo:block background-color="#30C040">DDD DDD DDD DDD DDD DDD 
DDD DDD DDD DDD 
+                    DDD</fo:block>
+                  <fo:block background-color="#90B050">EEE EEE EEE EEE EEE EEE 
EEE EEE EEE 
+                    EEE EEE EEE EEE</fo:block>
+                  <fo:block background-color="#40A060">FFF FFF FFF FFF FFF FFF 
FFF FFF FFF 
+                    FFF FFF FFF FFF</fo:block>
+                  <fo:block background-color="#A09070">GGG GGG GGG GGG GGG GGG 
GGG GGG GGG 
+                    GGG</fo:block>
+                  <fo:block background-color="#508080">HHH HHH HHH HHH HHH HHH 
HHH HHH HHH 
+                    HHH HHH</fo:block>
+                  <fo:block background-color="#B07090">III III III III III III 
III III III 
+                    III III III III III III III III III III III</fo:block>
+                  <fo:block background-color="#6060A0">JJJ JJJ JJJ JJJ JJJ JJJ 
JJJ JJJ JJJ 
+                    JJJ JJJ JJJ JJJ JJJ JJJ JJJ</fo:block>
+                  <fo:block span="all" id="span5" 
fox:disable-column-balancing="true" 
+                    background-color="#C050B0">KKK KKK KKK KKK KKK KKK KKK KKK 
KKK KKK KKK KKK KKK 
+                    KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK</fo:block>
+                  <fo:block background-color="#7040C0">LLL LLL LLL LLL LLL LLL 
LLL LLL LLL LLL LLL 
+                    LLL LLL LLL</fo:block>
+                  <fo:block background-color="#D0F010">MMM MMM MMM MMM MMM MMM 
MMM MMM MMM 
+                    MMM</fo:block>
+                  <fo:block background-color="#8030D0">NNN NNN NNN NNN NNN NNN 
NNN NNN NNN 
+                    NNN NNN NNN NNN</fo:block>
+                  <fo:block background-color="#E020E0">OOO OOO OOO OOO OOO OOO 
OOO OOO OOO 
+                    OOO OOO</fo:block>
+                  <fo:block background-color="#9010F0">PPP PPP PPP PPP PPP PPP 
PPP PPP PPP 
+                    PPP PPP PPP PPP PPP PPP</fo:block>
+                  <fo:block background-color="#F0F010">QQQ QQQ QQQ QQQ QQQ QQQ 
QQQ QQQ QQQ 
+                    QQQ QQQ</fo:block>
+                  <fo:block background-color="#A0E020">RRR RRR RRR RRR RRR RRR 
RRR RRR RRR 
+                    RRR RRR RRR RRR</fo:block>
+                  <fo:block background-color="#10D030">SSS SSS SSS SSS SSS SSS 
SSS SSS SSS 
+                    SSS SSS SSS SSS</fo:block>
+                  <fo:block background-color="#B0C040">TTT TTT TTT TTT TTT TTT 
TTT TTT TTT TTT TTT 
+                    TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT TTT 
TTT TTT TTT TTT TTT 
+                    TTT</fo:block>
+                  <fo:block span="all" id="span6" 
background-color="#20B050">UUU UUU UUU UUU UUU UUU 
+                    UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU UUU 
UUU UUU UUU UUU UUU UUU 
+                    UUU UUU</fo:block>
+                  <fo:block background-color="#C0A060">VVV VVV VVV VVV VVV VVV 
VVV VVV VVV VVV VVV 
+                    VVV</fo:block>
+                  <fo:block background-color="#309070">WWW WWW WWW WWW WWW WWW 
WWW WWW WWW 
+                    WWW</fo:block>
+                  <fo:block background-color="#D08080">XXX XXX XXX XXX XXX XXX 
XXX XXX XXX 
+                    XXX XXX XXX XXX XXX</fo:block>
+                  <fo:block background-color="#407090">YYY YYY YYY YYY YYY YYY 
YYY YYY YYY 
+                    YYY YYY YYY YYY</fo:block>
+                  <fo:block background-color="#E060A0">ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ 
ZZZ ZZZ ZZZ 
+                    ZZZ ZZZ ZZZ ZZZ ZZZ ZZZ</fo:block>
+              </fo:flow>
+          </fo:page-sequence>
+      </fo:root>
+  </fo>
+  <checks>
+    <eval expected="0" 
xpath="//pageSequence[1]/pageViewport[2]//span[1]/flow[2]/@bpd"/>
+    <eval expected="12000" 
xpath="//pageSequence[1]/pageViewport[3]//span[2]/@bpd"/>
+    <!-- TODO Replace with the following test once bugs affecting multiple 
columns have been 
+    corrected
+        <eval expected="0" 
xpath="count(//pageSequence[1]/pageViewport[3]//blo...@prod-id='span2'])"/>
+    -->
+
+    <eval expected="24000" 
xpath="//pageSequence[2]/pageViewport[2]//span[1]/flow[2]/@bpd"/>
+    <eval expected="84000" 
xpath="//pageSequence[2]/pageViewport[3]//span[1]/flow[2]/@bpd"/>
+
+    <eval expected="0" 
xpath="//pageSequence[3]/pageViewport[2]//span[1]/flow[2]/@bpd"/>
+    <eval expected="180000" 
xpath="//pageSequence[3]/pageViewport[3]//span[1]/flow[2]/@bpd"/>
+  </checks>
+</testcase>

Propchange: 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_disable-column-balancing.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_disable-column-balancing.xml
------------------------------------------------------------------------------
    svn:keywords = Revision Id



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

Reply via email to