klease 01/11/09 14:12:34 Added: src/org/apache/fop/fo/pagination RegionBA.java RegionSE.java RegionBASE.java Log: Base classes for before/after, start/end Region Revision Changes Path 1.1 xml-fop/src/org/apache/fop/fo/pagination/RegionBA.java Index: RegionBA.java =================================================================== /* * $Id: RegionBA.java,v 1.1 2001/11/09 22:12:34 klease Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. */ package org.apache.fop.fo.pagination; // FOP import org.apache.fop.fo.*; import org.apache.fop.apps.FOPException; import org.apache.fop.fo.properties.Precedence; import java.awt.Rectangle; public abstract class RegionBA extends RegionBASE { private boolean bPrecedence; protected RegionBA(FONode parent) { super(parent); } boolean getPrecedence() { return bPrecedence; } public void end() { bPrecedence = (this.properties.get("precedence").getEnum()==Precedence.TRUE); } /** * Adjust the viewport reference rectangle for a region as a function * of precedence. * If precedence is false on a before or after region, its * inline-progression-dimension is limited by the extent of the start * and end regions if they are present. */ protected void adjustIPD(Rectangle vpRect) { int xoff = 0; Region start = getSiblingRegion(Region.START); if (start != null) { xoff = start.getExtent(); vpRect.translate(xoff, 0); } Region end =getSiblingRegion(Region.END); if (end != null) { xoff += end.getExtent(); } if (xoff > 0) { vpRect.grow(-xoff,0); } } } 1.1 xml-fop/src/org/apache/fop/fo/pagination/RegionSE.java Index: RegionSE.java =================================================================== /* * $Id: RegionSE.java,v 1.1 2001/11/09 22:12:34 klease Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. */ package org.apache.fop.fo.pagination; import org.apache.fop.fo.*; import org.apache.fop.apps.FOPException; import java.awt.Rectangle; public abstract class RegionSE extends RegionBASE { protected RegionSE(FONode parent) { super(parent); } /** * Adjust the viewport reference rectangle for a region as a function * of precedence. * If before and after have precedence = true, the start and end * regions only go to the limits of their extents, otherwise * they extend in the BPD to the page reference rectangle * diminish by extend of start and end if present. */ protected void adjustIPD(Rectangle refRect) { int yoff = 0; Region before = getSiblingRegion(Region.BEFORE); if (before != null && before.getPrecedence()) { yoff = before.getExtent(); refRect.translate(0, yoff); } Region after = getSiblingRegion(Region.AFTER); if (after != null && after.getPrecedence()) { yoff += after.getExtent(); } if (yoff > 0) { refRect.grow(0,-yoff); } } } 1.1 xml-fop/src/org/apache/fop/fo/pagination/RegionBASE.java Index: RegionBASE.java =================================================================== /* * $Id: RegionBASE.java,v 1.1 2001/11/09 22:12:34 klease Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. */ package org.apache.fop.fo.pagination; // FOP import org.apache.fop.fo.FONode; import org.apache.fop.fo.PropertyList; import org.apache.fop.apps.FOPException; /** * Base class for Before, After, Start and End regions (BASE). */ public abstract class RegionBASE extends Region { private int extent; protected RegionBASE(FONode parent) { super(parent); } public void end() { // The problem with this is that it might not be known yet.... // Supposing extent is calculated in terms of percentage this.extent = this.properties.get("extent").getLength().mvalue(); } int getExtent() { return this.extent; } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]