gmazza 2005/03/10 23:23:43 Modified: src/java/org/apache/fop/area BeforeFloat.java BodyRegion.java Footnote.java MainReference.java Span.java src/java/org/apache/fop/layoutmgr LeaderLayoutManager.java LeafNodeLayoutManager.java PageSequenceLayoutManager.java src/java/org/apache/fop/layoutmgr/list ListBlockLayoutManager.java src/java/org/apache/fop/render AbstractRenderer.java src/java/org/apache/fop/render/xml XMLRenderer.java Added: src/java/org/apache/fop/area NormalFlow.java Removed: src/java/org/apache/fop/area Flow.java Log: 1.) More commenting, some simplifications in the Area classes and PSLM. 2.) Renamed Area.Flow to NormalFlow, uglier but more in conformance with the Recommendation (normal-flow-reference-area) and more specific/easier to understand. Revision Changes Path 1.4 +3 -3 xml-fop/src/java/org/apache/fop/area/BeforeFloat.java Index: BeforeFloat.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/BeforeFloat.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BeforeFloat.java 22 Sep 2004 08:18:41 -0000 1.3 +++ BeforeFloat.java 11 Mar 2005 07:23:43 -0000 1.4 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,9 +19,9 @@ package org.apache.fop.area; /** - * The before float area. - * This is used to place the before float areas. + * The before-float-reference-area optionally generated by an fo:region-body. * It has an optional separator and before float block children. + * See fo:region-body definition in the XSL Rec for more information. */ public class BeforeFloat extends BlockParent { // this is an optional block area that will be rendered 1.10 +7 -6 xml-fop/src/java/org/apache/fop/area/BodyRegion.java Index: BodyRegion.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/BodyRegion.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- BodyRegion.java 5 Mar 2005 19:53:13 -0000 1.9 +++ BodyRegion.java 11 Mar 2005 07:23:43 -0000 1.10 @@ -21,14 +21,15 @@ import org.apache.fop.fo.Constants; /** - * The body region area. - * This area contains a main reference area and optionally a - * before float and footnote area. + * This class is a container for all areas that may be generated by + * an fo:region-body. It extends the RegionReference that is used + * directly by the other region classes. + * See fo:region-body definition in the XSL Rec for more information. */ public class BodyRegion extends RegionReference { - private BeforeFloat beforeFloat; - private MainReference mainReference; - private Footnote footnote; + private BeforeFloat beforeFloat; // optional + private MainReference mainReference; // mandatory + private Footnote footnote; // optional private int columnGap; private int columnCount; 1.3 +3 -2 xml-fop/src/java/org/apache/fop/area/Footnote.java Index: Footnote.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/Footnote.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Footnote.java 27 Feb 2004 17:41:26 -0000 1.2 +++ Footnote.java 11 Mar 2005 07:23:43 -0000 1.3 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,8 +21,9 @@ // may combine with before float into a conditional area /** - * Footnote reference area. + * The footnote-reference-area optionally generated by an fo:region-body. * This areas holds footnote areas and an optional separator area. + * See fo:region-body definition in the XSL Rec for more information. */ public class Footnote extends BlockParent { private Block separator = null; 1.5 +7 -5 xml-fop/src/java/org/apache/fop/area/MainReference.java Index: MainReference.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/MainReference.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- MainReference.java 5 Mar 2005 00:32:25 -0000 1.4 +++ MainReference.java 11 Mar 2005 07:23:43 -0000 1.5 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,10 @@ import java.util.Iterator; /** - * The main body reference area. - * This area that contains the flow via the span areas. + * The main-reference-area generated by an fo:region-body + * This object holds one or more span-reference-areas (block-areas + * stacked in the block progression direction) + * See fo:region-body definition in the XSL Rec for more information. */ public class MainReference extends Area { private List spanAreas = new java.util.ArrayList(); @@ -69,7 +71,7 @@ for (Iterator spaniter = spanAreas.iterator(); spaniter.hasNext(); ) { Span spanArea = (Span) spaniter.next(); for (int i = 0; i < spanArea.getColumnCount(); i++) { - Flow flow = spanArea.getFlow(i); + NormalFlow flow = spanArea.getNormalFlow(i); if (flow != null) { if (flow.getChildAreas() != null) { areaCount += flow.getChildAreas().size(); @@ -87,7 +89,7 @@ /** * Get the column gap in millipoints. * - * @return the column gap in millioints + * @return the column gap in millipoints */ public int getColumnGap() { return columnGap; 1.4 +29 -15 xml-fop/src/java/org/apache/fop/area/Span.java Index: Span.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/Span.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Span.java 5 Mar 2005 19:53:13 -0000 1.3 +++ Span.java 11 Mar 2005 07:23:43 -0000 1.4 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,14 +21,18 @@ import java.util.List; /** - * The span reference area. - * This is a reference area block area with 0 border and padding - * The span reference areas are stacked inside the main reference area. + * The span-reference-area. + * This is a block-area with 0 border and padding that is stacked + * within the main-reference-area + * This object holds one or more normal-flow-reference-area children + * based on the column-count trait in effect for this span. + * See fo:region-body definition in the XSL Rec for more information. */ public class Span extends Area { // the list of flow reference areas in this span area private List flowAreas; private int height; + private int columnCount; /** * Create a span area with the number of columns for this span area. @@ -37,25 +41,26 @@ */ public Span(int cols) { flowAreas = new java.util.ArrayList(cols); + columnCount = cols; addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE); } /** - * Add a flow area to this span area. + * Add a normal-flow-reference-area to this span-reference-area. * - * @param flow the flow area to add + * @param flow the normal-flow-reference-area to add */ - public void addFlow(Flow flow) { + public void addNormalFlow(NormalFlow flow) { flowAreas.add(flow); } /** - * Create a new flow and add it to this span area + * Create a new normal flow and add it to this span area * - * @return the newly made Flow object + * @return the newly made NormalFlow object */ - public Flow addNewFlow() { - Flow newFlow = new Flow(); + public NormalFlow addNewNormalFlow() { + NormalFlow newFlow = new NormalFlow(); newFlow.setIPD(getIPD()); flowAreas.add(newFlow); return newFlow; @@ -64,9 +69,18 @@ /** * Get the column count for this span area. * - * @return the number of columns in this span area + * @return the number of columns defined for this span area */ public int getColumnCount() { + return columnCount; + } + + /** + * Get the count of normal flows for this span area. + * + * @return the number of normal flows attached to this span + */ + public int getNormalFlowCount() { return flowAreas.size(); } @@ -80,13 +94,13 @@ } /** - * Get the flow area for a particular column. + * Get the normal flow area for a particular column. * * @param count the column number for the flow * @return the flow area for the requested column */ - public Flow getFlow(int count) { - return (Flow) flowAreas.get(count); + public NormalFlow getNormalFlow(int columnNumber) { + return (NormalFlow) flowAreas.get(columnNumber); } } 1.1 xml-fop/src/java/org/apache/fop/area/NormalFlow.java Index: NormalFlow.java =================================================================== /* * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* $Id: NormalFlow.java,v 1.1 2005/03/11 07:23:43 gmazza Exp $ */ package org.apache.fop.area; /** * The normal-flow-reference-area class. * Each span-reference-area contains one or more of these objects * See fo:region-body definition in the XSL Rec for more information. */ public class NormalFlow extends BlockParent { /** * Constructor. */ public NormalFlow() { addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE); } } 1.15 +2 -2 xml-fop/src/java/org/apache/fop/layoutmgr/LeaderLayoutManager.java Index: LeaderLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LeaderLayoutManager.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- LeaderLayoutManager.java 10 Dec 2004 10:12:21 -0000 1.14 +++ LeaderLayoutManager.java 11 Mar 2005 07:23:43 -0000 1.15 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. 1.13 +1 -1 xml-fop/src/java/org/apache/fop/layoutmgr/LeafNodeLayoutManager.java Index: LeafNodeLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LeafNodeLayoutManager.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- LeafNodeLayoutManager.java 24 Nov 2004 21:07:30 -0000 1.12 +++ LeafNodeLayoutManager.java 11 Mar 2005 07:23:43 -0000 1.13 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. 1.41 +15 -19 xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java Index: PageSequenceLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- PageSequenceLayoutManager.java 5 Mar 2005 19:53:13 -0000 1.40 +++ PageSequenceLayoutManager.java 11 Mar 2005 07:23:43 -0000 1.41 @@ -25,7 +25,7 @@ import org.apache.fop.area.AreaTreeModel; import org.apache.fop.area.Area; import org.apache.fop.area.PageViewport; -import org.apache.fop.area.Flow; +import org.apache.fop.area.NormalFlow; import org.apache.fop.area.LineArea; import org.apache.fop.area.Page; import org.apache.fop.area.RegionViewport; @@ -89,11 +89,8 @@ /** Current span being filled */ private Span curSpan; - /** Number of columns in current span area. */ - private int curSpanColumns; - - /** Current flow-reference-area (column) being filled. */ - private Flow curFlow; + /** Current normal-flow-reference-area being filled. */ + private NormalFlow curFlow; private int flowBPD = 0; private int flowIPD = 0; @@ -400,14 +397,14 @@ return; } if (childArea.getAreaClass() == Area.CLASS_NORMAL) { - placeFlowRefArea(childArea); + placeNormalFlowRefArea(childArea); } else { // todo: all the others! } } /** - * Place a FlowReferenceArea into the current span. The FlowLM is + * Place a normal-flow-reference-area into the current span. The FlowLM is * responsible for making sure that it will actually fit in the * current span area. In fact the area has already been added to the * current span, so we are just checking to see if the span is "full", @@ -415,7 +412,7 @@ * * @param area the area to place */ - protected void placeFlowRefArea(Area area) { + protected void placeNormalFlowRefArea(Area area) { // assert (curSpan != null); // assert (area == curFlow); // assert (curFlow == curSpan.getFlow(curSpan.getColumnCount()-1)); @@ -434,7 +431,7 @@ // ":" + curSpan.getMaxBPD().min); /*if (area.getAllocationBPD().max >= curSpan.getMaxBPD().min) { // Consider it filled - if (curSpan.getColumnCount() == curSpanColumns) { + if (curSpan.getColumnCount() == curSpan.getNormalFlowCount()) { finishPage(); } else curFlow = null; // Create new flow on next getParentArea() @@ -588,9 +585,9 @@ if (curSpan == null) { createBodyMainReferenceArea(); bNeedSpan = true; - } else if (numCols != curSpanColumns) { + } else if (numCols != curSpan.getNormalFlowCount()) { // todo: BALANCE EXISTING COLUMNS - if (curSpanColumns > 1) { + if (curSpan.getNormalFlowCount() > 1) { // balanceColumns(); } bNeedSpan = true; @@ -599,7 +596,7 @@ // Make a new span and the first flow createSpan(numCols); } else if (curFlow == null) { - curFlow = curSpan.addNewFlow(); + curFlow = curSpan.addNewNormalFlow(); } return curFlow; } else { @@ -636,10 +633,10 @@ */ private void handleBreak(int breakVal) { if (breakVal == Constants.EN_COLUMN) { - if (curSpan != null - && curSpan.getColumnCount() != curSpanColumns) { + if (curSpan != null // TODO: change below to < or <= + && curSpan.getNormalFlowCount() != curSpan.getColumnCount()) { // Move to next column - curFlow = curSpan.addNewFlow(); + curFlow = curSpan.addNewNormalFlow(); return; } // else need new page @@ -717,7 +714,6 @@ //} //else newpos = new MinOptMax(); curSpan = new Span(numCols); - curSpanColumns = numCols; // get Width or Height as IPD for span RegionViewport rv = curPage.getPage().getRegionViewport(FO_REGION_BODY); @@ -727,7 +723,7 @@ curSpan.setIPD(ipdWidth); //curSpan.setPosition(BPD, newpos); curBody.getMainReference().addSpan(curSpan); - curFlow = curSpan.addNewFlow(); + curFlow = curSpan.addNewNormalFlow(); } private PageViewport createPageAreas(SimplePageMaster spm) { 1.11 +1 -1 xml-fop/src/java/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java Index: ListBlockLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ListBlockLayoutManager.java 28 Jan 2005 16:59:28 -0000 1.10 +++ ListBlockLayoutManager.java 11 Mar 2005 07:23:43 -0000 1.11 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. 1.43 +3 -3 xml-fop/src/java/org/apache/fop/render/AbstractRenderer.java Index: AbstractRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/AbstractRenderer.java,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- AbstractRenderer.java 7 Feb 2005 11:00:19 -0000 1.42 +++ AbstractRenderer.java 11 Mar 2005 07:23:43 -0000 1.43 @@ -37,7 +37,7 @@ import org.apache.fop.area.BlockViewport; import org.apache.fop.area.BodyRegion; import org.apache.fop.area.CTM; -import org.apache.fop.area.Flow; +import org.apache.fop.area.NormalFlow; import org.apache.fop.area.Footnote; import org.apache.fop.area.LineArea; import org.apache.fop.area.MainReference; @@ -380,7 +380,7 @@ - (span.getColumnCount() - 1) * mr.getColumnGap()) / span.getColumnCount() + mr.getColumnGap(); for (int c = 0; c < span.getColumnCount(); c++) { - Flow flow = (Flow) span.getFlow(c); + NormalFlow flow = (NormalFlow) span.getNormalFlow(c); renderFlow(flow); currentIPPosition += offset; @@ -395,7 +395,7 @@ * * @param flow The flow reference area */ - protected void renderFlow(Flow flow) { + protected void renderFlow(NormalFlow flow) { // the normal flow reference area contains stacked blocks List blocks = flow.getChildAreas(); if (blocks != null) { 1.44 +3 -3 xml-fop/src/java/org/apache/fop/render/xml/XMLRenderer.java Index: XMLRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/xml/XMLRenderer.java,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- XMLRenderer.java 6 Feb 2005 20:48:48 -0000 1.43 +++ XMLRenderer.java 11 Mar 2005 07:23:43 -0000 1.44 @@ -47,7 +47,7 @@ import org.apache.fop.area.Block; import org.apache.fop.area.BlockViewport; import org.apache.fop.area.BodyRegion; -import org.apache.fop.area.Flow; +import org.apache.fop.area.NormalFlow; import org.apache.fop.area.Footnote; import org.apache.fop.area.LineArea; import org.apache.fop.area.MainReference; @@ -445,7 +445,7 @@ addTraitAttributes(span); startElement("span", atts); for (int c = 0; c < span.getColumnCount(); c++) { - Flow flow = (Flow) span.getFlow(c); + NormalFlow flow = (NormalFlow) span.getNormalFlow(c); renderFlow(flow); } @@ -457,7 +457,7 @@ /** * @see org.apache.fop.render.AbstractRenderer#renderFlow(Flow) */ - protected void renderFlow(Flow flow) { + protected void renderFlow(NormalFlow flow) { // the normal flow reference area contains stacked blocks atts.clear(); addAreaAttributes(flow);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]