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);
Advertising
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]