gmazza 2003/11/11 05:50:00
Modified: src/java/org/apache/fop/layoutmgr BlockLayoutManager.java
Log:
Partial implementation of space-after functionality--mostly working, but
some remaining problems:
1.) relying on a static variable to carry space-after value from previous
block to current. (BlockLayoutManager is be instantiated for each block
instead of being in memory for all blocks--bad design?)
2.) The space-after of a block ending at the bottom of the page is not
currently being added to the beginning of the subsequent page.
Revision Changes Path
1.9 +12 -3
xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java
Index: BlockLayoutManager.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- BlockLayoutManager.java 11 Nov 2003 04:40:12 -0000 1.8
+++ BlockLayoutManager.java 11 Nov 2003 13:50:00 -0000 1.9
@@ -85,7 +85,9 @@
used in rendering the fo:block.
*/
private MinOptMax foBlockSpaceBefore = null;
- private MinOptMax foBlockSpaceAfter = null; // not currently implemented
+ // need to retain foBlockSpaceAfter from previous instantiation
+ private static MinOptMax foBlockSpaceAfter = null;
+ private MinOptMax prevFoBlockSpaceAfter = null;
private int lead = 12000;
private int lineHeight = 14000;
@@ -181,6 +183,7 @@
borderProps = pm.getBorderAndPadding();
backgroundProps = pm.getBackgroundProps();
foBlockSpaceBefore = layoutProps.spaceBefore.getSpace();
+ prevFoBlockSpaceAfter = foBlockSpaceAfter;
}
public BreakPoss getNextBreakPoss(LayoutContext context) {
@@ -190,9 +193,14 @@
MinOptMax stackSize = new MinOptMax();
+ if (prevFoBlockSpaceAfter != null) {
+ stackSize.add(prevFoBlockSpaceAfter);
+ prevFoBlockSpaceAfter = null;
+ }
+
if (foBlockSpaceBefore != null) {
// this function called before addAreas(), so
- // setting foBlockSpaceBefore = null *in* addAreas()
+ // resetting foBlockSpaceBefore = null in addAreas()
stackSize.add(foBlockSpaceBefore);
}
@@ -308,7 +316,8 @@
flush();
// if adjusted space after
- addBlockSpacing(adjust, layoutProps.spaceAfter.getSpace());
+ foBlockSpaceAfter = layoutProps.spaceAfter.getSpace();
+ addBlockSpacing(adjust, foBlockSpaceAfter);
curBlockArea = null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]