pietsch 2003/03/06 15:55:31 Modified: src/org/apache/fop/fo/flow Tag: fop-0_20_2-maintain Footnote.java src/org/apache/fop/fo/pagination Tag: fop-0_20_2-maintain PageSequence.java src/org/apache/fop/layout Tag: fop-0_20_2-maintain BodyAreaContainer.java Log: Implemented footnote separator. Revision Changes Path No revision No revision 1.6.2.6 +21 -1 xml-fop/src/org/apache/fop/fo/flow/Footnote.java Index: Footnote.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Footnote.java,v retrieving revision 1.6.2.5 retrieving revision 1.6.2.6 diff -u -r1.6.2.5 -r1.6.2.6 --- Footnote.java 25 Feb 2003 12:57:01 -0000 1.6.2.5 +++ Footnote.java 6 Mar 2003 23:55:30 -0000 1.6.2.6 @@ -129,6 +129,26 @@ footArea.setMaxHeight(bac.getMaxHeight() + footArea.getHeight()); } + if (!footArea.hasChildren()) { + StaticContent separator = bac.getPage().getPageSequence() + .getStaticContent("xsl-footnote-separator"); + if (separator!=null) { + footArea.setIDReferences(bac.getIDReferences()); + separator.layout(footArea, null); + int diff = footArea.getHeight() - oldHeight; + if (area != null) { + area.setMaxHeight(area.getMaxHeight() - diff); + } + if (bac.getFootnoteState() == 0) { + Area ar = bac.getMainReferenceArea(); + decreaseMaxHeight(ar, diff); + footArea.setYPosition(basePos + footArea.getHeight()); + } + basePos = footArea.getCurrentYPosition() + - footArea.getHeight(); + oldHeight = footArea.getHeight(); + } + } int status = fb.layout(footArea); if (Status.isIncomplete(status)) { // add as a pending footnote No revision No revision 1.39.2.15 +9 -2 xml-fop/src/org/apache/fop/fo/pagination/PageSequence.java Index: PageSequence.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/pagination/PageSequence.java,v retrieving revision 1.39.2.14 retrieving revision 1.39.2.15 diff -u -r1.39.2.14 -r1.39.2.15 --- PageSequence.java 6 Mar 2003 23:06:14 -0000 1.39.2.14 +++ PageSequence.java 6 Mar 2003 23:55:30 -0000 1.39.2.15 @@ -234,7 +234,10 @@ if (flowMap.containsKey(staticContent.getFlowName())) { throw new FOPException("flow-names must be unique within an fo:page-sequence"); } - if (!this.layoutMasterSet.regionNameExists(staticContent.getFlowName())) { + String flowName = staticContent.getFlowName(); + if (!this.layoutMasterSet.regionNameExists(flowName) + && !flowName.equals("xsl-before-float-separator") + && !flowName.equals("xsl-footnote-separator")) { log.error("region-name '" + staticContent.getFlowName() + "' doesn't exist in the layout-master-set."); @@ -480,6 +483,10 @@ // + flow.getFlowName() + "'"); } + public StaticContent getStaticContent(String regionName) { + return (StaticContent)flowMap.get(regionName); + } + public int getCurrentPageNumber() { return currentPageNumber; } No revision No revision 1.10.2.4 +7 -13 xml-fop/src/org/apache/fop/layout/Attic/BodyAreaContainer.java Index: BodyAreaContainer.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layout/Attic/BodyAreaContainer.java,v retrieving revision 1.10.2.3 retrieving revision 1.10.2.4 diff -u -r1.10.2.3 -r1.10.2.4 --- BodyAreaContainer.java 25 Feb 2003 14:07:02 -0000 1.10.2.3 +++ BodyAreaContainer.java 6 Mar 2003 23:55:31 -0000 1.10.2.4 @@ -82,8 +82,6 @@ // current heights private int mainRefAreaHeight; - private int beforeFloatRefAreaHeight; - private int footnoteRefAreaHeight; // reference area yPositions private int mainYPosition; @@ -109,13 +107,11 @@ this.columnGap = columnGap; // create the primary reference areas - beforeFloatRefAreaHeight = 0; - footnoteRefAreaHeight = 0; - mainRefAreaHeight = maxHeight - beforeFloatRefAreaHeight - - footnoteRefAreaHeight; + mainRefAreaHeight = maxHeight; beforeFloatReferenceArea = new AreaContainer(fontState, xPosition, - yPosition, allocationWidth, beforeFloatRefAreaHeight, - Position.ABSOLUTE); + yPosition, + allocationWidth, 0, + Position.ABSOLUTE); beforeFloatReferenceArea.setAreaName("before-float-reference-area"); this.addChild(beforeFloatReferenceArea); mainReferenceArea = new AreaContainer(fontState, xPosition, @@ -124,11 +120,9 @@ Position.ABSOLUTE); mainReferenceArea.setAreaName("main-reference-area"); this.addChild(mainReferenceArea); - int footnoteRefAreaYPosition = yPosition - mainRefAreaHeight; footnoteReferenceArea = new AreaContainer(fontState, xPosition, - footnoteRefAreaYPosition, - allocationWidth, - footnoteRefAreaHeight, + yPosition - mainRefAreaHeight, + allocationWidth, 0, Position.ABSOLUTE); footnoteReferenceArea.setAreaName("footnote-reference-area"); this.addChild(footnoteReferenceArea);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]