keiron 2002/11/28 05:04:51 Modified: src/org/apache/fop/layoutmgr/list ListBlockLayoutManager.java ListItemLayoutManager.java src/org/apache/fop/layoutmgr/table Cell.java TableLayoutManager.java Log: added table header and footer Revision Changes Path 1.5 +2 -1 xml-fop/src/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java Index: ListBlockLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ListBlockLayoutManager.java 18 Nov 2002 15:54:15 -0000 1.4 +++ ListBlockLayoutManager.java 28 Nov 2002 13:04:51 -0000 1.5 @@ -104,6 +104,7 @@ } else { curLM.resetPosition(null); } + over = true; break; } stackSize.add(bp.getStackingSize()); 1.6 +2 -1 xml-fop/src/org/apache/fop/layoutmgr/list/ListItemLayoutManager.java Index: ListItemLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/list/ListItemLayoutManager.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ListItemLayoutManager.java 19 Nov 2002 07:00:27 -0000 1.5 +++ ListItemLayoutManager.java 28 Nov 2002 13:04:51 -0000 1.6 @@ -135,6 +135,7 @@ } else { curLM.resetPosition(null); } + over = true; break; } else { lastPos = bp; 1.8 +2 -1 xml-fop/src/org/apache/fop/layoutmgr/table/Cell.java Index: Cell.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/table/Cell.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Cell.java 18 Nov 2002 15:54:16 -0000 1.7 +++ Cell.java 28 Nov 2002 13:04:51 -0000 1.8 @@ -258,6 +258,7 @@ public void resetPosition(Position resetPos) { if (resetPos == null) { reset(null); + childBreaks.clear(); } } } 1.6 +39 -6 xml-fop/src/org/apache/fop/layoutmgr/table/TableLayoutManager.java Index: TableLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/table/TableLayoutManager.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- TableLayoutManager.java 18 Nov 2002 15:54:16 -0000 1.5 +++ TableLayoutManager.java 28 Nov 2002 13:04:51 -0000 1.6 @@ -86,6 +86,7 @@ */ public void setTableHeader(Body th) { tableHeader = th; + tableHeader.setParentLM(this); } /** @@ -95,6 +96,7 @@ */ public void setTableFooter(Body tf) { tableFooter = tf; + tableFooter.setParentLM(this); } /** @@ -115,14 +117,26 @@ MinOptMax headerSize = null; if (tableHeader != null) { + tableHeader.resetPosition(null); headerBreak = getHeight(tableHeader, context); headerSize = headerBreak.getStackingSize(); + stackSize.add(headerSize); } MinOptMax footerSize = null; if (tableFooter != null) { + tableFooter.resetPosition(null); footerBreak = getHeight(tableFooter, context); footerSize = footerBreak.getStackingSize(); + stackSize.add(footerSize); + } + + if (stackSize.opt > context.getStackLimit().max) { + BreakPoss breakPoss = new BreakPoss( + new LeafPosition(this, 0)); + breakPoss.setFlag(BreakPoss.NEXT_OVERFLOWS, true); + breakPoss.setStackingSize(stackSize); + return breakPoss; } while ((curLM = (Body)getChildLM()) != null) { @@ -213,7 +227,6 @@ new SectionPosition(this, breaks.size() - 1, breaks)); breakPoss.setStackingSize(stackSize); return breakPoss; - } /** @@ -230,13 +243,22 @@ // add column, body then row areas - // add table header areas - int tableHeight = 0; - Body childLM; - int iStartPos = 0; LayoutContext lc = new LayoutContext(0); + + // add table header areas + if (headerBreak != null) { + SectionPosition pos = (SectionPosition)headerBreak.getPosition(); + List list = pos.list; + PositionIterator breakPosIter = new BreakPossPosIter(list, 0, list.size() + 1); + while ((childLM = (Body)breakPosIter.getNextChildLM()) != null) { + childLM.addAreas(breakPosIter, lc); + tableHeight += childLM.getBodyHeight(); + } + } + + int iStartPos = 0; while (parentIter.hasNext()) { LeafPosition lfp = (LeafPosition) parentIter.next(); // Add the block areas to Area @@ -245,12 +267,23 @@ lfp.getLeafPos() + 1); iStartPos = lfp.getLeafPos() + 1; while ((childLM = (Body)breakPosIter.getNextChildLM()) != null) { + childLM.setYOffset(tableHeight); childLM.addAreas(breakPosIter, lc); tableHeight += childLM.getBodyHeight(); } } // add footer areas + if (footerBreak != null) { + SectionPosition pos = (SectionPosition)footerBreak.getPosition(); + List list = pos.list; + PositionIterator breakPosIter = new BreakPossPosIter(list, 0, list.size() + 1); + while ((childLM = (Body)breakPosIter.getNextChildLM()) != null) { + childLM.setYOffset(tableHeight); + childLM.addAreas(breakPosIter, lc); + tableHeight += childLM.getBodyHeight(); + } + } curBlockArea.setHeight(tableHeight);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]