keiron 2002/11/06 07:46:55 Modified: src/org/apache/fop/layoutmgr BlockContainerLayoutManager.java src/org/apache/fop/layoutmgr/list Item.java ListBlockLayoutManager.java ListItemLayoutManager.java src/org/apache/fop/layoutmgr/table Body.java Caption.java Cell.java Row.java TableAndCaptionLayoutManager.java Log: some minor improvements to make layout work a bit better Revision Changes Path 1.4 +15 -15 xml-fop/src/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java Index: BlockContainerLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BlockContainerLayoutManager.java 13 Sep 2002 08:21:54 -0000 1.3 +++ BlockContainerLayoutManager.java 6 Nov 2002 15:46:55 -0000 1.4 @@ -58,7 +58,7 @@ propManager = pm; abProps = pm.getAbsolutePositionProps(); - if(abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { + if (abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { Rectangle2D rect = new Rectangle2D.Double(abProps.left, abProps.top, abProps.right - abProps.left, abProps.bottom - abProps.top); @@ -77,7 +77,7 @@ public BreakPoss getNextBreakPoss(LayoutContext context) { - if(abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { + if (abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { return getAbsoluteBreakPoss(context); } @@ -90,13 +90,13 @@ MinOptMax stackLimit; int ipd = context.getRefIPD(); boolean rotated = vals[0] == 0.0; - if(rotated) { + if (rotated) { // rotated 90 degrees stackLimit = new MinOptMax(1000000); ipd = getRotatedIPD(); absoluteCTM = new CTM(vals[0], vals[1], vals[2], vals[3], 0, 0); } else { - if(vals[0] == -1.0) { + if (vals[0] == -1.0) { absoluteCTM = new CTM(vals[0], vals[1], vals[2], vals[3], 0, 0); } stackLimit = context.getStackLimit(); @@ -123,7 +123,7 @@ while (!curLM.isFinished()) { if ((bp = curLM.getNextBreakPoss(childLC)) != null) { stackSize.add(bp.getStackingSize()); - if (stackSize.min > stackLimit.max) { + if (stackSize.opt > stackLimit.max) { // reset to last break if (lastPos != null) { reset(lastPos.getPosition()); @@ -139,7 +139,7 @@ stackLimit, stackSize)); } } - if(!rotated) { + if (!rotated) { BreakPoss breakPoss; breakPoss = new BreakPoss(new LeafPosition(this, childBreaks.size() - 1)); @@ -148,7 +148,7 @@ } } setFinished(true); - if(rotated) { + if (rotated) { BreakPoss breakPoss; breakPoss = new BreakPoss(new LeafPosition(this, childBreaks.size() - 1)); @@ -189,10 +189,10 @@ // to the normal stacking breakPoss.setStackingSize(new MinOptMax(0)); - if(stackSize.min > relDims.bpd) { - if(overflow == Overflow.HIDDEN) { + if (stackSize.opt > relDims.bpd) { + if (overflow == Overflow.HIDDEN) { clip = true; - } else if(overflow == Overflow.ERROR_IF_OVERFLOW) { + } else if (overflow == Overflow.ERROR_IF_OVERFLOW) { //log.error("contents overflows block-container viewport: clipping"); clip = true; } @@ -230,7 +230,7 @@ public Area getParentArea(Area childArea) { if (curBlockArea == null) { viewportBlockArea = new BlockViewport(); - if(abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { + if (abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { viewportBlockArea.setXOffset(abProps.left); viewportBlockArea.setYOffset(abProps.top); viewportBlockArea.setWidth(abProps.right - abProps.left); @@ -241,12 +241,12 @@ } else { double[] vals = absoluteCTM.toArray(); boolean rotated = vals[0] == 0.0; - if(rotated) { + if (rotated) { viewportBlockArea.setWidth(relDims.bpd); viewportBlockArea.setHeight(getRotatedIPD()); viewportBlockArea.setCTM(absoluteCTM); viewportBlockArea.setClip(clip); - } else if(vals[0] == -1.0) { + } else if (vals[0] == -1.0) { // need to set bpd to actual size for rotation // and stacking viewportBlockArea.setWidth(relDims.ipd); @@ -259,7 +259,7 @@ curBlockArea = new Block(); viewportBlockArea.addBlock(curBlockArea); - if(abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { + if (abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { viewportBlockArea.setPositioning(Block.ABSOLUTE); } 1.2 +10 -21 xml-fop/src/org/apache/fop/layoutmgr/list/Item.java Index: Item.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/list/Item.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Item.java 3 Nov 2002 16:29:58 -0000 1.1 +++ Item.java 6 Nov 2002 15:46:55 -0000 1.2 @@ -39,7 +39,6 @@ private ArrayList childBreaks = new ArrayList(); private int xoffset; - private int yoffset; private int itemIPD; /** @@ -74,7 +73,7 @@ itemIPD = context.getRefIPD(); while ((curLM = getChildLM()) != null) { - if(curLM.generatesInlineAreas()) { + if (curLM.generatesInlineAreas()) { // error curLM.setFinished(true); continue; @@ -91,7 +90,7 @@ while (!curLM.isFinished()) { if ((bp = curLM.getNextBreakPoss(childLC)) != null) { stackSize.add(bp.getStackingSize()); - if (stackSize.min > context.getStackLimit().max) { + if (stackSize.opt > context.getStackLimit().max) { // reset to last break if (lastPos != null) { reset(lastPos.getPosition()); @@ -117,18 +116,9 @@ } /** - * Set the y offset of this cell. - * This offset is used to set the absolute position of the cell. - * - * @param off the y direction offset - */ - public void setYOffset(int off) { - yoffset = off; - } - - /** - * Set the x offset of this cell. - * This offset is used to set the absolute position of the cell. + * Set the x offset of this list item. + * This offset is used to set the absolute position + * of the list item within the parent block area. * * @param off the x offset */ @@ -138,7 +128,7 @@ /** * Add the areas for the break points. - * The cell contains block stacking layout managers + * The list item contains block stacking layout managers * that add block areas. * * @param parentIter the iterator of the break positions @@ -164,10 +154,10 @@ } } - if(borderProps != null) { + if (borderProps != null) { addBorders(curBlockArea, borderProps); } - if(backgroundProps != null) { + if (backgroundProps != null) { addBackground(curBlockArea, backgroundProps); } @@ -196,7 +186,6 @@ curBlockArea.setPositioning(Block.ABSOLUTE); // set position curBlockArea.setXOffset(xoffset); - curBlockArea.setYOffset(yoffset); curBlockArea.setWidth(itemIPD); //curBlockArea.setHeight(); @@ -211,7 +200,7 @@ } /** - * Add the child to the cell block area. + * Add the child to the list item area. * * @param childArea the child to add to the cell * @return unused 1.2 +5 -7 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.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ListBlockLayoutManager.java 3 Nov 2002 16:29:58 -0000 1.1 +++ ListBlockLayoutManager.java 6 Nov 2002 15:46:55 -0000 1.2 @@ -134,11 +134,9 @@ getParentArea(null); addID(); - // add column, body then row areas + // the list block contains areas stacked from each list item - // add table header areas - - int tableHeight = 0; + int listHeight = 0; ListItemLayoutManager childLM; int iStartPos = 0; @@ -152,13 +150,13 @@ iStartPos = lfp.getLeafPos() + 1; while ((childLM = (ListItemLayoutManager)breakPosIter.getNextChildLM()) != null) { childLM.addAreas(breakPosIter, lc); - tableHeight += childLM.getListItemHeight(); + listHeight += childLM.getListItemHeight(); } } // add footer areas - curBlockArea.setHeight(tableHeight); + curBlockArea.setHeight(listHeight); if(borderProps != null) { addBorders(curBlockArea, borderProps); 1.2 +4 -18 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.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ListItemLayoutManager.java 3 Nov 2002 16:29:58 -0000 1.1 +++ ListItemLayoutManager.java 6 Nov 2002 15:46:55 -0000 1.2 @@ -40,7 +40,6 @@ private List cellList = null; private List columns = null; private int listItemHeight; - private int yoffset; private BorderAndPadding borderProps = null; private BackgroundProps backgroundProps; @@ -122,7 +121,7 @@ while (!curLM.isFinished()) { if ((bp = curLM.getNextBreakPoss(childLC)) != null) { stackSize.add(bp.getStackingSize()); - if (stackSize.min > context.getStackLimit().max) { + if (stackSize.opt > context.getStackLimit().max) { // reset to last break if (lastPos != null) { curLM.resetPosition(lastPos.getPosition()); @@ -130,8 +129,9 @@ curLM.resetPosition(null); } break; + } else { + lastPos = bp; } - lastPos = bp; childBreaks.add(bp); childLC.setStackLimit(MinOptMax.subtract( @@ -165,16 +165,6 @@ } /** - * Set the y position offset of this list item. - * This is used to set the position of the areas returned by this list item. - * - * @param off the y offset - */ - public void setYOffset(int off) { - yoffset = off; - } - - /** * Add the areas for the break points. * This sets the offset of each cell as it is added. * @@ -187,18 +177,15 @@ addID(); Item childLM; - int iStartPos = 0; LayoutContext lc = new LayoutContext(0); while (parentIter.hasNext()) { ItemPosition lfp = (ItemPosition) parentIter.next(); // Add the block areas to Area - int xoffset = 0; for (Iterator iter = lfp.cellBreaks.iterator(); iter.hasNext();) { List cellsbr = (List)iter.next(); PositionIterator breakPosIter; breakPosIter = new BreakPossPosIter(cellsbr, 0, cellsbr.size()); - iStartPos = lfp.getLeafPos() + 1; while ((childLM = (Item)breakPosIter.getNextChildLM()) != null) { if(childLM == body) { @@ -206,7 +193,6 @@ } childLM.addAreas(breakPosIter, lc); } - xoffset += 100000; } } 1.5 +6 -1 xml-fop/src/org/apache/fop/layoutmgr/table/Body.java Index: Body.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/table/Body.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Body.java 1 Nov 2002 10:49:34 -0000 1.4 +++ Body.java 6 Nov 2002 15:46:55 -0000 1.5 @@ -53,6 +53,11 @@ super(fobj); } + /** + * Initialize properties for this layout manager. + * + * @param propMgr the property manager from the fo object + */ protected void initProperties(PropertyManager propMgr) { borderProps = propMgr.getBorderAndPadding(); backgroundProps = propMgr.getBackgroundProps(); 1.2 +2 -2 xml-fop/src/org/apache/fop/layoutmgr/table/Caption.java Index: Caption.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/table/Caption.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Caption.java 13 Sep 2002 08:21:55 -0000 1.1 +++ Caption.java 6 Nov 2002 15:46:55 -0000 1.2 @@ -76,7 +76,7 @@ while (!curLM.isFinished()) { if ((bp = curLM.getNextBreakPoss(childLC)) != null) { stackSize.add(bp.getStackingSize()); - if (stackSize.min > context.getStackLimit().max) { + if (stackSize.opt > context.getStackLimit().max) { // reset to last break if (lastPos != null) { reset(lastPos.getPosition()); 1.5 +2 -2 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.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Cell.java 5 Nov 2002 11:19:52 -0000 1.4 +++ Cell.java 6 Nov 2002 15:46:55 -0000 1.5 @@ -92,7 +92,7 @@ while (!curLM.isFinished()) { if ((bp = curLM.getNextBreakPoss(childLC)) != null) { stackSize.add(bp.getStackingSize()); - if (stackSize.min > context.getStackLimit().max) { + if (stackSize.opt > context.getStackLimit().max) { // reset to last break if (lastPos != null) { reset(lastPos.getPosition()); 1.5 +2 -2 xml-fop/src/org/apache/fop/layoutmgr/table/Row.java Index: Row.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/table/Row.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Row.java 5 Nov 2002 11:19:52 -0000 1.4 +++ Row.java 6 Nov 2002 15:46:55 -0000 1.5 @@ -152,7 +152,7 @@ while (!curLM.isFinished()) { if ((bp = curLM.getNextBreakPoss(childLC)) != null) { stackSize.add(bp.getStackingSize()); - if (stackSize.min > context.getStackLimit().max) { + if (stackSize.opt > context.getStackLimit().max) { // reset to last break if (lastPos != null) { reset(lastPos.getPosition()); 1.2 +2 -2 xml-fop/src/org/apache/fop/layoutmgr/table/TableAndCaptionLayoutManager.java Index: TableAndCaptionLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/table/TableAndCaptionLayoutManager.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TableAndCaptionLayoutManager.java 13 Sep 2002 08:21:55 -0000 1.1 +++ TableAndCaptionLayoutManager.java 6 Nov 2002 15:46:55 -0000 1.2 @@ -78,7 +78,7 @@ while (!curLM.isFinished()) { if ((bp = curLM.getNextBreakPoss(childLC)) != null) { stackSize.add(bp.getStackingSize()); - if (stackSize.min > context.getStackLimit().max) { + if (stackSize.opt > context.getStackLimit().max) { // reset to last break if (lastPos != null) { reset(lastPos.getPosition());
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]