klease 01/11/21 14:13:36
Modified: src/org/apache/fop/fo FONode.java FOText.java FObj.java
FObjMixed.java
src/org/apache/fop/fo/flow Block.java Character.java
Inline.java
src/org/apache/fop/fo/pagination SimplePageMaster.java
Added: src/org/apache/fop/fo AbstractCharIterator.java
CharClass.java CharIterator.java
InlineCharIterator.java OneCharIterator.java
RecursiveCharIterator.java
Log:
Remove extra whitespace during FO tree construction
Revision Changes Path
1.24 +27 -1 xml-fop/src/org/apache/fop/fo/FONode.java
Index: FONode.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/FONode.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- FONode.java 2001/11/09 11:32:37 1.23
+++ FONode.java 2001/11/21 22:13:36 1.24
@@ -1,5 +1,5 @@
/*
- * $Id: FONode.java,v 1.23 2001/11/09 11:32:37 keiron Exp $
+ * $Id: FONode.java,v 1.24 2001/11/21 22:13:36 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.
@@ -16,6 +16,9 @@
import org.xml.sax.Attributes;
+import java.util.ListIterator;
+import java.util.NoSuchElementException;
+
/**
* base class for nodes in the XML tree
*
@@ -96,6 +99,29 @@
public FONode getParent() {
return this.parent;
+ }
+
+ /**
+ * Return an iterator over all the children of this FObj.
+ * @return A ListIterator.
+ */
+ public ListIterator getChildren() {
+ return null;
+ }
+
+ /**
+ * Return an iterator over the object's children starting
+ * at the pased node.
+ * @param childNode First node in the iterator
+ * @return A ListIterator or null if childNode isn't a child of
+ * this FObj.
+ */
+ public ListIterator getChildren(FONode childNode) {
+ return null;
+ }
+
+ public CharIterator charIterator() {
+ return new OneCharIterator(CharClass.CODE_EOT);
}
}
1.28 +50 -1 xml-fop/src/org/apache/fop/fo/FOText.java
Index: FOText.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/FOText.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- FOText.java 2001/11/11 22:09:37 1.27
+++ FOText.java 2001/11/21 22:13:36 1.28
@@ -1,5 +1,5 @@
/*
- * $Id: FOText.java,v 1.27 2001/11/11 22:09:37 klease Exp $
+ * $Id: FOText.java,v 1.28 2001/11/21 22:13:36 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."
@@ -19,6 +19,8 @@
import org.apache.fop.layoutmgr.LayoutManager;
import org.apache.fop.layoutmgr.TextLayoutManager;
+import java.util.NoSuchElementException;
+
/**
* a text node in the formatting object tree
*
@@ -89,7 +91,54 @@
}
public LayoutManager getLayoutManager() {
+ // What if nothing left (length=0)?
+ if (length < ca.length) {
+ char[] tmp = ca;
+ ca = new char[length];
+ System.arraycopy(tmp, 0, ca, 0, length);
+ }
return new TextLayoutManager(this, ca, textInfo);
+ }
+
+ public CharIterator charIterator() {
+ return new TextCharIterator();
+ }
+
+ private class TextCharIterator extends AbstractCharIterator {
+ int curIndex = 0;
+ public boolean hasNext() {
+ return (curIndex < length);
+ }
+
+ public char nextChar() {
+ if (curIndex < length) {
+ // Just a char class? Don't actually care about the value!
+ return ca[curIndex++];
+ }
+ else throw new NoSuchElementException();
+ }
+
+ public void remove() {
+ if (curIndex>0 && curIndex < length) {
+ // copy from curIndex to end to curIndex-1
+ System.arraycopy(ca, curIndex, ca, curIndex-1,
+ length-curIndex);
+ length--;
+ curIndex--;
+ }
+ else if (curIndex == length) {
+ curIndex = --length;
+ }
+ }
+
+
+ public void replaceChar(char c) {
+ if (curIndex>0 && curIndex <= length) {
+ ca[curIndex-1]=c;
+ }
+ }
+
+
}
}
1.27 +20 -2 xml-fop/src/org/apache/fop/fo/FObj.java
Index: FObj.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/FObj.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- FObj.java 2001/11/14 13:45:44 1.26
+++ FObj.java 2001/11/21 22:13:36 1.27
@@ -1,5 +1,5 @@
/*
- * $Id: FObj.java,v 1.26 2001/11/14 13:45:44 keiron Exp $
+ * $Id: FObj.java,v 1.27 2001/11/21 22:13:36 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.
@@ -204,9 +204,27 @@
return null;
}
-
+ /**
+ * Return an iterator over all the children of this FObj.
+ * @return A ListIterator.
+ */
public ListIterator getChildren() {
return children.listIterator();
+ }
+
+ /**
+ * Return an iterator over the object's children starting
+ * at the pased node.
+ * @param childNode First node in the iterator
+ * @return A ListIterator or null if childNode isn't a child of
+ * this FObj.
+ */
+ public ListIterator getChildren(FONode childNode) {
+ int i = children.indexOf(childNode);
+ if (i >= 0) {
+ return children.listIterator(i);
+ }
+ else return null;
}
public void setIsInTableCell() {
1.18 +8 -1 xml-fop/src/org/apache/fop/fo/FObjMixed.java
Index: FObjMixed.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/FObjMixed.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- FObjMixed.java 2001/11/14 13:45:44 1.17
+++ FObjMixed.java 2001/11/21 22:13:36 1.18
@@ -1,5 +1,5 @@
/*
- * $Id: FObjMixed.java,v 1.17 2001/11/14 13:45:44 keiron Exp $
+ * $Id: FObjMixed.java,v 1.18 2001/11/21 22:13:36 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.
@@ -14,6 +14,7 @@
import org.apache.fop.apps.StreamRenderer;
import org.apache.fop.datatypes.ColorType;
+
/**
* base class for representation of mixed content formatting objects
* and their processing
@@ -92,6 +93,12 @@
}
return new Status(Status.OK);
}
+
+ public CharIterator charIterator() {
+ return new RecursiveCharIterator(this);
+ }
+
+
}
1.1 xml-fop/src/org/apache/fop/fo/AbstractCharIterator.java
Index: AbstractCharIterator.java
===================================================================
/*
* $Id: AbstractCharIterator.java,v 1.1 2001/11/21 22:13:36 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;
// FOP
import org.apache.fop.apps.FOPException;
import java.util.NoSuchElementException;
public abstract class AbstractCharIterator implements CharIterator, Cloneable {
abstract public boolean hasNext();
abstract public char nextChar() throws NoSuchElementException ;
public Object next() throws NoSuchElementException {
return new Character(nextChar());
}
public void remove() {
throw new UnsupportedOperationException();
}
public void replaceChar(char c) {
}
public Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException ex) {
return null;
}
}
};
1.1 xml-fop/src/org/apache/fop/fo/CharClass.java
Index: CharClass.java
===================================================================
/*
* $Id: CharClass.java,v 1.1 2001/11/21 22:13:36 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;
/**
* A character class allowing to distinguish whitespace, LF, other text.
*/
public class CharClass {
/** Character code used to signal a character boundary in
* inline content, such as an inline with borders and padding
* or a nested block object.
*/
public static final char CODE_EOT=0;
public static final int UCWHITESPACE=0; // unicode white space
public static final int LINEFEED=1;
public static final int EOT=2; // Boundary beteween text runs
public static final int NONWHITESPACE=3;
public static final int XMLWHITESPACE=4;
/**
* Return the appropriate CharClass constant for the type
* of the passed character.
*/
public static int classOf(char c) {
if (c == CODE_EOT) return EOT;
if (c == '\n') return LINEFEED;
if ( c==' '|| c == '\r' || c=='\t' ) return XMLWHITESPACE;
if (isAnySpace(c)) return UCWHITESPACE;
return NONWHITESPACE;
}
/**
* Helper method to determine if the character is a
* space with normal behaviour. Normal behaviour means that
* it's not non-breaking
*/
private static boolean isSpace(char c) {
return (c == ' ' ||
(c >= '\u2000' && c <= '\u200B'));
// c == '\u2000' // en quad
// c == '\u2001' // em quad
// c == '\u2002' // en space
// c == '\u2003' // em space
// c == '\u2004' // three-per-em space
// c == '\u2005' // four--per-em space
// c == '\u2006' // six-per-em space
// c == '\u2007' // figure space
// c == '\u2008' // punctuation space
// c == '\u2009' // thin space
// c == '\u200A' // hair space
// c == '\u200B' // zero width space
}
/**
* Method to determine if the character is a nonbreaking
* space.
*/
private static boolean isNBSP(char c) {
return (c == '\u00A0' || // normal no-break space
c == '\u202F' || // narrow no-break space
c == '\u3000' || // ideographic space
c == '\uFEFF') ; // zero width no-break space
}
/**
* @return true if the character represents any kind of space
*/
private static boolean isAnySpace(char c) {
return (isSpace(c) || isNBSP(c));
}
}
1.1 xml-fop/src/org/apache/fop/fo/CharIterator.java
Index: CharIterator.java
===================================================================
/*
* $Id: CharIterator.java,v 1.1 2001/11/21 22:13:36 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;
import java.util.Iterator;
import java.util.NoSuchElementException;
public interface CharIterator extends Iterator {
char nextChar() throws NoSuchElementException ;
void replaceChar(char c);
Object clone();
}
1.1 xml-fop/src/org/apache/fop/fo/InlineCharIterator.java
Index: InlineCharIterator.java
===================================================================
package org.apache.fop.fo;
import org.apache.fop.layout.BorderAndPadding;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.NoSuchElementException;
public class InlineCharIterator extends RecursiveCharIterator {
private boolean bStartBoundary=false;
private boolean bEndBoundary=false;
public InlineCharIterator(FObj fobj, BorderAndPadding bap) {
super(fobj);
checkBoundaries(bap);
}
private void checkBoundaries(BorderAndPadding bap) {
// TODO! use start and end in BAP!!
bStartBoundary = (bap.getBorderLeftWidth(false)>0 ||
bap.getPaddingLeft(false)>0);
bEndBoundary = (bap.getBorderRightWidth(false)>0 ||
bap.getPaddingRight(false)>0);
}
public boolean hasNext() {
if (bStartBoundary) return true;
return (super.hasNext() || bEndBoundary);
/* If super.hasNext() returns false,
* we return true if we are going to return a "boundary" signal
* else false.
*/
}
public char nextChar() throws NoSuchElementException {
if (bStartBoundary) {
bStartBoundary=false;
return CharClass.CODE_EOT;
}
try {
return super.nextChar();
}
catch (NoSuchElementException e) {
// Underlying has nothing more to return
// Check end boundary char
if (bEndBoundary) {
bEndBoundary=false;
return CharClass.CODE_EOT;
}
else throw e;
}
}
}
1.1 xml-fop/src/org/apache/fop/fo/OneCharIterator.java
Index: OneCharIterator.java
===================================================================
/*
* $Id: OneCharIterator.java,v 1.1 2001/11/21 22:13:36 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;
import java.util.Iterator;
import java.util.NoSuchElementException;
public class OneCharIterator extends AbstractCharIterator {
private boolean bFirst=true;
private char charCode;
public OneCharIterator(char c) {
this.charCode = c;
}
public boolean hasNext() {
return bFirst;
}
public char nextChar() throws NoSuchElementException {
if (bFirst) {
bFirst=false;
return charCode;
}
else throw new NoSuchElementException();
}
}
1.1 xml-fop/src/org/apache/fop/fo/RecursiveCharIterator.java
Index: RecursiveCharIterator.java
===================================================================
package org.apache.fop.fo;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.NoSuchElementException;
public class RecursiveCharIterator extends AbstractCharIterator {
Iterator childIter = null; // Child flow objects
CharIterator curCharIter = null; // Children's characters
private FONode fobj;
private FONode curChild;
public RecursiveCharIterator(FObj fobj) {
// Set up first child iterator
this.fobj = fobj;
this.childIter = fobj.getChildren();
getNextCharIter();
}
public RecursiveCharIterator(FObj fobj, FONode child) {
// Set up first child iterator
this.fobj = fobj;
this.childIter = fobj.getChildren(child);
getNextCharIter();
}
public CharIterator mark() {
return (CharIterator) this.clone();
}
public Object clone() {
RecursiveCharIterator ci = (RecursiveCharIterator)super.clone();
ci.childIter = fobj.getChildren(ci.curChild);
ci.curCharIter = (CharIterator)curCharIter.clone();
return ci;
}
public void replaceChar(char c) {
if (curCharIter != null) {
curCharIter.replaceChar(c);
}
}
private void getNextCharIter() {
if (childIter.hasNext()) {
this.curChild = (FONode)childIter.next();
this.curCharIter = curChild.charIterator();
}
else {
curChild = null;
curCharIter = null;
}
}
public boolean hasNext() {
while (curCharIter != null) {
if (curCharIter.hasNext()==false) {
getNextCharIter();
}
else return true;
}
return false;
}
public char nextChar() throws NoSuchElementException {
if (curCharIter != null) {
return curCharIter.nextChar();
}
else throw new NoSuchElementException();
}
public void remove() {
if (curCharIter != null) {
curCharIter.remove();
}
}
}
1.48 +157 -2 xml-fop/src/org/apache/fop/fo/flow/Block.java
Index: Block.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Block.java,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- Block.java 2001/11/14 13:45:44 1.47
+++ Block.java 2001/11/21 22:13:36 1.48
@@ -1,5 +1,5 @@
/*
- * $Id: Block.java,v 1.47 2001/11/14 13:45:44 keiron Exp $
+ * $Id: Block.java,v 1.48 2001/11/21 22:13:36 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.
@@ -54,10 +54,19 @@
String id;
int span;
+ private int wsTreatment; //ENUMERATION
+ private int lfTreatment; //ENUMERATION
+ private boolean bWScollapse; //true if white-space-collapse=true
// this may be helpful on other FOs too
boolean anythingLaidOut = false;
+ /**
+ * Index of first inline-type FO seen in a sequence.
+ * Used during FO tree building to do white-space handling.
+ */
+ private FONode firstInlineChild = null;
+
public Block(FONode parent) {
super(parent);
}
@@ -65,6 +74,10 @@
public void handleAttrs(Attributes attlist) throws FOPException {
super.handleAttrs(attlist);
this.span = this.properties.get("span").getEnum();
+ this.wsTreatment = this.properties.get("white-space-treatment").getEnum();
+ this.bWScollapse = (this.properties.get("white-space-collapse").getEnum() ==
+ Constants.TRUE);
+ this.lfTreatment = this.properties.get("linefeed-treatment").getEnum();
}
public Status layout(Area area) throws FOPException {
@@ -118,7 +131,7 @@
// this.properties.get("line-height-shift-adjustment");
// this.properties.get("line-stacking-strategy");
// this.properties.get("orphans");
- // this.properties.get("space-treatment");
+ // this.properties.get("white-space-treatment");
// this.properties.get("span");
// this.properties.get("text-align");
// this.properties.get("text-align-last");
@@ -359,5 +372,147 @@
public boolean generatesInlineAreas() {
return false;
+ }
+
+
+ public void addChild(FONode child) {
+ // Handle whitespace based on values of properties
+ // Handle a sequence of inline-producing children in
+ // one pass
+ if (((FObj)child).generatesInlineAreas()) {
+ if (firstInlineChild == null) {
+ firstInlineChild = child;
+ }
+ // lastInlineChild = children.size();
+ }
+ else {
+ // Handle whitespace in preceeding inline areas if any
+ handleWhiteSpace();
+ }
+ super.addChild(child);
+ }
+
+ public void end() {
+ handleWhiteSpace();
+ }
+
+ private void handleWhiteSpace() {
+ log.debug("fo:block: handleWhiteSpace");
+ if (firstInlineChild != null) {
+ boolean bInWS=false;
+ boolean bPrevWasLF=false;
+ RecursiveCharIterator charIter =
+ new RecursiveCharIterator(this, firstInlineChild);
+ LFchecker lfCheck = new LFchecker(charIter);
+
+ while (charIter.hasNext()) {
+ switch (CharClass.classOf(charIter.nextChar())) {
+ case CharClass.XMLWHITESPACE:
+ /* Some kind of whitespace character, except linefeed. */
+ boolean bIgnore=false;
+
+ switch (wsTreatment) {
+ case Constants.IGNORE:
+ bIgnore=true;
+ break;
+ case Constants.IGNORE_IF_BEFORE_LINEFEED:
+ bIgnore = lfCheck.nextIsLF();
+ break;
+ case Constants.IGNORE_IF_SURROUNDING_LINEFEED:
+ bIgnore = (bPrevWasLF || lfCheck.nextIsLF());
+ break;
+ case Constants.IGNORE_IF_AFTER_LINEFEED:
+ bIgnore = bPrevWasLF;
+ break;
+ }
+ // Handle ignore
+ if (bIgnore) {
+ charIter.remove();
+ }
+ else if (bWScollapse) {
+ if (bInWS || (lfTreatment == Constants.PRESERVE &&
+ (bPrevWasLF || lfCheck.nextIsLF()))) {
+ charIter.remove();
+ }
+ else {
+ bInWS = true;
+ }
+ }
+ break;
+
+ case CharClass.LINEFEED:
+ /* A linefeed */
+ lfCheck.reset();
+ bPrevWasLF=true; // for following whitespace
+
+ switch (lfTreatment) {
+ case Constants.IGNORE:
+ charIter.remove();
+ break;
+ case Constants.TREAT_AS_SPACE:
+ if (bInWS) {
+ // only if bWScollapse=true
+ charIter.remove();
+ }
+ else {
+ if (bWScollapse) bInWS=true;
+ charIter.replaceChar('\u0020');
+ }
+ break;
+ case Constants.TREAT_AS_ZERO_WIDTH_SPACE:
+ charIter.replaceChar('\u200b');
+ // Fall through: this isn't XML whitespace
+ case Constants.PRESERVE:
+ bInWS=false;
+ break;
+ }
+ break;
+
+ case CharClass.EOT:
+ // A "boundary" objects such as non-character inline
+ // or nested block object was encountered.
+ // If any whitespace run in progress, finish it.
+ // FALL THROUGH
+
+ case CharClass.UCWHITESPACE: // Non XML-whitespace
+ case CharClass.NONWHITESPACE:
+ /* Any other character */
+ bInWS = bPrevWasLF=false;
+ lfCheck.reset();
+ break;
+ }
+ }
+ firstInlineChild = null;
+ }
+ }
+
+ private static class LFchecker {
+ private boolean bNextIsLF=false;
+ private RecursiveCharIterator charIter;
+
+ LFchecker(RecursiveCharIterator charIter) {
+ this.charIter = charIter;
+ }
+
+ boolean nextIsLF() {
+ if (bNextIsLF==false) {
+ CharIterator lfIter = charIter.mark();
+ while (lfIter.hasNext()) {
+ char c = lfIter.nextChar();
+ if (c == '\n') {
+ bNextIsLF=true;
+ break;
+ }
+ else if (CharClass.classOf(c)!=CharClass.XMLWHITESPACE) {
+ break;
+ }
+ }
+ }
+ return bNextIsLF;
+ }
+
+ void reset() {
+ bNextIsLF=false;
+ }
}
}
1.15 +10 -2 xml-fop/src/org/apache/fop/fo/flow/Character.java
Index: Character.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Character.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Character.java 2001/11/09 11:32:37 1.14
+++ Character.java 2001/11/21 22:13:36 1.15
@@ -1,5 +1,5 @@
/*
- * $Id: Character.java,v 1.14 2001/11/09 11:32:37 keiron Exp $
+ * $Id: Character.java,v 1.15 2001/11/21 22:13:36 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.
@@ -37,6 +37,8 @@
public final static int OK = 0;
public final static int DOESNOT_FIT = 1;
+ private char characterValue;
+
public Character(FONode parent) {
super(parent);
this.name = "fo:character";
@@ -112,7 +114,7 @@
}
// Character specific properties
- char characterValue = this.properties.get("character").getCharacter();
+ characterValue = this.properties.get("character").getCharacter();
// initialize id
@@ -146,5 +148,11 @@
return new Status(Status.OK);
}
+
+ public CharIterator charIterator() {
+ return new OneCharIterator(characterValue);
+ // But what it the character is ignored due to white space handling?
+ }
+
}
1.11 +6 -1 xml-fop/src/org/apache/fop/fo/flow/Inline.java
Index: Inline.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Inline.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Inline.java 2001/11/09 11:32:37 1.10
+++ Inline.java 2001/11/21 22:13:36 1.11
@@ -1,5 +1,5 @@
/*
- * $Id: Inline.java,v 1.10 2001/11/09 11:32:37 keiron Exp $
+ * $Id: Inline.java,v 1.11 2001/11/21 22:13:36 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.
@@ -85,6 +85,11 @@
if (textDecoration == TextDecoration.LINE_THROUGH) {
this.lineThrough = true;
}
+ }
+
+
+ public CharIterator charIterator() {
+ return new InlineCharIterator(this, propMgr.getBorderAndPadding());
}
}
1.21 +2 -2 xml-fop/src/org/apache/fop/fo/pagination/SimplePageMaster.java
Index: SimplePageMaster.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/pagination/SimplePageMaster.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- SimplePageMaster.java 2001/11/15 12:40:31 1.20
+++ SimplePageMaster.java 2001/11/21 22:13:36 1.21
@@ -1,5 +1,5 @@
/*
- * $Id: SimplePageMaster.java,v 1.20 2001/11/15 12:40:31 keiron Exp $
+ * $Id: SimplePageMaster.java,v 1.21 2001/11/21 22:13:36 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.
@@ -112,7 +112,7 @@
new Rectangle(0,0,
pageWidth,pageHeight)));
- _regions = null;
+ // _regions = null; // PageSequence access SimplePageMaster....
children = null;
properties = null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]