cvs commit: xml-fop/src/java/org/apache/fop/tools AreaTreeBuilder.java
gmazza 2004/04/22 14:38:41 Modified:src/java/org/apache/fop/apps Document.java Driver.java src/java/org/apache/fop/area AreaTree.java AreaTreeControl.java src/java/org/apache/fop/fo FONode.java FOTreeControl.java PropertyManager.java src/java/org/apache/fop/fonts FontSetup.java src/java/org/apache/fop/pdf PDFFactory.java PDFResources.java src/java/org/apache/fop/render AbstractRenderer.java PrintRenderer.java Renderer.java src/java/org/apache/fop/render/awt AWTRenderer.java FontSetup.java src/java/org/apache/fop/render/mif MIFHandler.java src/java/org/apache/fop/render/pdf PDFRenderer.java PDFXMLHandler.java src/java/org/apache/fop/render/ps AbstractPSDocumentGraphics2D.java EPSDocumentGraphics2D.java PSDocumentGraphics2D.java PSGraphics2D.java PSProcSets.java PSRenderer.java PSTextPainter.java src/java/org/apache/fop/render/rtf RTFHandler.java src/java/org/apache/fop/render/svg SVGRenderer.java src/java/org/apache/fop/render/xml XMLRenderer.java src/java/org/apache/fop/svg PDFDocumentGraphics2D.java PDFGraphics2D.java PDFTextElementBridge.java PDFTextPainter.java src/java/org/apache/fop/tools AreaTreeBuilder.java Log: Patch #28525 applied -- new FontInfo class. Revision ChangesPath 1.13 +14 -205 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- Document.java 31 Mar 2004 10:55:05 - 1.12 +++ Document.java 22 Apr 2004 21:38:39 - 1.13 @@ -38,34 +38,27 @@ import org.apache.fop.fo.FOTreeEvent; import org.apache.fop.fo.FOTreeListener; import org.apache.fop.fo.pagination.PageSequence; -import org.apache.fop.fonts.Font; -import org.apache.fop.fonts.FontMetrics; +import org.apache.fop.fonts.FontInfo; import org.apache.fop.layout.LayoutStrategy; +import org.apache.commons.logging.Log; + // SAX import org.xml.sax.SAXException; -import org.apache.commons.logging.Log; - /** * Class storing information for the FOP Document being processed, and managing * the processing of it. */ public class Document implements FOTreeControl, FOTreeListener, AreaTreeControl { - + /** The parent Driver object */ private Driver driver; -/** Map containing fonts that have been used */ -private Map usedFonts; - -/** look up a font-triplet to find a font-name */ -private Map triplets; - -/** look up a font-name to get a font (that implements FontMetrics at least) */ -private Map fonts; - +/** The Font information relevant for this document */ +private FontInfo fontInfo; + /** * the LayoutStrategy to be used to process this document * TODO: this actually belongs in the RenderContext class, when it is @@ -75,6 +68,7 @@ /** The current AreaTree for the PageSequence being rendered. */ public AreaTree areaTree; + /** The AreaTreeModel for the PageSequence being rendered. */ public AreaTreeModel atModel; @@ -98,186 +92,15 @@ */ public Document(Driver driver) { this.driver = driver; -this.triplets = new java.util.HashMap(); -this.fonts = new java.util.HashMap(); -this.usedFonts = new java.util.HashMap(); -} - -/** - * Checks if the font setup is valid (At least the ultimate fallback font - * must be registered.) - * @return True if valid - */ -public boolean isSetupValid() { -return triplets.containsKey(Font.DEFAULT_FONT); -} - -/** - * Adds a new font triplet. - * @param name internal key - * @param family font family name - * @param style font style (normal, italic, oblique...) - * @param weight font weight - */ -public void addFontProperties(String name, String family, String style, - int weight) { -/* - * add the given family, style and weight as a lookup for the font - * with the given name - */ - -String key = createFontKey(family, style, weight); -this.triplets.put(key, name); -} - -/** - * Adds font metrics for a specific font
cvs commit: xml-fop/src/java/org/apache/fop/render PrintRenderer.java
gmazza 2004/04/22 14:56:09 Modified:src/java/org/apache/fop/fonts FontSetup.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java src/java/org/apache/fop/render PrintRenderer.java Log: Unneeded imports removed. Revision ChangesPath 1.5 +1 -4 xml-fop/src/java/org/apache/fop/fonts/FontSetup.java Index: FontSetup.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fonts/FontSetup.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- FontSetup.java22 Apr 2004 21:38:39 - 1.4 +++ FontSetup.java22 Apr 2004 21:56:09 - 1.5 @@ -18,9 +18,6 @@ package org.apache.fop.fonts; -// FOP -import org.apache.fop.apps.Document; - // FOP (base 14 fonts) import org.apache.fop.fonts.base14.Helvetica; import org.apache.fop.fonts.base14.HelveticaBold; 1.38 +1 -2 xml-fop/src/java/org/apache/fop/layoutmgr/AddLMVisitor.java Index: AddLMVisitor.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/AddLMVisitor.java,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- AddLMVisitor.java 4 Apr 2004 06:29:44 - 1.37 +++ AddLMVisitor.java 22 Apr 2004 21:56:09 - 1.38 @@ -26,7 +26,6 @@ import java.util.ListIterator; -import org.apache.fop.apps.Document; import org.apache.fop.area.LinkResolver; import org.apache.fop.area.PageViewport; import org.apache.fop.area.Resolveable; 1.9 +0 -1 xml-fop/src/java/org/apache/fop/render/PrintRenderer.java Index: PrintRenderer.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/PrintRenderer.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- PrintRenderer.java22 Apr 2004 21:38:39 - 1.8 +++ PrintRenderer.java22 Apr 2004 21:56:09 - 1.9 @@ -19,7 +19,6 @@ package org.apache.fop.render; // FOP -import org.apache.fop.apps.Document; import org.apache.fop.fonts.FontInfo; import org.apache.fop.fonts.FontSetup; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/pdf PDFFactory.java PDFObject.java PDFPages.java
gmazza 2004/04/22 20:05:11 Modified:src/java/org/apache/fop/pdf PDFFactory.java PDFObject.java PDFPages.java Log: Logger "LogFactory.getLog(PDFObject.class.getPackage().getName())" was causing null pointer exceptions when the Ant task is run (although not with command-line usage); switched to "LogFactory.getLog(PDFObject.class.getName())", which works for both command-line and Ant task. Revision ChangesPath 1.12 +1 -1 xml-fop/src/java/org/apache/fop/pdf/PDFFactory.java Index: PDFFactory.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/pdf/PDFFactory.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- PDFFactory.java 22 Apr 2004 21:38:39 - 1.11 +++ PDFFactory.java 23 Apr 2004 03:05:11 - 1.12 @@ -92,7 +92,7 @@ * @return a new PDF Pages object for adding pages to */ public PDFPages makePages() { -PDFPages pdfPages = new PDFPages(++this.document.objectcount); +PDFPages pdfPages = new PDFPages(++(this.document.objectcount)); getDocument().addTrailerObject(pdfPages); return pdfPages; } 1.6 +1 -8 xml-fop/src/java/org/apache/fop/pdf/PDFObject.java Index: PDFObject.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/pdf/PDFObject.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- PDFObject.java3 Apr 2004 08:30:08 - 1.5 +++ PDFObject.java23 Apr 2004 03:05:11 - 1.6 @@ -37,7 +37,7 @@ public abstract class PDFObject { /** logger for all PDFObjects (and descendants) */ -protected static Log log = LogFactory.getLog(PDFObject.class.getPackage().getName()); +protected static Log log = LogFactory.getLog(PDFObject.class.getName()); /** * the object's number @@ -53,13 +53,6 @@ * the parent PDFDocument */ private PDFDocument document; - -/** - * Create a PDFObject - */ -public PDFObject() { -// do nothing -} /** * Returns the object's number. 1.4 +0 -1 xml-fop/src/java/org/apache/fop/pdf/PDFPages.java Index: PDFPages.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/pdf/PDFPages.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- PDFPages.java 27 Feb 2004 17:50:31 - 1.3 +++ PDFPages.java 23 Apr 2004 03:05:11 - 1.4 @@ -54,7 +54,6 @@ * @param objnum the object's number */ public PDFPages(int objnum) { -super(); setObjectNumber(objnum); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/render/pdf PDFRenderer.java
gmazza 2004/04/23 22:15:35 Modified:src/java/org/apache/fop/render/pdf PDFRenderer.java Log: PDFRenderer does not presently support out-of-order rendering (e.g., a 10 page document that has an "ending page" fo:page-number-citation in use will have page 10 printed first, then pages 1-9). Turning this value to false has the pages generate in correct order. Revision ChangesPath 1.41 +1 -1 xml-fop/src/java/org/apache/fop/render/pdf/PDFRenderer.java Index: PDFRenderer.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/pdf/PDFRenderer.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- PDFRenderer.java 22 Apr 2004 21:38:40 - 1.40 +++ PDFRenderer.java 24 Apr 2004 05:15:35 - 1.41 @@ -285,7 +285,7 @@ * @see org.apache.fop.render.Renderer#supportsOutOfOrder() */ public boolean supportsOutOfOrder() { -return true; +return false; } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/render/ps AbstractPSDocumentGraphics2D.java AbstractPSTranscoder.java EPSDocumentGraphics2D.java PSDocumentGraphics2D.java PSGraphics2D.java PSTextPainter.java PSXMLHandler.java
gmazza 2004/04/23 23:08:13 Modified:src/java/org/apache/fop/render/ps AbstractPSDocumentGraphics2D.java AbstractPSTranscoder.java EPSDocumentGraphics2D.java PSDocumentGraphics2D.java PSGraphics2D.java PSTextPainter.java PSXMLHandler.java Log: More apps.Document->fonts.FontInfo conversion. Revision ChangesPath 1.6 +5 -13 xml-fop/src/java/org/apache/fop/render/ps/AbstractPSDocumentGraphics2D.java Index: AbstractPSDocumentGraphics2D.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/ps/AbstractPSDocumentGraphics2D.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- AbstractPSDocumentGraphics2D.java 22 Apr 2004 21:38:40 - 1.5 +++ AbstractPSDocumentGraphics2D.java 24 Apr 2004 06:08:13 - 1.6 @@ -26,7 +26,7 @@ import java.io.IOException; //FOP -import org.apache.fop.apps.Document; +import org.apache.fop.fonts.FontInfo; import org.apache.fop.fonts.FontSetup; /** @@ -68,8 +68,8 @@ super(textAsShapes); if (!textAsShapes) { -this.document = new Document(null); -FontSetup.setup(this.document.getFontInfo(), null); +fontInfo = new FontInfo(); +FontSetup.setup(fontInfo, null); } } @@ -113,14 +113,6 @@ int width, int height) throws IOException { this(textAsShapes); setupDocument(stream, width, height); -} - -/** - * Get the context document. - * @return the context document - */ -public Document getDocument() { -return this.document; } /** 1.5 +3 -3 xml-fop/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java Index: AbstractPSTranscoder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- AbstractPSTranscoder.java 31 Mar 2004 10:55:07 - 1.4 +++ AbstractPSTranscoder.java 24 Apr 2004 06:08:13 - 1.5 @@ -84,7 +84,7 @@ }*/ BridgeContext ctx = new BridgeContext(userAgent); -PSTextPainter textPainter = new PSTextPainter(graphics.getDocument()); +PSTextPainter textPainter = new PSTextPainter(graphics.getFontInfo()); ctx.setTextPainter(textPainter); ctx.putBridge(new PSTextElementBridge(textPainter)); 1.5 +5 -5 xml-fop/src/java/org/apache/fop/render/ps/EPSDocumentGraphics2D.java Index: EPSDocumentGraphics2D.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/ps/EPSDocumentGraphics2D.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- EPSDocumentGraphics2D.java22 Apr 2004 21:38:40 - 1.4 +++ EPSDocumentGraphics2D.java24 Apr 2004 06:08:13 - 1.5 @@ -69,8 +69,8 @@ gen.writeDSCComment(DSCConstants.BEGIN_PROLOG); PSProcSets.writeFOPStdProcSet(gen); PSProcSets.writeFOPEPSProcSet(gen); -if (document != null) { -PSProcSets.writeFontDict(gen, document.getFontInfo()); +if (fontInfo != null) { +PSProcSets.writeFontDict(gen, fontInfo); } gen.writeDSCComment(DSCConstants.END_PROLOG); } @@ -82,7 +82,7 @@ gen.writeDSCComment(DSCConstants.PAGE_BBOX, new Object[] {ZERO, ZERO, new Integer(width), new Integer(height)}); gen.writeDSCComment(DSCConstants.BEGIN_PAGE_SETUP); -if (this.document != null) { +if (fontInfo != null) { gen.writeln("FOPFonts begin"); } } 1.13 +6 -6 xml-fop/src/java/org/apache/fop/render/ps/PSDocumentGraphics2D.java Index: PSDocumentGraphics2D.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/ps/PSDocumentGraphics2D.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- PSDocumentGraphics2D.java 22 Apr 2004 21:38:40 - 1.12 +++ PSDocumentGraphics2D.java 24 Apr 2004 06:08:13 - 1.13 @@ -24,8 +24,8 @@ import java.io.IOException; //FOP -import org.apache.fop.apps.Document; import org.apache.fop.apps.Version; +import org.apache.fop.fonts.FontInfo; import org.apache.fop.fonts.FontSetup; /** @@ -56,8 +56,8 @@ super(textAsShapes);
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr LayoutManagerLS.java
gmazza 2004/04/24 00:03:56 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/layout LayoutStrategy.java src/java/org/apache/fop/layoutmgr LayoutManagerLS.java Log: Removed currently unused Document object from the LayoutStrategy (the latter class is already a child of Document, and a two-way interface appears unneeded.) Revision ChangesPath 1.57 +1 -1 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- Driver.java 22 Apr 2004 21:38:39 - 1.56 +++ Driver.java 24 Apr 2004 07:03:56 - 1.57 @@ -514,7 +514,7 @@ accessible through the API and/or configuration */ if (foInputHandler instanceof FOTreeHandler) { if (currentDocument.getLayoutStrategy() == null) { -currentDocument.setLayoutStrategy(new LayoutManagerLS(currentDocument)); +currentDocument.setLayoutStrategy(new LayoutManagerLS()); } } 1.8 +2 -5 xml-fop/src/java/org/apache/fop/layout/LayoutStrategy.java Index: LayoutStrategy.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layout/LayoutStrategy.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- LayoutStrategy.java 27 Feb 2004 17:48:21 - 1.7 +++ LayoutStrategy.java 24 Apr 2004 07:03:56 - 1.8 @@ -19,7 +19,6 @@ package org.apache.fop.layout; -import org.apache.fop.apps.Document; import org.apache.fop.apps.FOPException; import org.apache.fop.area.AreaTree; import org.apache.fop.fo.pagination.PageSequence; @@ -32,10 +31,8 @@ public abstract class LayoutStrategy { private String name = "undefined"; -public Document document; -public LayoutStrategy(Document document) { -this.document = document; +public LayoutStrategy() { } /** 1.22 +3 -4 xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerLS.java Index: LayoutManagerLS.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerLS.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- LayoutManagerLS.java 18 Mar 2004 00:22:40 - 1.21 +++ LayoutManagerLS.java 24 Apr 2004 07:03:56 - 1.22 @@ -18,7 +18,6 @@ package org.apache.fop.layoutmgr; -import org.apache.fop.apps.Document; import org.apache.fop.apps.FOPException; import org.apache.fop.area.AreaTree; import org.apache.fop.area.Title; @@ -36,8 +35,8 @@ extending FOP **/ private AddLMVisitor addLMVisitor = null; -public LayoutManagerLS(Document document) { -super(document); +public LayoutManagerLS() { +super(); } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/documentation/content/xdocs news.xml
gmazza 2004/04/24 12:37:22 Modified:src/documentation/content/xdocs news.xml Log: Updated news page. Revision ChangesPath 1.20 +6 -59 xml-fop/src/documentation/content/xdocs/news.xml Index: news.xml === RCS file: /home/cvs/xml-fop/src/documentation/content/xdocs/news.xml,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- news.xml 7 Mar 2004 23:29:23 - 1.19 +++ news.xml 24 Apr 2004 19:37:22 - 1.20 @@ -25,6 +25,10 @@ + 24 April 2004 - New Committer + Welcome Simon Pepping! + + 7 March 2004 - New Committer Welcome Web Maestro Clay Leeds! @@ -125,63 +129,6 @@ 9 November 2002 - New Committer Welcome Oleg Tkachenko! - - - 7 July 2002 FOP 0.20.4 released - - Changes since 0.20.3 include: - - - Support for background-image - -FOP should now work with any JAXP1.1 compliant -parser/transformer - - -The following JARs have been updated: Xerces to version -2.0.1, Xalan to version 2.3.1 and Batik to version 1.5beta2. - - FOP has been compiled with Jimi support - -Logging has been changed from LogKit to Avalon's Logger -Interface - - New hyphenation patterns: turkish, portuguese and czech - FOP should now work on a EBCDIC machine - -Support for comma-separated values for the font-family -property - - Russian and Czech messages for AWTViewer - - For details see CHANGES file:http://cvs.apache.org/viewcvs.cgi/xml-fop/CHANGES?rev=1.10.2.21"; - >http://cvs.apache.org/viewcvs.cgi/xml-fop/CHANGES?rev=1.10.2.21 - - - See also the full text of the http://marc.theaimsgroup.com/?l=fop-dev&m=102607087326357&w=4"; - >announcement. - - - - 13 June 2002 FOP 0.20.4 Release Candidate available - - See the full text of the http://marc.theaimsgroup.com/?l=fop-dev&m=102398470424177&w=4"; - >announcement. - - - - 19 April 2002 - New Committers - Welcome Jeremias Maerki, Joerg Pietschmann and Peter B. West! - - - 11 March 2002 - FOP 0.20.3 released - This is a maintenance release, the first version which supports the XSL-FO - Recommendation syntax. See the - http://marc.theaimsgroup.com/?l=xml-apache-announce&m=101588818821794";> - announcement for more information. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/render/xml XMLRenderer.java
gmazza 2004/04/24 21:45:28 Modified:src/java/org/apache/fop/area/inline TextArea.java src/java/org/apache/fop/fo FObj.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java BlockLayoutManager.java TextLayoutManager.java src/java/org/apache/fop/render/pdf PDFRenderer.java src/java/org/apache/fop/render/xml XMLRenderer.java Log: For area.Blocks created in BlockLayoutManager.getParentArea(), I set the width of the Block to that of its parent block. This fixes a layout problem where some text was causing a line to draw across the entire page, because the cell width present in fo:table-cell's Block was not copied into the inner fo:block's Block. (This problem did not occur if the border-bottom attribute was set in fo:table-cell.) Revision ChangesPath 1.4 +6 -6 xml-fop/src/java/org/apache/fop/area/inline/TextArea.java Index: TextArea.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/inline/TextArea.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TextArea.java 27 Feb 2004 17:40:58 - 1.3 +++ TextArea.java 25 Apr 2004 04:45:27 - 1.4 @@ -27,7 +27,7 @@ * The text for this inline area */ protected String text; -private int iTSadjust = 0; +private int iTextSpaceAdjust = 0; /** * Create a text inline area @@ -58,8 +58,8 @@ * * @return the text space adjustment */ -public int getTSadjust() { -return iTSadjust; +public int getTextSpaceAdjust() { +return iTextSpaceAdjust; } /** @@ -67,8 +67,8 @@ * * @param iTSadjust the text space adjustment */ -public void setTSadjust(int iTSadjust) { -this.iTSadjust = iTSadjust; +public void setTextSpaceAdjust(int iTSadjust) { +iTextSpaceAdjust = iTSadjust; } } 1.37 +7 -4 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- FObj.java 27 Feb 2004 17:57:40 - 1.36 +++ FObj.java 25 Apr 2004 04:45:28 - 1.37 @@ -448,12 +448,15 @@ fotv.serveFObj(this); } -/** - * Return a string representation of the fo element. + +/* + * Return a string representation of the fo element. + * Deactivated in order to see precise ID of each fo element created + *(helpful for debugging) */ -public String toString() { +/*public String toString() { return getName() + " at line " + line + ":" + column; } - +*/ } 1.39 +2 -6 xml-fop/src/java/org/apache/fop/layoutmgr/AddLMVisitor.java Index: AddLMVisitor.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/AddLMVisitor.java,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- AddLMVisitor.java 22 Apr 2004 21:56:09 - 1.38 +++ AddLMVisitor.java 25 Apr 2004 04:45:28 - 1.39 @@ -282,11 +282,7 @@ } public void serveBlock(Block node) { - BlockLayoutManager blm = new BlockLayoutManager(); - blm.setUserAgent(node.getUserAgent()); - blm.setFObj(node); - TextInfo ti = node.getPropertyManager().getTextLayoutProps(node.getFOTreeControl()); - blm.setBlockTextInfo(ti); + BlockLayoutManager blm = new BlockLayoutManager(node); currentLMList.add(blm); } 1.16 +24 -21 xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java Index: BlockLayoutManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- BlockLayoutManager.java 21 Mar 2004 12:03:07 - 1.15 +++ BlockLayoutManager.java 25 Apr 2004 04:45:28 - 1.16 @@ -28,6 +28,7 @@ import org.apache.fop.fo.PropertyManager; import org.apache.fop.area.Area; import org.apache.fop.area.Block; +import org.apache.fop.area.BlockParent; import org.apache.fop.area.LineArea; import org.apache.fop.traits.LayoutProps; import org.apache.fop.fo.properties.CommonBorderAndPadding; @@ -68,6 +69,20 @@ protected List childBreaks = new java.util.ArrayList();
cvs commit: xml-fop/src/java/org/apache/fop/tools/anttasks Fop.java
gmazza 2004/05/12 16:19:53 Modified:src/java/org/apache/fop/apps Driver.java FOUserAgent.java src/java/org/apache/fop/fo FOTreeBuilder.java src/java/org/apache/fop/fo/flow ExternalGraphic.java src/java/org/apache/fop/image AbstractFopImage.java FopImage.java GifImage.java ImageFactory.java src/java/org/apache/fop/image/analyser ImageReaderFactory.java SVGReader.java XMLReader.java src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java BlockContainerLayoutManager.java FlowLayoutManager.java InlineStackingLayoutManager.java LineLayoutManager.java PageLayoutManager.java RetrieveMarkerLayoutManager.java StaticContentLayoutManager.java TextLayoutManager.java src/java/org/apache/fop/layoutmgr/table Body.java Cell.java src/java/org/apache/fop/render/awt AWTRenderer.java src/java/org/apache/fop/render/pdf PDFRenderer.java PDFXMLHandler.java src/java/org/apache/fop/render/ps PSGraphics2D.java PSRenderer.java PSXMLHandler.java src/java/org/apache/fop/svg PDFImageElementBridge.java SVGUserAgent.java src/java/org/apache/fop/tools AreaTreeBuilder.java TestConverter.java src/java/org/apache/fop/tools/anttasks Fop.java Log: Removed the getLogger() and setLogger() from FOUserAgent; replaced with Commons Logging equivalents in places where previously used. Revision ChangesPath 1.58 +0 -1 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- Driver.java 24 Apr 2004 07:03:56 - 1.57 +++ Driver.java 12 May 2004 23:19:52 - 1.58 @@ -245,7 +245,6 @@ public FOUserAgent getUserAgent() { if (userAgent == null) { userAgent = new FOUserAgent(); -userAgent.setLogger(getLogger()); } return userAgent; } 1.7 +1 -20 xml-fop/src/java/org/apache/fop/apps/FOUserAgent.java Index: FOUserAgent.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/FOUserAgent.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- FOUserAgent.java 31 Mar 2004 10:55:05 - 1.6 +++ FOUserAgent.java 12 May 2004 23:19:52 - 1.7 @@ -23,8 +23,6 @@ import java.io.IOException; import java.io.InputStream; -import org.apache.commons.logging.Log; - // FOP import org.apache.fop.pdf.PDFEncryptionParams; @@ -50,7 +48,6 @@ */ public class FOUserAgent { -private Log log; /** Map containing various default values */ public Map defaults = new java.util.HashMap(); /** Map containing XML handlers for various document types */ @@ -58,22 +55,6 @@ private String baseURL; private PDFEncryptionParams pdfEncryptionParams; private float px2mm = 0.3528f; //72dpi (=25.4/dpi) - -/** - * Sets the logger. - * @param log Logger to use - */ -public void setLogger(Log log) { -this.log = log; -} - -/** - * Returns the logger to use. - * (todo) This breaks IoC/SoC. Should be improved. - */ -public Log getLogger() { -return this.log; -} /** * Sets the base URL. 1.25 +7 -1 xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java Index: FOTreeBuilder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- FOTreeBuilder.java31 Mar 2004 10:55:06 - 1.24 +++ FOTreeBuilder.java12 May 2004 23:19:52 - 1.25 @@ -30,6 +30,7 @@ import java.util.Set; import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.fo.ElementMapping.Maker; @@ -54,6 +55,11 @@ protected Map fobjTable = new java.util.HashMap(); /** + * logging instance + */ +protected Log log = LogFactory.getLog(FOTreeBuilder.class); + +/** * Set
cvs commit: xml-fop/src/java/org/apache/fop/render/rtf PageAttributesConverter.java
gmazza 2004/05/09 13:45:15 Modified:src/java/org/apache/fop/fo/pagination LayoutMasterSet.java Region.java RegionAfter.java RegionBA.java RegionBASE.java RegionBefore.java RegionBody.java RegionEnd.java RegionSE.java RegionStart.java SimplePageMaster.java src/java/org/apache/fop/layoutmgr PageLayoutManager.java src/java/org/apache/fop/render/rtf PageAttributesConverter.java Log: String->int conversion and a few other simplifications to fo.Region* classes. Revision ChangesPath 1.6 +13 -12 xml-fop/src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java Index: LayoutMasterSet.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- LayoutMasterSet.java 27 Feb 2004 17:45:13 - 1.5 +++ LayoutMasterSet.java 9 May 2004 20:45:15 - 1.6 @@ -140,11 +140,12 @@ } /** - * Section 7.33.15: check to see that if a region-name is a - * duplicate, that it maps to the same region-class. + * Section 7.25.7: check to see that if a region-name is a + * duplicate, that it maps to the same fo region-class. * @throws FOPException if there's a name duplication */ public void checkRegionNames() throws FOPException { +// (user-entered) region-name to default region map. Map allRegions = new java.util.HashMap(); for (Iterator spm = simplePageMasters.values().iterator(); spm.hasNext();) { @@ -153,22 +154,22 @@ Map spmRegions = simplePageMaster.getRegions(); for (Iterator e = spmRegions.values().iterator(); e.hasNext();) { -Region region = (Region)e.next(); +Region region = (Region) e.next(); if (allRegions.containsKey(region.getRegionName())) { -String localClass = -(String)allRegions.get(region.getRegionName()); -if (!localClass.equals(region.getRegionClass())) { -throw new FOPException("Duplicate region-names (" +String defaultRegionName = +(String) allRegions.get(region.getRegionName()); +if (!defaultRegionName.equals(region.getDefaultRegionName())) { +throw new FOPException("Region-name (" + region.getRegionName() - + ") must map " - + "to the same region-class (" - + localClass + "!=" - + region.getRegionClass() + + ") is being mapped to multiple " + + "region-classes (" + + defaultRegionName + " and " + + region.getDefaultRegionName() + ")"); } } allRegions.put(region.getRegionName(), - region.getRegionClass()); + region.getDefaultRegionName()); } } } 1.18 +5 -21 xml-fop/src/java/org/apache/fop/fo/pagination/Region.java Index: Region.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/Region.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- Region.java 27 Feb 2004 17:45:13 - 1.17 +++ Region.java 9 May 2004 20:45:15 - 1.18 @@ -32,17 +32,6 @@ */ public abstract class Region extends FObj { -/** Key for before regions */ -public static final String BEFORE = "before"; -/** Key for start regions */ -public static final String START = "start"; -/** Key for end regions */ -public static final String END ="end"; -/** Key for after regions */ -public static final String AFTER = "after"; -/** Key for body regions */ -public static final String BODY = "body"; - /* The following codes correspond to those found in area/RegionReference */ /** Integer Code for bef
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr/table Body.java Cell.java Column.java Row.java TableLayoutManager.java
gmazza 2004/05/15 14:52:00 Modified:src/java/org/apache/fop/fo/flow TableColumn.java src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java AddLMVisitor.java BlockContainerLayoutManager.java BlockLayoutManager.java BlockStackingLayoutManager.java FlowLayoutManager.java ICLayoutManager.java InlineStackingLayoutManager.java LayoutManager.java LayoutManagerLS.java LeafNodeLayoutManager.java LineLayoutManager.java PageLayoutManager.java RetrieveMarkerLayoutManager.java src/java/org/apache/fop/layoutmgr/list Item.java ListBlockLayoutManager.java ListItemLayoutManager.java src/java/org/apache/fop/layoutmgr/table Body.java Cell.java Column.java Row.java TableLayoutManager.java Log: Moved FOUserAgent, FObj initialization from AddLMVisitor to constructors of respective LayoutManagers. Revision ChangesPath 1.15 +4 -4 xml-fop/src/java/org/apache/fop/fo/flow/TableColumn.java Index: TableColumn.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/TableColumn.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- TableColumn.java 27 Feb 2004 17:44:24 - 1.14 +++ TableColumn.java 15 May 2004 21:51:59 - 1.15 @@ -45,7 +45,7 @@ private int numColumnsRepeated; private int iColumnNumber; -private boolean setup = false; +private boolean initialized = false; /** * @param parent FONode that is the parent of this object @@ -75,7 +75,7 @@ return numColumnsRepeated; } -public void doSetup() { +public void initialize() { // Common Border, Padding, and Background Properties // only background apply, border apply if border-collapse @@ -101,7 +101,7 @@ // initialize id setupID(); -setup = true; +initialized = true; } /** @@ -121,7 +121,7 @@ */ public void handleAttrs(Attributes attlist) throws FOPException { super.handleAttrs(attlist); -doSetup();// init some basic property values +initialize();// init some basic property values getFOTreeControl().getFOInputHandler().startColumn(this); } 1.12 +1 -0 xml-fop/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java Index: AbstractLayoutManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- AbstractLayoutManager.java12 May 2004 23:19:52 - 1.11 +++ AbstractLayoutManager.java15 May 2004 21:51:59 - 1.12 @@ -67,6 +67,7 @@ */ public AbstractLayoutManager(FObj fo) { setFObj(fo); +setUserAgent(fo.getUserAgent()); } /** 1.40 +24 -70xml-fop/src/java/org/apache/fop/layoutmgr/AddLMVisitor.java Index: AddLMVisitor.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/AddLMVisitor.java,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- AddLMVisitor.java 25 Apr 2004 04:45:28 - 1.39 +++ AddLMVisitor.java 15 May 2004 21:51:59 - 1.40 @@ -187,9 +187,7 @@ public void serveFObjMixed(FObjMixed node) { if (node.getChildren() != null) { InlineStackingLayoutManager lm; -lm = new InlineStackingLayoutManager(); -lm.setUserAgent(node.getUserAgent()); -lm.setFObj(node); +lm = new InlineStackingLayoutManager(node); lm.setLMiter(new LMiter(lm, node.getChildren())); currentLMList.add(lm); } @@ -238,9 +236,7 @@ currentLMList = childList; serveFObj((FObj)node); currentLMList = saveLMList; -LayoutManager lm = new ICLayoutManager(childList); -lm.setUserAgent(node.getUserAgent()); -lm.setFObj(node); +LayoutManager lm = new ICLayoutManager(node, childList); currentLMList.add(lm); } @@ -250,15 +246,13 @@ public void serveBasicLink(final BasicLink node) { node.setup(); InlineStackingLayoutManager lm; -lm = new InlineStackingLayoutManager() { +lm = new InlineStackingLayoutManager(node) { protected InlineParent
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java ContentLayoutManager.java LMiter.java LayoutManager.java PageLayoutManager.java LayoutManagerLS.java
gmazza 2004/05/18 04:42:08 Modified:src/java/org/apache/fop/apps Document.java Driver.java src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java ContentLayoutManager.java LMiter.java LayoutManager.java PageLayoutManager.java Removed: src/java/org/apache/fop/layout LayoutStrategy.java src/java/org/apache/fop/layoutmgr LayoutManagerLS.java Log: Folded the layout strategy into apps.Document. Revision ChangesPath 1.14 +114 -29 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- Document.java 22 Apr 2004 21:38:39 - 1.13 +++ Document.java 18 May 2004 11:42:07 - 1.14 @@ -24,22 +24,25 @@ import java.util.Set; import java.util.HashSet; - // FOP -import org.apache.fop.apps.FOUserAgent; - import org.apache.fop.area.AreaTree; import org.apache.fop.area.AreaTreeControl; import org.apache.fop.area.AreaTreeModel; +import org.apache.fop.area.Title; -import org.apache.fop.fo.extensions.Bookmarks; import org.apache.fop.fo.FOInputHandler; import org.apache.fop.fo.FOTreeControl; import org.apache.fop.fo.FOTreeEvent; import org.apache.fop.fo.FOTreeListener; +import org.apache.fop.fo.extensions.Bookmarks; import org.apache.fop.fo.pagination.PageSequence; import org.apache.fop.fonts.FontInfo; -import org.apache.fop.layout.LayoutStrategy; +import org.apache.fop.layoutmgr.AddLMVisitor; +import org.apache.fop.layoutmgr.ContentLayoutManager; +import org.apache.fop.layoutmgr.InlineStackingLayoutManager; +import org.apache.fop.layoutmgr.LMiter; +import org.apache.fop.layoutmgr.PageLayoutManager; + import org.apache.commons.logging.Log; @@ -59,13 +62,6 @@ /** The Font information relevant for this document */ private FontInfo fontInfo; -/** - * the LayoutStrategy to be used to process this document - * TODO: this actually belongs in the RenderContext class, when it is - * created - */ -private LayoutStrategy layoutStrategy = null; - /** The current AreaTree for the PageSequence being rendered. */ public AreaTree areaTree; @@ -74,6 +70,10 @@ private Bookmarks bookmarks = null; +/** Useful only for allowing subclasses of AddLMVisitor to be set by those + extending FOP **/ + private AddLMVisitor addLMVisitor = null; + /** * The current set of id's in the FO tree. * This is used so we know if the FO tree contains duplicates. @@ -104,21 +104,6 @@ } /** - * Set the LayoutStrategy to be used to process this Document - * @param ls the LayoutStrategy object to be used to process this Document - */ -public void setLayoutStrategy(LayoutStrategy ls) { -this.layoutStrategy = ls; -} - -/** - * @return this Document's LayoutStrategy object - */ -public LayoutStrategy getLayoutStrategy () { -return layoutStrategy; -} - -/** * Public accessor for the parent Driver of this Document * @return the parent Driver for this Document */ @@ -135,7 +120,7 @@ public void foPageSequenceComplete (FOTreeEvent event) throws FOPException { PageSequence pageSeq = event.getPageSequence(); areaTree.addBookmarksToAreaTree(); -layoutStrategy.format(pageSeq, areaTree); +format(pageSeq, areaTree); } /** @@ -195,4 +180,104 @@ return foInputHandler; } +/** + * Runs the formatting of this page sequence into the given area tree + * + * @param pageSeq the PageSequence to be formatted + * @param areaTree the area tree to format this page sequence into + * @throws FOPException if there is an error formatting the contents + */ +public void format(PageSequence pageSeq, AreaTree areaTree) throws FOPException { +Title title = null; +if (pageSeq.getTitleFO() != null) { +title = getTitleArea(pageSeq.getTitleFO()); +} +areaTree.startPageSequence(title); +// Make a new PageLayoutManager and a FlowLayoutManager +// Run the PLM in a thread +// Wait for them to finish. + +// If no main flow, nothing to layout! +if (pageSeq.getMainFlow() == null) { +return; +} + +// Initialize if already used? +//this.layoutMasterSet.resetPageMasters(); +if (pageSeq.getPageSequenceMaster() != null) { +pageSeq.getPageSequenceMast
cvs commit: xml-fop/src/java/org/apache/fop/fo FOElementMapping.java FOTreeBuilder.java
gmazza 2004/05/19 15:37:53 Modified:src/java/org/apache/fop/fo FOElementMapping.java FOTreeBuilder.java Log: Spelled out FO element maker classes in order to make its toString() readable during debugging (without needing to provide individual toString() overrides). Revision ChangesPath 1.7 +118 -112 xml-fop/src/java/org/apache/fop/fo/FOElementMapping.java Index: FOElementMapping.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOElementMapping.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- FOElementMapping.java 27 Feb 2004 17:57:40 - 1.6 +++ FOElementMapping.java 19 May 2004 22:37:53 - 1.7 @@ -41,416 +41,422 @@ foObjs = new HashMap(); // Declarations and Pagination and Layout Formatting Objects -foObjs.put("root", new R()); -foObjs.put("declarations", new Dec()); -foObjs.put("color-profile", new CP()); -foObjs.put("page-sequence", new PS()); -foObjs.put("layout-master-set", new LMS()); +foObjs.put("root", new RootMaker()); +foObjs.put("declarations", new DeclarationsMaker()); +foObjs.put("color-profile", new ColorProfileMaker()); +foObjs.put("page-sequence", new PageSequenceMaker()); +foObjs.put("layout-master-set", new LayoutMasterSetMaker()); foObjs.put("page-sequence-master", - new PSM()); + new PageSequenceMasterMaker()); foObjs.put("single-page-master-reference", - new SPMR()); + new SinglePageMasterReferenceMaker()); foObjs.put("repeatable-page-master-reference", - new RPMR()); + new RepeatablePageMasterReferenceMaker()); foObjs.put("repeatable-page-master-alternatives", - new RPMA()); + new RepeatablePageMasterAlternativesMaker()); foObjs.put("conditional-page-master-reference", - new CPMR()); + new ConditionalPageMasterReferenceMaker()); foObjs.put("simple-page-master", - new SPM()); -foObjs.put("region-body", new RB()); -foObjs.put("region-before", new RBefore()); -foObjs.put("region-after", new RA()); -foObjs.put("region-start", new RS()); -foObjs.put("region-end", new RE()); -foObjs.put("flow", new Fl()); -foObjs.put("static-content", new SC()); -foObjs.put("title", new T()); + new SimplePageMasterMaker()); +foObjs.put("region-body", new RegionBodyMaker()); +foObjs.put("region-before", new RegionBeforeMaker()); +foObjs.put("region-after", new RegionAfterMaker()); +foObjs.put("region-start", new RegionStartMaker()); +foObjs.put("region-end", new RegionEndMaker()); +foObjs.put("flow", new FlowMaker()); +foObjs.put("static-content", new StaticContentMaker()); +foObjs.put("title", new TitleMaker()); // Block-level Formatting Objects -foObjs.put("block", new B()); -foObjs.put("block-container", new BC()); +foObjs.put("block", new BlockMaker()); +foObjs.put("block-container", new BlockContainerMaker()); // Inline-level Formatting Objects -foObjs.put("bidi-override", new BO()); +foObjs.put("bidi-override", new BidiOverrideMaker()); foObjs.put("character", - new Ch()); + new CharacterMaker()); foObjs.put("initial-property-set", - new IPS()); -foObjs.put("external-graphic", new EG()); + new InitialPropertySetMaker()); +foObjs.put("external-graphic", new ExternalGraphicMaker()); foObjs.put("instream-foreign-object", - new IFO()); -foObjs.put("inline", new In()); -foObjs.put(&
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination ConditionalPageMasterReference.java Flow.java LayoutMasterSet.java PageMasterReference.java PageSequence.java PageSequenceMaster.java Region.java RepeatablePageMasterAlternatives.java RepeatablePageMasterReference.java SimplePageMaster.java
gmazza 2004/05/21 20:59:53 Modified:examples/mathml/src/org/apache/fop/mathml MathMLElement.java examples/plan/src/org/apache/fop/plan PlanElement.java src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/fo FONode.java FOTreeBuilder.java FObj.java XMLElement.java XMLObj.java src/java/org/apache/fop/fo/extensions Outline.java src/java/org/apache/fop/fo/extensions/svg SVGElement.java src/java/org/apache/fop/fo/flow BasicLink.java Block.java BlockContainer.java ExternalGraphic.java Footnote.java FootnoteBody.java Inline.java InlineContainer.java ListBlock.java ListItem.java ListItemLabel.java Marker.java PageNumber.java RetrieveMarker.java Table.java TableBody.java TableCell.java TableColumn.java TableRow.java src/java/org/apache/fop/fo/pagination ConditionalPageMasterReference.java Flow.java LayoutMasterSet.java PageMasterReference.java PageSequence.java PageSequenceMaster.java Region.java RepeatablePageMasterAlternatives.java RepeatablePageMasterReference.java SimplePageMaster.java Log: Switched from handleAttrs() to more intuitive processNode() and (for FO namespace) addProperties() methods. Revision ChangesPath 1.5 +5 -4 xml-fop/examples/mathml/src/org/apache/fop/mathml/MathMLElement.java Index: MathMLElement.java === RCS file: /home/cvs/xml-fop/examples/mathml/src/org/apache/fop/mathml/MathMLElement.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- MathMLElement.java27 Feb 2004 17:36:21 - 1.4 +++ MathMLElement.java22 May 2004 03:59:49 - 1.5 @@ -56,10 +56,11 @@ } /** - * @see org.apache.fop.fo.FONode#handleAttrs(Attributes) + * @see org.apache.fop.fo.FONode#processNode */ -public void handleAttrs(Attributes attlist) throws FOPException { -super.handleAttrs(attlist); +public void processNode(String elementName, Locator locator, +Attributes attlist) throws FOPException { +super.processNode(elementName, locator, attlist); createBasicDocument(); } 1.5 +5 -4 xml-fop/examples/plan/src/org/apache/fop/plan/PlanElement.java Index: PlanElement.java === RCS file: /home/cvs/xml-fop/examples/plan/src/org/apache/fop/plan/PlanElement.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- PlanElement.java 27 Feb 2004 17:37:50 - 1.4 +++ PlanElement.java 22 May 2004 03:59:51 - 1.5 @@ -44,10 +44,11 @@ } /** - * @see org.apache.fop.fo.FONode#handleAttrs(Attributes) + * @see org.apache.fop.fo.FONode#processNode */ -public void handleAttrs(Attributes attlist) throws FOPException { -super.handleAttrs(attlist); +public void processNode(String elementName, Locator locator, +Attributes attlist) throws FOPException { +super.processNode(elementName, locator, attlist); createBasicDocument(); } 1.60 +1 -3 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- Driver.java 18 May 2004 11:42:07 - 1.59 +++ Driver.java 22 May 2004 03:59:51 - 1.60 @@ -229,7 +229,6 @@ throw new IllegalStateException("Driver already initialized"); } treeBuilder = new FOTreeBuilder(); -treeBuilder.setUserAgent(getUserAgent()); } /** @@ -511,7 +510,6 @@ foInputHandler.setLogger(getLogger()); -treeBuilder.setUserAgent(getUserAgent()); treeBuilder.setFOInputHandler(foInputHandler); treeBuilder.setFOTreeControl(currentDocument); 1.18 +14 -23xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- FONode.java 22 Apr 2004 21:38:39 - 1.17 +++ FONode.java 22 May 200
cvs commit: xml-fop/src/java/org/apache/fop/render/rtf TableAttributesConverter.java
gmazza 2004/05/23 10:00:00 Modified:src/java/org/apache/fop/fo FObj.java PropertyManager.java src/java/org/apache/fop/fo/pagination RegionBody.java src/java/org/apache/fop/fo/properties PropertyMaker.java src/java/org/apache/fop/render/rtf TableAttributesConverter.java Log: Reverted part of yesterday's work to make FObj simpler, added more commenting in FObj. Revision ChangesPath 1.40 +52 -106 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- FObj.java 22 May 2004 21:44:37 - 1.39 +++ FObj.java 23 May 2004 17:00:00 - 1.40 @@ -37,36 +37,25 @@ */ public class FObj extends FONode implements Constants { private static final String FO_URI = "http://www.w3.org/1999/XSL/Format";; + public static PropertyMaker[] propertyListTable = null; -/** - * Formatting properties for this fo element. - */ +/** Formatting properties for this fo element. */ protected PropertyList propertyList; -/** - * Property manager for handling some common properties. - */ +/** Property manager for providing refined properties/traits. */ protected PropertyManager propMgr; -/** - * Id of this fo element of null if no id. - */ +/** Id of this fo element of null if no id. */ protected String id = null; -/** - * The children of this node. - */ +/** The children of this node. */ public ArrayList children = null; -/** - * Markers added to this element. - */ +/** Markers added to this element. */ protected Map markers = null; -/** - * Dynamic layout dimension. Used to resolve relative lengths. - */ +/** Dynamic layout dimension. Used to resolve relative lengths. */ protected Map layoutDimension = null; /** Marks input file containing this object **/ @@ -102,15 +91,30 @@ */ public void processNode(String elementName, Locator locator, Attributes attlist) throws FOPException { -name = "fo:" + elementName; +setName(elementName); +setLocation(locator); +addProperties(attlist); +} +/** + * Set the name of this element. + * The prepends "fo:" to the name to indicate it is in the fo namespace. + * @param str the xml element name + */ +public void setName(String str) { +name = "fo:" + str; +} + +/** + * Set the location information for this element + * @param locator the org.xml.sax.Locator object + */ +public void setLocation(Locator locator) { if (locator != null) { line = locator.getLineNumber(); column = locator.getColumnNumber(); systemId = locator.getSystemId(); } - -addProperties(attlist); } /** @@ -119,34 +123,44 @@ */ protected void addProperties(Attributes attlist) throws FOPException { FObj parentFO = findNearestAncestorFObj(); -PropertyList parentPropertyList = null; +PropertyList parentPL = null; + if (parentFO != null) { -parentPropertyList = parentFO.getPropertiesForNamespace(FO_URI); +parentPL = parentFO.getPropertiesForNamespace(FO_URI); } -propertyList = new PropertyList(this, parentPropertyList, FO_URI, -name); +propertyList = new PropertyList(this, parentPL, FO_URI, name); propertyList.addAttributesToList(attlist); -this.propMgr = makePropertyManager(propertyList); +propMgr = new PropertyManager(propertyList); setWritingMode(); } /** - * Set the name of this element. - * The prepends "fo:" to the name to indicate it is in the fo namespace. - * - * @param str the xml element name + * Return the PropertyManager object for this FO. PropertyManager + * tends to hold the traits for this FO, and is primarily used in layout. + * @return the property manager for this FO */ -public void setName(String str) { -name = "fo:" + str; +public PropertyManager getPropertyManager() { +return propMgr; } -public void setLocation(Locator locator) { -if (locator != null) { -line = locator.getLineNumber(); -column = locator.getColumnNumber(); -systemId = locator.getSyste
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr/table Body.java Cell.java Column.java Row.java TableLayoutManager.java
gmazza 2004/05/25 21:22:40 Modified:src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java BlockContainerLayoutManager.java BlockLayoutManager.java InlineStackingLayoutManager.java LineLayoutManager.java src/java/org/apache/fop/layoutmgr/list Item.java ListBlockLayoutManager.java ListItemLayoutManager.java src/java/org/apache/fop/layoutmgr/table Body.java Cell.java Column.java Row.java TableLayoutManager.java Log: Removed PropertyManager argument from initProperties(), as it is already available within its FObj object. Revision ChangesPath 1.14 +18 -21 xml-fop/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java Index: AbstractLayoutManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- AbstractLayoutManager.java18 May 2004 11:42:08 - 1.13 +++ AbstractLayoutManager.java26 May 2004 04:22:39 - 1.14 @@ -84,6 +84,24 @@ } /** + * This method provides a hook for a LayoutManager to initialize traits + * for the areas it will create, based on Properties set on its FO. + */ +public void initialize() { +if (fobj != null && bInited == false) { +initProperties(); +bInited = true; +} +} + +/** + * This method is called by initialize() to set any method variables + * based on Properties set on its FO. + */ +protected void initProperties() { +} + +/** * Set the user agent. * * @param ua the user agent @@ -223,27 +241,6 @@ // reset(null); // } } - - -/** - * This method provides a hook for a LayoutManager to initialize traits - * for the areas it will create, based on Properties set on its FO. - */ -public void initialize() { -if (fobj != null && bInited == false) { -initProperties(fobj.getPropertyManager()); -bInited = true; -} -} - -/** - * This method provides a hook for a LayoutManager to initialize traits - * for the areas it will create, based on Properties set on its FO. - */ -protected void initProperties(PropertyManager pm) { -//log.debug("AbstractLayoutManager.initProperties"); -} - /** * Tell whether this LayoutManager has handled all of its content. 1.19 +20 -20 xml-fop/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java Index: BlockContainerLayoutManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- BlockContainerLayoutManager.java 15 May 2004 21:51:59 - 1.18 +++ BlockContainerLayoutManager.java 26 May 2004 04:22:39 - 1.19 @@ -63,40 +63,40 @@ /** * Create a new block container layout manager. */ -public BlockContainerLayoutManager() { -} - -/** - * Create a new block container layout manager. - */ public BlockContainerLayoutManager(FObj node) { super(node); } -public void setOverflow(int of) { -overflow = of; -} - -protected void initProperties(PropertyManager pm) { -propManager = pm; +/** + * @see org.apache.fop.layoutmgr.AbstractLayoutManager#initProperties() + */ +protected void initProperties() { +propManager = fobj.getPropertyManager(); -abProps = pm.getAbsolutePositionProps(); +abProps = propManager.getAbsolutePositionProps(); if (abProps.absolutePosition == AbsolutePosition.ABSOLUTE) { Rectangle2D rect = new Rectangle2D.Double(abProps.left, abProps.top, abProps.right - abProps.left, abProps.bottom - abProps.top); relDims = new FODimension(0, 0); -absoluteCTM = CTM.getCTMandRelDims(pm.getAbsRefOrient(), -pm.getWritingMode(), rect, relDims); +absoluteCTM = CTM.getCTMandRelDims(propManager.getAbsRefOrient(), +propManager.getWritingMode(), rect, relDims); } -marginProps = pm.getMarginProps(); -borderProps = pm.getBorderAndPadding(); -height = pm.getPropertyList().get(PR_B
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr BlockContainerLayoutManager.java
gmazza 2004/05/25 22:09:00 Modified:src/java/org/apache/fop/fo PropertyManager.java src/java/org/apache/fop/layoutmgr BlockContainerLayoutManager.java Log: Removed getPropertyList() method from PropertyManager, as that method is already available on the FObj (which owns both the PropertyList and the PropertyManager.) Revision ChangesPath 1.27 +0 -8 xml-fop/src/java/org/apache/fop/fo/PropertyManager.java Index: PropertyManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertyManager.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- PropertyManager.java 23 May 2004 17:00:00 - 1.26 +++ PropertyManager.java 26 May 2004 05:08:59 - 1.27 @@ -70,14 +70,6 @@ } /** - * Returns the property list that is used for lookup. - * @return the property list - */ -public PropertyList getPropertyList() { -return propertyList; -} - -/** * Sets the Document object telling the property manager which fonts are * available. * @param foTreeControl foTreeControl implementation containing font 1.20 +2 -2 xml-fop/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java Index: BlockContainerLayoutManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- BlockContainerLayoutManager.java 26 May 2004 04:22:39 - 1.19 +++ BlockContainerLayoutManager.java 26 May 2004 05:09:00 - 1.20 @@ -85,9 +85,9 @@ marginProps = propManager.getMarginProps(); borderProps = propManager.getBorderAndPadding(); -height = propManager.getPropertyList().get( +height = fobj.getPropertyList().get( PR_BLOCK_PROGRESSION_DIMENSION | CP_OPTIMUM).getLength(); -width = propManager.getPropertyList().get( +width = fobj.getPropertyList().get( PR_INLINE_PROGRESSION_DIMENSION | CP_OPTIMUM).getLength(); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/apps Driver.java
gmazza 2004/06/07 19:28:37 Modified:src/java/org/apache/fop/apps Driver.java Log: Removed the new apps.Document from public access within Driver, at least until the former class' methods have been finalized and its API benefits over apps.Driver better declared. Revision ChangesPath 1.61 +1 -17 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.60 retrieving revision 1.61 diff -u -r1.60 -r1.61 --- Driver.java 22 May 2004 03:59:51 - 1.60 +++ Driver.java 8 Jun 2004 02:28:37 - 1.61 @@ -638,20 +638,4 @@ } } -/** - * Public accessor for setting the currentDocument to process. - * @param document the Document object that should be processed. - */ -public void setCurrentDocument(Document document) { -currentDocument = document; -} - -/** - * Public accessor for getting the currentDocument - * @return the currentDocument - */ -public Document getCurrentDocument() { - return currentDocument; -} - } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/apps Document.java
gmazza 2004/06/07 19:34:31 Modified:src/java/org/apache/fop/apps Document.java Log: public format() renamed to private formatPageSequence(). Revision ChangesPath 1.15 +4 -3 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- Document.java 18 May 2004 11:42:07 - 1.14 +++ Document.java 8 Jun 2004 02:34:31 - 1.15 @@ -120,7 +120,7 @@ public void foPageSequenceComplete (FOTreeEvent event) throws FOPException { PageSequence pageSeq = event.getPageSequence(); areaTree.addBookmarksToAreaTree(); -format(pageSeq, areaTree); +formatPageSequence(pageSeq, areaTree); } /** @@ -187,7 +187,8 @@ * @param areaTree the area tree to format this page sequence into * @throws FOPException if there is an error formatting the contents */ -public void format(PageSequence pageSeq, AreaTree areaTree) throws FOPException { +private void formatPageSequence(PageSequence pageSeq, AreaTree areaTree) +throws FOPException { Title title = null; if (pageSeq.getTitleFO() != null) { title = getTitleArea(pageSeq.getTitleFO()); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination LayoutMasterSet.java PageSequence.java
gmazza 2004/06/08 15:16:52 Modified:src/java/org/apache/fop/fo/pagination LayoutMasterSet.java PageSequence.java Log: Better error-handling messages added for incorrect LayoutMasterSets. Revision ChangesPath 1.8 +4 -0 xml-fop/src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java Index: LayoutMasterSet.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- LayoutMasterSet.java 22 May 2004 03:59:53 - 1.7 +++ LayoutMasterSet.java 8 Jun 2004 22:16:52 - 1.8 @@ -60,6 +60,10 @@ if (parent.getName().equals("fo:root")) { Root root = (Root)parent; +if (root.getLayoutMasterSet() != null) { +throw new FOPException("Multiple fo:layout-master-sets " + +"found; only one allowed per document"); +} root.setLayoutMasterSet(this); } else { throw new FOPException("fo:layout-master-set must be child of fo:root, not " 1.22 +6 -2 xml-fop/src/java/org/apache/fop/fo/pagination/PageSequence.java Index: PageSequence.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/PageSequence.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- PageSequence.java 22 May 2004 03:59:53 - 1.21 +++ PageSequence.java 8 Jun 2004 22:16:52 - 1.22 @@ -138,12 +138,16 @@ this.root = (Root)parent; // this.root.addPageSequence(this); } else { -throw new FOPException("page-sequence must be child of root, not " +throw new FOPException("Error: page-sequence must be child of root, not " + parent.getName()); } layoutMasterSet = root.getLayoutMasterSet(); - + +if (layoutMasterSet == null) { +throw new FOPException("Error: fo:layout-master-set undefined for this document"); +} + // best time to run some checks on LayoutMasterSet layoutMasterSet.checkRegionNames(); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination Title.java
gmazza 2004/06/11 10:18:51 Modified:src/java/org/apache/fop/apps Document.java Driver.java src/java/org/apache/fop/fo FOInputHandler.java FOTreeControl.java FOTreeHandler.java src/java/org/apache/fop/fo/pagination Title.java Removed: src/java/org/apache/fop/fo FOTreeEvent.java FOTreeListener.java Log: Consolidated formatPageSequence() into FOTreeHandler. Revision ChangesPath 1.16 +2 -120xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- Document.java 8 Jun 2004 02:34:31 - 1.15 +++ Document.java 11 Jun 2004 17:18:51 - 1.16 @@ -20,7 +20,6 @@ // Java import java.util.Map; -import java.io.IOException; import java.util.Set; import java.util.HashSet; @@ -28,20 +27,12 @@ import org.apache.fop.area.AreaTree; import org.apache.fop.area.AreaTreeControl; import org.apache.fop.area.AreaTreeModel; -import org.apache.fop.area.Title; import org.apache.fop.fo.FOInputHandler; import org.apache.fop.fo.FOTreeControl; -import org.apache.fop.fo.FOTreeEvent; -import org.apache.fop.fo.FOTreeListener; import org.apache.fop.fo.extensions.Bookmarks; -import org.apache.fop.fo.pagination.PageSequence; import org.apache.fop.fonts.FontInfo; import org.apache.fop.layoutmgr.AddLMVisitor; -import org.apache.fop.layoutmgr.ContentLayoutManager; -import org.apache.fop.layoutmgr.InlineStackingLayoutManager; -import org.apache.fop.layoutmgr.LMiter; -import org.apache.fop.layoutmgr.PageLayoutManager; import org.apache.commons.logging.Log; @@ -53,8 +44,7 @@ * Class storing information for the FOP Document being processed, and managing * the processing of it. */ -public class Document implements FOTreeControl, FOTreeListener, -AreaTreeControl { +public class Document implements FOTreeControl, AreaTreeControl { /** The parent Driver object */ private Driver driver; @@ -112,34 +102,6 @@ } /** - * Required by the FOTreeListener interface. It handles an - * FOTreeEvent that is fired when a PageSequence object has been completed. - * @param event the FOTreeEvent that was fired - * @throws FOPException for errors in building the PageSequence - */ -public void foPageSequenceComplete (FOTreeEvent event) throws FOPException { -PageSequence pageSeq = event.getPageSequence(); -areaTree.addBookmarksToAreaTree(); -formatPageSequence(pageSeq, areaTree); -} - -/** - * Required by the FOTreeListener interface. It handles an FOTreeEvent that - * is fired when the Document has been completely parsed. - * @param event the FOTreeEvent that was fired - * @throws SAXException for parsing errors - */ -public void foDocumentComplete (FOTreeEvent event) throws SAXException { -//processAreaTree(atModel); -try { -areaTree.endDocument(); -driver.getRenderer().stopRenderer(); -} catch (IOException ex) { -throw new SAXException(ex); -} -} - -/** * Get the area tree for this layout handler. * * @return the area tree for this document @@ -178,86 +140,6 @@ */ public FOInputHandler getFOInputHandler() { return foInputHandler; -} - -/** - * Runs the formatting of this page sequence into the given area tree - * - * @param pageSeq the PageSequence to be formatted - * @param areaTree the area tree to format this page sequence into - * @throws FOPException if there is an error formatting the contents - */ -private void formatPageSequence(PageSequence pageSeq, AreaTree areaTree) -throws FOPException { -Title title = null; -if (pageSeq.getTitleFO() != null) { -title = getTitleArea(pageSeq.getTitleFO()); -} -areaTree.startPageSequence(title); -// Make a new PageLayoutManager and a FlowLayoutManager -// Run the PLM in a thread -// Wait for them to finish. - -// If no main flow, nothing to layout! -if (pageSeq.getMainFlow() == null) { -return; -} - -// Initialize if already used? -//this.layoutMasterSet.resetPageMasters(); -if (pageSeq.getPageSequenceMaster() != null) { -pageSeq.getPageSequenceMaster().reset(); -} - -pageSeq.initPageNumber(); - -// This will layout pages and add them to the area
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr/table Row.java TableLayoutManager.java
gmazza 2004/06/12 11:03:47 Modified:src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java LayoutManager.java PageLayoutManager.java src/java/org/apache/fop/layoutmgr/list ListItemLayoutManager.java src/java/org/apache/fop/layoutmgr/table Row.java TableLayoutManager.java Log: Removed get/setUserAgent() initializations from the LayoutManagers. (Infrequently called, and already obtainable through AbstractLayoutManager's FObj member variable.) Revision ChangesPath 1.15 +0 -20 xml-fop/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java Index: AbstractLayoutManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- AbstractLayoutManager.java26 May 2004 04:22:39 - 1.14 +++ AbstractLayoutManager.java12 Jun 2004 18:03:47 - 1.15 @@ -68,7 +68,6 @@ */ public AbstractLayoutManager(FObj fo) { setFObj(fo); -setUserAgent(fo.getUserAgent()); } /** @@ -101,24 +100,6 @@ protected void initProperties() { } -/** - * Set the user agent. - * - * @param ua the user agent - */ -public void setUserAgent(FOUserAgent ua) { -userAgent = ua; -} - -/** - * Get the user agent. - * - * @see org.apache.fop.layoutmgr.LayoutManager#getUserAgent() - */ -public FOUserAgent getUserAgent() { -return userAgent; -} - public void setParent(LayoutManager lm) { this.parentLM = lm; } @@ -185,7 +166,6 @@ } while (childLMiter.hasNext()) { curChildLM = (LayoutManager) childLMiter.next(); -curChildLM.setUserAgent(getUserAgent()); curChildLM.setParent(this); curChildLM.initialize(); return curChildLM; 1.7 +0 -14 xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManager.java Index: LayoutManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManager.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- LayoutManager.java18 May 2004 11:42:08 - 1.6 +++ LayoutManager.java12 Jun 2004 18:03:47 - 1.7 @@ -43,20 +43,6 @@ void setFObj(FObj obj); /** - * Set the user agent. For resolving user agent values. - * - * @param ua the user agent - */ -void setUserAgent(FOUserAgent ua); - -/** - * Get the user agent. - * - * @return the user agent - */ -FOUserAgent getUserAgent(); - -/** * Set the parent layout manager. * The parent layout manager is required for adding areas. * 1.40 +0 -2 xml-fop/src/java/org/apache/fop/layoutmgr/PageLayoutManager.java Index: PageLayoutManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/PageLayoutManager.java,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- PageLayoutManager.java27 May 2004 10:52:33 - 1.39 +++ PageLayoutManager.java12 Jun 2004 18:03:47 - 1.40 @@ -465,7 +465,6 @@ log.error("no region viewport: shouldn't happen"); } StaticContentLayoutManager lm = getStaticContentLayoutManager(flow); -lm.setUserAgent(getUserAgent()); lm.initialize(); lm.setRegionReference(reg.getRegion()); lm.setParent(this); @@ -894,7 +893,6 @@ return lm; } lm = new StaticContentLayoutManager(); -lm.setUserAgent(getUserAgent()); lm.setFObj(sc); staticContentLMs.put(sc.getFlowName(), lm); return lm; 1.11 +0 -3 xml-fop/src/java/org/apache/fop/layoutmgr/list/ListItemLayoutManager.java Index: ListItemLayoutManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/list/ListItemLayoutManager.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ListItemLayoutManager.java26 May 2004 04:22:40 - 1.10 +++ ListItemLayoutManager.java12 Jun 2004 18:03:47 - 1.11 @@ -106,9 +106,6 @@ // currently active LM Item curLM; -label.setUserAgent(getUserAgent()); -body.setUs
cvs commit: xml-fop/src/java/org/apache/fop/fo FOTreeBuilder.java FObj.java
gmazza 2004/06/12 11:52:08 Modified:src/java/org/apache/fop/fo FOTreeBuilder.java FObj.java Log: More solid checking to ensure first node encountered is an fo:root FO. Revision ChangesPath 1.28 +8 -6 xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java Index: FOTreeBuilder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- FOTreeBuilder.java22 May 2004 03:59:51 - 1.27 +++ FOTreeBuilder.java12 Jun 2004 18:52:08 - 1.28 @@ -224,7 +224,14 @@ /* the node found in the FO document */ FONode foNode; -/* the maker for the formatting object started */ +// Check to ensure first node encountered is an fo:root +if (rootFObj == null) { +if (!namespaceURI.equals(FObj.FO_URI) || !localName.equals("root")) { +throw new SAXException(new FOPException("Error: Root element" + +" must be fo:root formatting object")); +} +} + ElementMapping.Maker fobjMaker = findFOMaker(namespaceURI, localName); // System.out.println("found a " + fobjMaker.toString()); @@ -237,11 +244,6 @@ } if (rootFObj == null) { -if (!foNode.getName().equals("fo:root")) { -throw new SAXException(new FOPException("Root element must" -+ " be fo:root, not " -+ foNode.getName())); -} rootFObj = (Root) foNode; rootFObj.setFOTreeControl(foTreeControl); } else { 1.41 +1 -1 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- FObj.java 23 May 2004 17:00:00 - 1.40 +++ FObj.java 12 Jun 2004 18:52:08 - 1.41 @@ -36,7 +36,7 @@ * Base class for representation of formatting objects and their processing. */ public class FObj extends FONode implements Constants { -private static final String FO_URI = "http://www.w3.org/1999/XSL/Format";; +public static final String FO_URI = "http://www.w3.org/1999/XSL/Format";; public static PropertyMaker[] propertyListTable = null; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination ColorProfile.java ConditionalPageMasterReference.java Declarations.java Flow.java LayoutMasterSet.java PageMasterReference.java PageNumberGenerator.java PageSequence.java PageSequenceMaster.java RegionAfter.java RegionBefore.java RegionBody.java RegionEnd.java RegionStart.java RepeatablePageMasterAlternatives.java RepeatablePageMasterReference.java Root.java SimplePageMaster.java SinglePageMasterReference.java StaticContent.java Title.java
gmazza 2004/06/12 16:18:53 Modified:src/java/org/apache/fop/fo FONode.java FOTreeBuilder.java FObj.java src/java/org/apache/fop/fo/extensions Label.java Outline.java src/java/org/apache/fop/fo/flow BasicLink.java BidiOverride.java Block.java BlockContainer.java Character.java ExternalGraphic.java Float.java Footnote.java FootnoteBody.java InitialPropertySet.java Inline.java InlineContainer.java InstreamForeignObject.java Leader.java ListBlock.java ListItem.java ListItemBody.java ListItemLabel.java Marker.java MultiCase.java MultiProperties.java MultiPropertySet.java MultiSwitch.java MultiToggle.java PageNumber.java PageNumberCitation.java RetrieveMarker.java Table.java TableAndCaption.java TableBody.java TableCaption.java TableCell.java TableColumn.java TableFooter.java TableHeader.java TableRow.java Wrapper.java src/java/org/apache/fop/fo/pagination ColorProfile.java ConditionalPageMasterReference.java Declarations.java Flow.java LayoutMasterSet.java PageMasterReference.java PageNumberGenerator.java PageSequence.java PageSequenceMaster.java RegionAfter.java RegionBefore.java RegionBody.java RegionEnd.java RegionStart.java RepeatablePageMasterAlternatives.java RepeatablePageMasterReference.java Root.java SimplePageMaster.java SinglePageMasterReference.java StaticContent.java Title.java Log: Created a validateChildNode() in FONode for better syntax checking in the fo document: e.g., preventing two fo:layout-master-set's from occurring within an fo:root, requiring fo:page-sequence to follow the fo:l-m-s (and fo:declarations, if present). Currently just validates fo:root's children--validateChildNode() needs to be overridden in other FObj subclasses to do the same for other formatting objects. Comments most welcome. Revision ChangesPath 1.19 +11 -0 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- FONode.java 22 May 2004 03:59:51 - 1.18 +++ FONode.java 12 Jun 2004 23:18:52 - 1.19 @@ -90,6 +90,17 @@ } /** + * Checks to make sure, during SAX processing of input document, that the + * incoming node is valid for the this (parent) node (e.g., checking to + * see that fo:table is not an immediate child of fo:root) + * called within FObj constructor + * @param namespaceURI namespace of incoming node + * @param localName (e.g. "table" for "fo:table") + * @throws IllegalArgumentException if incoming node not valid for parent + */ +protected void validateChildNode(String namespaceURI, String localName) {} + +/** * Adds characters (does nothing here) * @param data text * @param start start position 1.29 +11 -4 xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java Index: FOTreeBuilder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- FOTreeBuilder.java12 Jun 2004 18:52:08 - 1.28 +++ FOTreeBuilder.java12 Jun 2004 23:18:52 - 1.29 @@ -227,18 +227,25 @@ // Check to ensure first node encountered is an fo:root if (rootFObj == null) { if (!namespaceURI.equals(FObj.FO_URI) || !localName.equals("root")) { -throw new SAXException(new FOPException("Error: Root element" + -" must be fo:root formatting object")); +throw new SAXException(new IllegalArgumentException( +"Error: First element must be fo:root formatting object")); +} +} else { // check that incoming node is valid for currentFObj +try { +currentFObj.validateChildNode(namespaceURI, localName); +} catch (Ill
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java ContentLayoutManager.java LMiter.java LayoutManager.java PageLayoutManager.java
gmazza 2004/06/12 18:11:49 Modified:src/java/org/apache/fop/apps Document.java src/java/org/apache/fop/fo FOTreeHandler.java src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java ContentLayoutManager.java LMiter.java LayoutManager.java PageLayoutManager.java Log: Moved AddLMVisitor accessors into FOTreeHandler. Revision ChangesPath 1.17 +1 -28 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- Document.java 11 Jun 2004 17:18:51 - 1.16 +++ Document.java 13 Jun 2004 01:11:49 - 1.17 @@ -32,8 +32,6 @@ import org.apache.fop.fo.FOTreeControl; import org.apache.fop.fo.extensions.Bookmarks; import org.apache.fop.fonts.FontInfo; -import org.apache.fop.layoutmgr.AddLMVisitor; - import org.apache.commons.logging.Log; @@ -60,10 +58,6 @@ private Bookmarks bookmarks = null; -/** Useful only for allowing subclasses of AddLMVisitor to be set by those - extending FOP **/ - private AddLMVisitor addLMVisitor = null; - /** * The current set of id's in the FO tree. * This is used so we know if the FO tree contains duplicates. @@ -142,25 +136,4 @@ return foInputHandler; } -/** - * Public accessor to set the AddLMVisitor object that should be used. - * This allows subclasses of AddLMVisitor to be used, which can be useful - * for extensions to the FO Tree. - * @param addLMVisitor the AddLMVisitor object that should be used. - */ -public void setAddLMVisitor(AddLMVisitor addLMVisitor) { -this.addLMVisitor = addLMVisitor; -} - -/** - * Public accessor to get the AddLMVisitor object that should be used. - * @return the AddLMVisitor object that should be used. - */ -public AddLMVisitor getAddLMVisitor() { -if (this.addLMVisitor == null) { -this.addLMVisitor = new AddLMVisitor(); -} -return this.addLMVisitor; -} - } 1.17 +28 -2 xml-fop/src/java/org/apache/fop/fo/FOTreeHandler.java Index: FOTreeHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeHandler.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- FOTreeHandler.java11 Jun 2004 17:18:51 - 1.16 +++ FOTreeHandler.java13 Jun 2004 01:11:49 - 1.17 @@ -50,6 +50,7 @@ import org.apache.fop.fo.flow.TableRow; import org.apache.fop.fo.pagination.Flow; import org.apache.fop.fo.pagination.PageSequence; +import org.apache.fop.layoutmgr.AddLMVisitor; import org.apache.fop.layoutmgr.ContentLayoutManager; import org.apache.fop.layoutmgr.InlineStackingLayoutManager; import org.apache.fop.layoutmgr.LMiter; @@ -90,6 +91,10 @@ */ private long startTime; +/** Useful only for allowing subclasses of AddLMVisitor to be set by those + extending FOP **/ +private AddLMVisitor addLMVisitor = null; + /** * Main constructor * @param foTreeControl the FOTreeControl implementation that governs this @@ -504,7 +509,7 @@ // This will layout pages and add them to the area tree PageLayoutManager pageLM = new PageLayoutManager(areaTree, pageSeq, -getDocument()); +this); pageLM.setPageCounting(pageSeq.getCurrentPageNumber(), pageSeq.getPageNumberGenerator()); @@ -550,6 +555,27 @@ clm.fillArea(lm); return title; +} + +/** + * Public accessor to set the AddLMVisitor object that should be used. + * This allows subclasses of AddLMVisitor to be used, which can be useful + * for extensions to the FO Tree. + * @param addLMVisitor the AddLMVisitor object that should be used. + */ +public void setAddLMVisitor(AddLMVisitor addLMVisitor) { +this.addLMVisitor = addLMVisitor; +} + +/** + * Public accessor to get the AddLMVisitor object that should be used. + * @return the AddLMVisitor object that should be used. + */ +public AddLMVisitor getAddLMVisitor() { +if (this.addLMVisitor == null) { +this.addLMVisitor = new AddLMVisitor(); +} +return this.addLMVisitor; } /** 1.16 +4 -4 xml-fop/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java Index: AbstractLayoutManager
cvs commit: xml-fop/src/java/org/apache/fop/apps Driver.java
gmazza 2004/06/12 18:21:17 Modified:src/java/org/apache/fop/apps Driver.java Log: Removed unneeded getCurrentDocument() again from Driver. Revision ChangesPath 1.63 +1 -9 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.62 retrieving revision 1.63 diff -u -r1.62 -r1.63 --- Driver.java 11 Jun 2004 17:18:51 - 1.62 +++ Driver.java 13 Jun 2004 01:21:17 - 1.63 @@ -636,12 +636,4 @@ } } -/** - * Public accessor for getting the document used by this generation - * @return the current Document object - */ - public Document getCurrentDocument() { -return currentDocument; - } - } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination Declarations.java Root.java
gmazza 2004/06/13 12:58:58 Modified:src/java/org/apache/fop/apps Document.java src/java/org/apache/fop/area AreaTree.java src/java/org/apache/fop/fo FONode.java FOTreeHandler.java src/java/org/apache/fop/fo/pagination Declarations.java Root.java Removed: src/java/org/apache/fop/area AreaTreeControl.java Log: 1.) App now returns an error if no page-sequence declared within fo:root. 2.) Standardized node names via a new static FONode.getNodeName() method 3.) Declarations object now tied to Root object, will no longer return NPE if empty (bug fixed). 4.) AreaTreeControl removed in favor of direct connection between Document and the Area Tree. Revision ChangesPath 1.18 +2 -3 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- Document.java 13 Jun 2004 01:11:49 - 1.17 +++ Document.java 13 Jun 2004 19:58:58 - 1.18 @@ -25,7 +25,6 @@ // FOP import org.apache.fop.area.AreaTree; -import org.apache.fop.area.AreaTreeControl; import org.apache.fop.area.AreaTreeModel; import org.apache.fop.fo.FOInputHandler; @@ -42,7 +41,7 @@ * Class storing information for the FOP Document being processed, and managing * the processing of it. */ -public class Document implements FOTreeControl, AreaTreeControl { +public class Document implements FOTreeControl { /** The parent Driver object */ private Driver driver; 1.10 +11 -10xml-fop/src/java/org/apache/fop/area/AreaTree.java Index: AreaTree.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTree.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- AreaTree.java 22 Apr 2004 21:38:39 - 1.9 +++ AreaTree.java 13 Jun 2004 19:58:58 - 1.10 @@ -18,6 +18,7 @@ package org.apache.fop.area; +import org.apache.fop.apps.Document; import org.apache.fop.area.extensions.BookmarkData; import org.apache.fop.fo.extensions.Outline; @@ -50,7 +51,7 @@ // allows for different models to deal with adding/rendering // in different situations private AreaTreeModel model; -private AreaTreeControl atControl; +private Document document; // hashmap of arraylists containing pages with id area private Map idLocations = new HashMap(); @@ -60,10 +61,10 @@ /** * Constructor. - * @param atControl the AreaTreeControl object controlling this AreaTree + * @param document the apps.Document object controlling this AreaTree */ -public AreaTree (AreaTreeControl atControl) { -this.atControl = atControl; +public AreaTree (Document document) { +this.document = document; } @@ -219,13 +220,13 @@ * Create the bookmark data in the area tree. */ public void addBookmarksToAreaTree() { -if (atControl.getBookmarks() == null) { +if (document.getBookmarks() == null) { return; } -atControl.getDriver().getLogger().debug("adding bookmarks to area tree"); +document.getDriver().getLogger().debug("adding bookmarks to area tree"); BookmarkData data = new BookmarkData(); -for (int count = 0; count < atControl.getBookmarks().getOutlines().size(); count++) { -Outline out = (Outline)(atControl.getBookmarks().getOutlines()).get(count); +for (int count = 0; count < document.getBookmarks().getOutlines().size(); count++) { +Outline out = (Outline)(document.getBookmarks().getOutlines()).get(count); data.addSubData(createBookmarkData(out)); } addTreeExtension(data); @@ -251,8 +252,8 @@ return data; } -public AreaTreeControl getAreaTreeControl() { -return atControl; +public Document getDocument() { +return document; } } 1.20 +11 -0 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- FONode.java 12 Jun 2004 23:18:52 - 1.19 +++ FONode.java 13 Jun 2004 19:58:58 - 1.20 @@ -195,5 +195,16 @@ fotv.serveFONode(this); } +/** + * Helper function t
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination Root.java
gmazza 2004/06/14 17:30:43 Modified:src/java/org/apache/fop/apps Document.java src/java/org/apache/fop/area AreaTree.java src/java/org/apache/fop/fo FOElementMapping.java FONode.java FOTreeBuilder.java FOTreeControl.java FOTreeHandler.java FObj.java src/java/org/apache/fop/fo/extensions Bookmarks.java ExtensionElementMapping.java src/java/org/apache/fop/fo/extensions/svg BatikExtensionElementMapping.java SVGElementMapping.java src/java/org/apache/fop/fo/pagination Root.java Log: Standardized error messages, brought fox:bookmarks under parent fo:root. Revision ChangesPath 1.19 +3 -23 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- Document.java 13 Jun 2004 19:58:58 - 1.18 +++ Document.java 15 Jun 2004 00:30:43 - 1.19 @@ -29,7 +29,6 @@ import org.apache.fop.fo.FOInputHandler; import org.apache.fop.fo.FOTreeControl; -import org.apache.fop.fo.extensions.Bookmarks; import org.apache.fop.fonts.FontInfo; import org.apache.commons.logging.Log; @@ -55,8 +54,6 @@ /** The AreaTreeModel for the PageSequence being rendered. */ public AreaTreeModel atModel; -private Bookmarks bookmarks = null; - /** * The current set of id's in the FO tree. * This is used so we know if the FO tree contains duplicates. @@ -64,8 +61,8 @@ private Set idReferences = new HashSet(); /** - * Structure handler used to notify structure events - * such as start end element. + * Structure handler used to notify structure + * events such as start end element. */ public FOInputHandler foInputHandler; @@ -101,23 +98,6 @@ */ public AreaTree getAreaTree() { return areaTree; -} - -/** - * Set the Bookmarks object for this Document - * @param bookmarks the Bookmarks object containing the bookmarks for this - * Document - */ -public void setBookmarks(Bookmarks bookmarks) { -this.bookmarks = bookmarks; -} - -/** - * Public accessor for the Bookmarks for this Document - * @return the Bookmarks for this Document - */ -public Bookmarks getBookmarks() { -return bookmarks; } /** 1.11 +6 -4 xml-fop/src/java/org/apache/fop/area/AreaTree.java Index: AreaTree.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTree.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- AreaTree.java 13 Jun 2004 19:58:58 - 1.10 +++ AreaTree.java 15 Jun 2004 00:30:43 - 1.11 @@ -21,6 +21,7 @@ import org.apache.fop.apps.Document; import org.apache.fop.area.extensions.BookmarkData; import org.apache.fop.fo.extensions.Outline; +import org.apache.fop.fo.extensions.Bookmarks; import java.util.ArrayList; import java.util.List; @@ -219,14 +220,15 @@ /** * Create the bookmark data in the area tree. */ -public void addBookmarksToAreaTree() { -if (document.getBookmarks() == null) { +public void addBookmarksToAreaTree(Bookmarks bookmarks) { +if (bookmarks == null) { return; } + document.getDriver().getLogger().debug("adding bookmarks to area tree"); BookmarkData data = new BookmarkData(); -for (int count = 0; count < document.getBookmarks().getOutlines().size(); count++) { -Outline out = (Outline)(document.getBookmarks().getOutlines()).get(count); +for (int count = 0; count < bookmarks.getOutlines().size(); count++) { +Outline out = (Outline)(bookmarks.getOutlines()).get(count); data.addSubData(createBookmarkData(out)); } addTreeExtension(data); 1.8 +2 -1 xml-fop/src/java/org/apache/fop/fo/FOElementMapping.java Index: FOElementMapping.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOElementMapping.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- FOElementMapping.java 19 May 2004 22:37:53 - 1.7 +++ FOElementMapping.java 15 Jun 2004 00:30:43 - 1.8 @@ -25,12 +25,13 @@ * Element mapping class for all XSL-FO elements.
cvs commit: xml-fop/src/java/org/apache/fop/render/xml XMLRenderer.java
gmazza 2004/06/14 23:26:57 Modified:src/java/org/apache/fop/apps Document.java Driver.java src/java/org/apache/fop/fo FOInputHandler.java FONode.java FOTreeBuilder.java FOTreeHandler.java FObj.java FObjMixed.java PropertyManager.java src/java/org/apache/fop/fo/flow BasicLink.java Block.java ExternalGraphic.java Footnote.java FootnoteBody.java Inline.java Leader.java ListBlock.java ListItem.java ListItemLabel.java PageNumber.java PageNumberCitation.java Table.java TableBody.java TableCell.java TableColumn.java TableRow.java src/java/org/apache/fop/fo/pagination Declarations.java Flow.java PageSequence.java Root.java Title.java src/java/org/apache/fop/layoutmgr BlockLayoutManager.java src/java/org/apache/fop/render/awt AWTRenderer.java src/java/org/apache/fop/render/ps PSRenderer.java src/java/org/apache/fop/render/svg SVGRenderer.java src/java/org/apache/fop/render/xml XMLRenderer.java Removed: src/java/org/apache/fop/fo FOTreeControl.java Log: 1.) Added restriction to fo:declarations that fo:color-profile is the only XSL namespace child element allowed. 2.) Switched from fo.FOTreeControl to apps.Document throughout app, to better clarify that it is the apps.Document object being accessed/used. Revision ChangesPath 1.20 +2 -3 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- Document.java 15 Jun 2004 00:30:43 - 1.19 +++ Document.java 15 Jun 2004 06:26:55 - 1.20 @@ -28,7 +28,6 @@ import org.apache.fop.area.AreaTreeModel; import org.apache.fop.fo.FOInputHandler; -import org.apache.fop.fo.FOTreeControl; import org.apache.fop.fonts.FontInfo; import org.apache.commons.logging.Log; @@ -40,7 +39,7 @@ * Class storing information for the FOP Document being processed, and managing * the processing of it. */ -public class Document implements FOTreeControl { +public class Document { /** The parent Driver object */ private Driver driver; 1.64 +2 -2 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.63 retrieving revision 1.64 diff -u -r1.63 -r1.64 --- Driver.java 13 Jun 2004 01:21:17 - 1.63 +++ Driver.java 15 Jun 2004 06:26:55 - 1.64 @@ -511,7 +511,7 @@ foInputHandler.setLogger(getLogger()); treeBuilder.setFOInputHandler(foInputHandler); -treeBuilder.setFOTreeControl(currentDocument); +treeBuilder.setDocument(currentDocument); return new ProxyContentHandler(treeBuilder) { 1.17 +3 -3 xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java Index: FOInputHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- FOInputHandler.java 11 Jun 2004 17:18:51 - 1.16 +++ FOInputHandler.java 15 Jun 2004 06:26:55 - 1.17 @@ -94,8 +94,8 @@ } /** - * Returns the FOTreeControl object associated with this FOInputHandler. - * @return the FOTreeControl object + * Returns the Document object associated with this FOInputHandler. + * @return the Document object */ public Document getDocument() { return doc; 1.22 +6 -5 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- FONode.java 15 Jun 2004 00:30:43 - 1.21 +++ FONode.java 15 Jun 2004 06:26:55 - 1.22 @@ -28,9 +28,10 @@ import org.apache.commons.logging.Log; // FOP +import org.apache.fop.apps.Document; import org.apache.fop.apps.FOPException; -import org.apache.fop.util.CharUtilities; import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.util.CharUtilities; import
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr BlockLayoutManager.java
gmazza 2004/06/15 17:27:27 Modified:src/java/org/apache/fop/apps Document.java src/java/org/apache/fop/fo FOInputHandler.java FONode.java FOTreeBuilder.java FObj.java FObjMixed.java src/java/org/apache/fop/fo/flow BasicLink.java Block.java ExternalGraphic.java Footnote.java FootnoteBody.java Inline.java Leader.java ListBlock.java ListItem.java ListItemLabel.java PageNumber.java PageNumberCitation.java Table.java TableBody.java TableCell.java TableColumn.java TableRow.java src/java/org/apache/fop/fo/pagination ColorProfile.java Declarations.java Flow.java PageSequence.java Root.java Title.java src/java/org/apache/fop/layoutmgr BlockLayoutManager.java Log: 1.) Check for fo:color-profile made to ensure no child elements during processing. 2.) Error messages for bad fo: files now give locator (line/col. #) information. 3.) Parent of the fo:root (FO Tree) "lowered" from apps.Document to fo.FOInputHandler; IDReferences moved from former to latter. Revision ChangesPath 1.21 +1 -23 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- Document.java 15 Jun 2004 06:26:55 - 1.20 +++ Document.java 16 Jun 2004 00:27:26 - 1.21 @@ -18,20 +18,12 @@ package org.apache.fop.apps; -// Java -import java.util.Map; -import java.util.Set; -import java.util.HashSet; - // FOP import org.apache.fop.area.AreaTree; import org.apache.fop.area.AreaTreeModel; - import org.apache.fop.fo.FOInputHandler; import org.apache.fop.fonts.FontInfo; -import org.apache.commons.logging.Log; - // SAX import org.xml.sax.SAXException; @@ -54,12 +46,6 @@ public AreaTreeModel atModel; /** - * The current set of id's in the FO tree. - * This is used so we know if the FO tree contains duplicates. - */ -private Set idReferences = new HashSet(); - -/** * Structure handler used to notify structure * events such as start end element. */ @@ -97,14 +83,6 @@ */ public AreaTree getAreaTree() { return areaTree; -} - -/** - * Retuns the set of ID references. - * @return the ID references - */ -public Set getIDReferences() { -return idReferences; } /** 1.18 +19 -1 xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java Index: FOInputHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- FOInputHandler.java 15 Jun 2004 06:26:55 - 1.17 +++ FOInputHandler.java 16 Jun 2004 00:27:26 - 1.18 @@ -18,6 +18,10 @@ package org.apache.fop.fo; +// Java +import java.util.HashSet; +import java.util.Set; + // FOP import org.apache.fop.apps.Document; import org.apache.fop.apps.Driver; @@ -69,12 +73,26 @@ protected Log logger = null; /** + * The current set of id's in the FO tree. + * This is used so we know if the FO tree contains duplicates. + */ +private Set idReferences = new HashSet(); + +/** * Main constructor * @param document the apps.Document implementation that is controlling * the FO Tree being built */ public FOInputHandler(Document document) { doc = document; +} + +/** + * Retuns the set of ID references. + * @return the ID references + */ +public Set getIDReferences() { +return idReferences; } /** 1.23 +23 -15xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- FONode.java 15 Jun 2004 06:26:55 - 1.22 +++ FONode.java 16 Jun 2004 00:27:26 - 1.23 @@ -28,7 +28,6 @@ import org.apache.commons.logging.Log; // FOP -import org.apache.fop.apps.Document; import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.util.CharUtilities; @@ -60,7 +59,7
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination ColorProfile.java Declarations.java Flow.java LayoutMasterSet.java PageSequence.java RegionBA.java RegionBASE.java Root.java
gmazza 2004/06/16 16:40:58 Modified:src/java/org/apache/fop/fo FONode.java FOTreeBuilder.java FObj.java PropertyList.java XMLObj.java src/java/org/apache/fop/fo/expr PPColWidthFunction.java src/java/org/apache/fop/fo/extensions Bookmarks.java src/java/org/apache/fop/fo/flow BasicLink.java Block.java Footnote.java FootnoteBody.java Inline.java TableBody.java TableCell.java src/java/org/apache/fop/fo/pagination ColorProfile.java Declarations.java Flow.java LayoutMasterSet.java PageSequence.java RegionBA.java RegionBASE.java Root.java Log: 1. Valid node checking for LayoutMasterSet done. 2. Additional error message provided for missing required child elements of a node. 3. Removal of elementName from property list; redundant (retrievable via getFObj.getName()). Adding getName() to FObj so the element so fObj.getName() works. (Vielen Dank, Simon!) 4. Moving locator information from FObj to FONode so non-XSL NS elements will also have this information. Revision ChangesPath 1.24 +50 -1 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- FONode.java 16 Jun 2004 00:27:26 - 1.23 +++ FONode.java 16 Jun 2004 23:40:58 - 1.24 @@ -46,6 +46,15 @@ /** Name of the node */ protected String name; +/** Marks input file containing this object **/ +public String systemId; + +/** Marks line number of this object in the input file **/ +public int line; + +/** Marks column number of this object in the input file **/ +public int column; + /** * Main constructor. * @param parent parent of this node @@ -55,6 +64,18 @@ } /** + * Set the location information for this element + * @param locator the org.xml.sax.Locator object + */ +public void setLocation(Locator locator) { +if (locator != null) { +line = locator.getLineNumber(); +column = locator.getColumnNumber(); +systemId = locator.getSystemId(); +} +} + +/** * Returns the user agent for the node. * @return FOUserAgent */ @@ -80,6 +101,7 @@ * @throws FOPException for errors or inconsistencies in the attributes */ public void processNode(String elementName, Locator locator, Attributes attlist) throws FOPException { +System.out.println("name = " + elementName); this.name = elementName; } @@ -223,6 +245,7 @@ /** * Helper function to standardize "too many" error exceptions * (e.g., two fo:declarations within fo:root) + * @param loc org.xml.sax.Locator object of the error (*not* parent node) * @param offendingNode incoming node that would cause a duplication. */ protected void tooManyNodesError(Locator loc, String offendingNode) { @@ -234,6 +257,7 @@ /** * Helper function to standardize "out of order" exceptions * (e.g., fo:layout-master-set appearing after fo:page-sequence) + * @param loc org.xml.sax.Locator object of the error (*not* parent node) * @param tooLateNode string name of node that should be earlier in document * @param tooEarlyNode string name of node that should be later in document */ @@ -247,22 +271,47 @@ /** * Helper function to return "invalid child" exceptions * (e.g., fo:block appearing immediately under fo:root) + * @param loc org.xml.sax.Locator object of the error (*not* parent node) * @param nsURI namespace URI of incoming invalid node * @param lName local name (i.e., no prefix) of incoming node */ protected void invalidChildError(Locator loc, String nsURI, String lName) { throw new IllegalArgumentException( errorText(loc) + getNodeString(nsURI, lName) + -" is not valid child element of " + getName() + "."); +" is not a valid child element of " + getName() + "."); } /** + * Helper function to return missing child element errors + * (e.g., fo:layout-master-set not having any page-master child element) + * @param contentModel The XSL Content Model for the fo: object. + * or a similar description indicating child elements needed. + */ +protected void missingChildElementError(String contentModel) { +
cvs commit: xml-fop/src/java/org/apache/fop/tools AreaTreeBuilder.java
gmazza 2004/06/16 21:46:08 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/area AreaTree.java src/java/org/apache/fop/tools AreaTreeBuilder.java Log: No-constructor loader created for Area Tree. Revision ChangesPath 1.65 +2 -2 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- Driver.java 15 Jun 2004 06:26:55 - 1.64 +++ Driver.java 17 Jun 2004 04:46:08 - 1.65 @@ -490,7 +490,7 @@ "Renderer not set when using standard foInputHandler"); } foInputHandler = new FOTreeHandler(currentDocument, true); -currentDocument.areaTree = new AreaTree(currentDocument); +currentDocument.areaTree = new AreaTree(); currentDocument.atModel = new RenderPagesModel(renderer); //this.atModel = new CachedRenderPagesModel(renderer); currentDocument.areaTree.setTreeModel(currentDocument.atModel); 1.12 +8 -10 xml-fop/src/java/org/apache/fop/area/AreaTree.java Index: AreaTree.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTree.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- AreaTree.java 15 Jun 2004 00:30:43 - 1.11 +++ AreaTree.java 17 Jun 2004 04:46:08 - 1.12 @@ -18,7 +18,6 @@ package org.apache.fop.area; -import org.apache.fop.apps.Document; import org.apache.fop.area.extensions.BookmarkData; import org.apache.fop.fo.extensions.Outline; import org.apache.fop.fo.extensions.Bookmarks; @@ -31,6 +30,10 @@ import java.util.HashSet; import java.util.Iterator; +// Commons-Logging +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * Area tree for formatting objects. * @@ -52,7 +55,6 @@ // allows for different models to deal with adding/rendering // in different situations private AreaTreeModel model; -private Document document; // hashmap of arraylists containing pages with id area private Map idLocations = new HashMap(); @@ -60,12 +62,12 @@ private Map resolve = new HashMap(); private List treeExtensions = new ArrayList(); +private static Log log = LogFactory.getLog(AreaTree.class); + /** * Constructor. - * @param document the apps.Document object controlling this AreaTree */ -public AreaTree (Document document) { -this.document = document; +public AreaTree () { } @@ -225,7 +227,7 @@ return; } -document.getDriver().getLogger().debug("adding bookmarks to area tree"); +log.debug("adding bookmarks to area tree"); BookmarkData data = new BookmarkData(); for (int count = 0; count < bookmarks.getOutlines().size(); count++) { Outline out = (Outline)(bookmarks.getOutlines()).get(count); @@ -252,10 +254,6 @@ data.addSubData(createBookmarkData(out)); } return data; -} - -public Document getDocument() { -return document; } } 1.17 +1 -1 xml-fop/src/java/org/apache/fop/tools/AreaTreeBuilder.java Index: AreaTreeBuilder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/tools/AreaTreeBuilder.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- AreaTreeBuilder.java 12 May 2004 23:19:53 - 1.16 +++ AreaTreeBuilder.java 17 Jun 2004 04:46:08 - 1.17 @@ -271,7 +271,7 @@ Element root = null; root = doc.getDocumentElement(); -areaTree = new AreaTree(document); +areaTree = new AreaTree(); areaTree.setTreeModel(model); readAreaTree(root); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/apps Driver.java
gmazza 2004/06/16 21:53:59 Modified:src/java/org/apache/fop/apps Driver.java Log: Correction to text message of previous patch: No-parameter constructor created for AreaTree. Revision ChangesPath 1.66 +2 -1 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.65 retrieving revision 1.66 diff -u -r1.65 -r1.66 --- Driver.java 17 Jun 2004 04:46:08 - 1.65 +++ Driver.java 17 Jun 2004 04:53:59 - 1.66 @@ -489,6 +489,7 @@ throw new IllegalStateException( "Renderer not set when using standard foInputHandler"); } + foInputHandler = new FOTreeHandler(currentDocument, true); currentDocument.areaTree = new AreaTree(); currentDocument.atModel = new RenderPagesModel(renderer); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination LayoutMasterSet.java PageSequenceMaster.java
gmazza 2004/06/17 00:02:14 Modified:src/java/org/apache/fop/apps Document.java Driver.java src/java/org/apache/fop/fo FOInputHandler.java FOTreeHandler.java src/java/org/apache/fop/fo/pagination LayoutMasterSet.java PageSequenceMaster.java Log: 1. Child element validity checking added for fo:page-sequence-master. 2. AreaTree object moved from Document/Driver to FOTreeHandler, as it is specific to this subclass of FOInputHandler only (RTFHandler and MIFHandler don't use area trees). Revision ChangesPath 1.22 +8 -12 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- Document.java 16 Jun 2004 00:27:26 - 1.21 +++ Document.java 17 Jun 2004 07:02:13 - 1.22 @@ -19,10 +19,9 @@ package org.apache.fop.apps; // FOP -import org.apache.fop.area.AreaTree; -import org.apache.fop.area.AreaTreeModel; import org.apache.fop.fo.FOInputHandler; import org.apache.fop.fonts.FontInfo; +import org.apache.fop.render.Renderer; // SAX import org.xml.sax.SAXException; @@ -39,11 +38,8 @@ /** The Font information relevant for this document */ private FontInfo fontInfo; -/** The current AreaTree for the PageSequence being rendered. */ -public AreaTree areaTree; - -/** The AreaTreeModel for the PageSequence being rendered. */ -public AreaTreeModel atModel; +/** The Renderer being used for this document */ +protected Renderer renderer; /** * Structure handler used to notify structure @@ -77,12 +73,12 @@ } /** - * Get the area tree for this layout handler. + * Get the renderer for this document * - * @return the area tree for this document + * @return the renderer for this document */ -public AreaTree getAreaTree() { -return areaTree; +public Renderer getRenderer() { +return renderer; } /** 1.67 +3 -8 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.66 retrieving revision 1.67 diff -u -r1.66 -r1.67 --- Driver.java 17 Jun 2004 04:53:59 - 1.66 +++ Driver.java 17 Jun 2004 07:02:13 - 1.67 @@ -19,9 +19,6 @@ package org.apache.fop.apps; // FOP -import org.apache.fop.area.AreaTree; -import org.apache.fop.area.RenderPagesModel; - import org.apache.fop.fo.ElementMapping; import org.apache.fop.fo.FOTreeBuilder; @@ -490,11 +487,9 @@ "Renderer not set when using standard foInputHandler"); } +currentDocument.renderer = renderer; foInputHandler = new FOTreeHandler(currentDocument, true); -currentDocument.areaTree = new AreaTree(); -currentDocument.atModel = new RenderPagesModel(renderer); -//this.atModel = new CachedRenderPagesModel(renderer); -currentDocument.areaTree.setTreeModel(currentDocument.atModel); + try { renderer.setupFontInfo(currentDocument.getFontInfo()); // check that the "any,normal,400" font exists 1.19 +1 -8 xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java Index: FOInputHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- FOInputHandler.java 16 Jun 2004 00:27:26 - 1.18 +++ FOInputHandler.java 17 Jun 2004 07:02:13 - 1.19 @@ -119,13 +119,6 @@ return doc; } -/** - * @return the current Area Tree object - */ - public AreaTree getAreaTree() { -return doc.getAreaTree(); - } - /** * Returns the Driver object associated with this FOInputHandler. * @return the Driver object 1.21 +18 -1 xml-fop/src/java/org/apache/fop/fo/FOTreeHandler.java Index: FOTreeHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeHandler.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- FOTreeHandler.java15 Jun 2004 06:26:55 - 1.20 +++ FOTreeH
cvs commit: xml-fop/src/java/org/apache/fop/tools AreaTreeBuilder.java
gmazza 2004/06/17 21:13:54 Modified:src/java/org/apache/fop/apps Document.java Driver.java src/java/org/apache/fop/area AreaTree.java src/java/org/apache/fop/fo FOInputHandler.java FOTreeHandler.java FObjMixed.java PropertyManager.java src/java/org/apache/fop/fo/flow Leader.java PageNumber.java PageNumberCitation.java src/java/org/apache/fop/fo/pagination PageSequence.java Title.java src/java/org/apache/fop/layoutmgr BlockLayoutManager.java src/java/org/apache/fop/render/mif MIFHandler.java src/java/org/apache/fop/render/rtf RTFHandler.java src/java/org/apache/fop/tools AreaTreeBuilder.java Log: 1. FOTreeBuilder modified to handle more of the renderer initialization. 2. AreaTree now takes a Renderer as a constructor, handles RenderPagesModel initialization. 3. FontInfo object moved from Driver/Document to fo.FOInputHandler. 4. getFontState/getFontInfo now take a fontInfo object directly instead of a apps.Document. 5. validity checking added to PageSequence.java Revision ChangesPath 1.23 +1 -15 xml-fop/src/java/org/apache/fop/apps/Document.java Index: Document.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- Document.java 17 Jun 2004 07:02:13 - 1.22 +++ Document.java 18 Jun 2004 04:13:53 - 1.23 @@ -20,7 +20,6 @@ // FOP import org.apache.fop.fo.FOInputHandler; -import org.apache.fop.fonts.FontInfo; import org.apache.fop.render.Renderer; // SAX @@ -35,9 +34,6 @@ /** The parent Driver object */ private Driver driver; -/** The Font information relevant for this document */ -private FontInfo fontInfo; - /** The Renderer being used for this document */ protected Renderer renderer; @@ -53,15 +49,6 @@ */ public Document(Driver driver) { this.driver = driver; -this.fontInfo = new FontInfo(); -} - -/** - * Retrieve the font information for this document - * @return the FontInfo instance for this document - */ -public FontInfo getFontInfo() { -return this.fontInfo; } /** @@ -74,7 +61,6 @@ /** * Get the renderer for this document - * * @return the renderer for this document */ public Renderer getRenderer() { 1.68 +2 -14 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.67 retrieving revision 1.68 diff -u -r1.67 -r1.68 --- Driver.java 17 Jun 2004 07:02:13 - 1.67 +++ Driver.java 18 Jun 2004 04:13:53 - 1.68 @@ -488,19 +488,7 @@ } currentDocument.renderer = renderer; -foInputHandler = new FOTreeHandler(currentDocument, true); - -try { -renderer.setupFontInfo(currentDocument.getFontInfo()); -// check that the "any,normal,400" font exists -if (!currentDocument.getFontInfo().isSetupValid()) { -throw new FOPException( -"No default font defined by OutputConverter"); -} -renderer.startRenderer(stream); -} catch (IOException e) { -throw new FOPException(e); -} +foInputHandler = new FOTreeHandler(currentDocument, stream, true); } currentDocument.foInputHandler = foInputHandler; 1.13 +4 -1 xml-fop/src/java/org/apache/fop/area/AreaTree.java Index: AreaTree.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTree.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- AreaTree.java 17 Jun 2004 04:46:08 - 1.12 +++ AreaTree.java 18 Jun 2004 04:13:53 - 1.13 @@ -21,6 +21,7 @@ import org.apache.fop.area.extensions.BookmarkData; import org.apache.fop.fo.extensions.Outline; import org.apache.fop.fo.extensions.Bookmarks; +import org.apache.fop.render.Renderer; import java.util.ArrayList; import java.util.List; @@ -67,7 +68,9 @@ /** * Constructor. */ -public AreaTree () { +public AreaTree (Renderer renderer) { +// this.atModel = new CachedRende
cvs commit: xml-fop/src/java/org/apache/fop/fo FOTreeBuilder.java PropertyManager.java
gmazza 2004/06/18 04:43:25 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/fo FOTreeBuilder.java PropertyManager.java Log: Unused apps.Document object removed from FOTreeBuilder. Revision ChangesPath 1.69 +1 -2 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.68 retrieving revision 1.69 diff -u -r1.68 -r1.69 --- Driver.java 18 Jun 2004 04:13:53 - 1.68 +++ Driver.java 18 Jun 2004 11:43:25 - 1.69 @@ -495,7 +495,6 @@ foInputHandler.setLogger(getLogger()); treeBuilder.setFOInputHandler(foInputHandler); -treeBuilder.setDocument(currentDocument); return new ProxyContentHandler(treeBuilder) { 1.34 +1 -13 xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java Index: FOTreeBuilder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- FOTreeBuilder.java16 Jun 2004 23:40:58 - 1.33 +++ FOTreeBuilder.java18 Jun 2004 11:43:25 - 1.34 @@ -31,7 +31,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.fop.apps.Document; import org.apache.fop.apps.FOPException; import org.apache.fop.fo.ElementMapping.Maker; import org.apache.fop.fo.pagination.Root; @@ -80,9 +79,6 @@ */ private FOInputHandler foInputHandler; -/** The Document object managing the FO Tree that is being built */ -private Document document; - /** The SAX locator object managing the line and column counters */ private Locator locator; @@ -94,14 +90,6 @@ } /** - * Sets the apps.Document for this object - * @param doc Document instance - */ -public void setDocument(Document doc) { -this.document = doc; -} - -/** * Sets the structure handler to receive events. * @param foih FOInputHandler instance */ @@ -254,7 +242,7 @@ if (rootFObj == null) { rootFObj = (Root) foNode; -rootFObj.setFOInputHandler(document.getFOInputHandler()); +rootFObj.setFOInputHandler(foInputHandler); } else { currentFObj.addChild(foNode); } 1.31 +1 -1 xml-fop/src/java/org/apache/fop/fo/PropertyManager.java Index: PropertyManager.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertyManager.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- PropertyManager.java 18 Jun 2004 04:13:53 - 1.30 +++ PropertyManager.java 18 Jun 2004 11:43:25 - 1.31 @@ -83,7 +83,7 @@ /** * Constructs a FontState object. If it was constructed before it is * reused. - * @param document apps.Document implementation containing the font + * @param fontInfo the FontInfo implementation containing the font * information * @return a FontState object */ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/render/svg SVGRenderer.java
gmazza 2004/06/19 06:35:34 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/fo FOInputHandler.java FONode.java FOTreeHandler.java src/java/org/apache/fop/fo/pagination SinglePageMasterReference.java src/java/org/apache/fop/render/awt AWTRenderer.java src/java/org/apache/fop/render/mif MIFHandler.java src/java/org/apache/fop/render/rtf RTFHandler.java src/java/org/apache/fop/render/svg SVGRenderer.java Removed: src/java/org/apache/fop/apps Document.java Log: 1.) FOInputHandler constructors switched from Document to FOUserAgent, Renderer added to FOTreeHandler interface. 2.) Apps.Document dropped. 3.) Validity checking added to fo.pagination.SinglePageMasterReference Revision ChangesPath 1.70 +4 -16 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.69 retrieving revision 1.70 diff -u -r1.69 -r1.70 --- Driver.java 18 Jun 2004 11:43:25 - 1.69 +++ Driver.java 19 Jun 2004 13:35:33 - 1.70 @@ -194,8 +194,6 @@ private Log log = null; private FOUserAgent userAgent = null; -private Document currentDocument = null; - /** * Main constructor for the Driver class. */ @@ -469,30 +467,20 @@ validateOutputStream(); } -/** Document creation is hard-wired for now, but needs to be made - accessible through the API and/or configuration */ -if (currentDocument == null) { -currentDocument = new Document(this); -} - // TODO: - do this stuff in a better way // PIJ: I guess the structure handler should be created by the renderer. if (rendererType == RENDER_MIF) { -foInputHandler = new MIFHandler(currentDocument, stream); +foInputHandler = new MIFHandler(userAgent, stream); } else if (rendererType == RENDER_RTF) { -foInputHandler = new RTFHandler(currentDocument, stream); +foInputHandler = new RTFHandler(userAgent, stream); } else { if (renderer == null) { throw new IllegalStateException( "Renderer not set when using standard foInputHandler"); } -currentDocument.renderer = renderer; -foInputHandler = new FOTreeHandler(currentDocument, stream, true); +foInputHandler = new FOTreeHandler(userAgent, renderer, stream, true); } -currentDocument.foInputHandler = foInputHandler; - -foInputHandler.setLogger(getLogger()); treeBuilder.setFOInputHandler(foInputHandler); 1.21 +17 -36xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java Index: FOInputHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- FOInputHandler.java 18 Jun 2004 04:13:53 - 1.20 +++ FOInputHandler.java 19 Jun 2004 13:35:33 - 1.21 @@ -21,10 +21,10 @@ // Java import java.util.HashSet; import java.util.Set; +import org.xml.sax.SAXException; -// FOP -import org.apache.fop.apps.Document; -import org.apache.fop.apps.Driver; +// Apache +import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.FOPException; import org.apache.fop.area.AreaTree; import org.apache.fop.fo.flow.BasicLink; @@ -47,8 +47,8 @@ import org.apache.fop.fo.pagination.PageSequence; import org.apache.fop.fonts.FontInfo; import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; -import org.xml.sax.SAXException; /** * Abstract class defining what should be done with SAX events that map to @@ -63,20 +63,18 @@ */ public abstract class FOInputHandler { -/** - * The Document object that is controlling the FO Tree being built +/** + * The FOUserAgent for this process */ -public Document doc = null; +private FOUserAgent foUserAgent; /** * The Font information relevant for this document */ protected FontInfo fontInfo; -/** - * logging instance - */ -protected Log logger = null; +/** Logger for FOInputHandler-related messages **/ +protected static Log logger = LogFactory.getLog(FOInputHandler.class); /** * The current set of id's in the FO tree. @
cvs commit: xml-fop/src/java/org/apache/fop/tools ProxyContentHandler.java
gmazza 2004/06/19 22:15:40 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/fo/pagination RepeatablePageMasterReference.java Removed: src/java/org/apache/fop/tools ProxyContentHandler.java Log: 1. ProxyContentHandler no longer needed. 2. fo:repeatable-page-master-reference's ValidateChildNode() implemented. Revision ChangesPath 1.71 +5 -26 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.70 retrieving revision 1.71 diff -u -r1.70 -r1.71 --- Driver.java 19 Jun 2004 13:35:33 - 1.70 +++ Driver.java 20 Jun 2004 05:15:40 - 1.71 @@ -30,20 +30,16 @@ import org.apache.fop.render.rtf.RTFHandler; import org.apache.fop.tools.DocumentInputSource; import org.apache.fop.tools.DocumentReader; -import org.apache.fop.tools.ProxyContentHandler; import org.apache.commons.logging.impl.SimpleLog; import org.apache.commons.logging.Log; -// DOM -/* org.w3c.dom.Document is not imported to reduce confusion with - org.apache.fop.control.Document */ - -// SAX +// XML import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; +import org.w3c.dom.Document; // Java import java.io.IOException; @@ -483,24 +479,7 @@ } treeBuilder.setFOInputHandler(foInputHandler); - -return new ProxyContentHandler(treeBuilder) { - -public void startDocument() throws SAXException { -if (foInputHandler instanceof FOTreeHandler) { -FOTreeHandler foTreeHandler = (FOTreeHandler)foInputHandler; -} -super.startDocument(); -} - -public void endDocument() throws SAXException { -super.endDocument(); -if (foInputHandler instanceof FOTreeHandler) { -FOTreeHandler foTreeHandler = (FOTreeHandler)foInputHandler; -} -} - -}; +return treeBuilder; } /** @@ -564,7 +543,7 @@ * @param document the DOM document to read from * @throws FOPException if anything goes wrong. */ -public synchronized void render(org.w3c.dom.Document document) +public synchronized void render(Document document) throws FOPException { DocumentInputSource source = new DocumentInputSource(document); DocumentReader reader = new DocumentReader(); 1.8 +9 -0 xml-fop/src/java/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java Index: RepeatablePageMasterReference.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- RepeatablePageMasterReference.java12 Jun 2004 23:18:52 - 1.7 +++ RepeatablePageMasterReference.java20 Jun 2004 05:15:40 - 1.8 @@ -20,6 +20,7 @@ // XML import org.xml.sax.Attributes; +import org.xml.sax.Locator; // FOP import org.apache.fop.fo.FONode; @@ -46,6 +47,14 @@ */ public RepeatablePageMasterReference(FONode parent) { super(parent); +} + +/** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + * XSL/FOP Content Model: empty + */ +protected void validateChildNode(Locator loc, String nsURI, String localName) { + invalidChildError(loc, nsURI, localName); } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/tools AreaTreeBuilder.java
gmazza 2004/06/20 00:46:13 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/fo/pagination LayoutMasterSet.java RepeatablePageMasterAlternatives.java src/java/org/apache/fop/render AbstractRenderer.java Renderer.java src/java/org/apache/fop/tools AreaTreeBuilder.java Log: 1. Created own logger for AbstractRenderer, removed logger setter from Renderer interface. 2. Validity checking for fo:repeatable-page-master-alternatives. Revision ChangesPath 1.72 +1 -2 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.71 retrieving revision 1.72 diff -u -r1.71 -r1.72 --- Driver.java 20 Jun 2004 05:15:40 - 1.71 +++ Driver.java 20 Jun 2004 07:46:13 - 1.72 @@ -409,7 +409,6 @@ throws IllegalArgumentException { try { renderer = (Renderer)Class.forName(rendererClassName).newInstance(); -renderer.setLogger(getLogger()); renderer.setProducer(Version.getVersion()); renderer.setUserAgent(getUserAgent()); } catch (ClassNotFoundException e) { 1.12 +3 -0 xml-fop/src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java Index: LayoutMasterSet.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- LayoutMasterSet.java 17 Jun 2004 07:02:13 - 1.11 +++ LayoutMasterSet.java 20 Jun 2004 07:46:13 - 1.12 @@ -69,6 +69,9 @@ } } +/** + * @see org.apache.fop.fo.FONode#end + */ protected void end() { if (children == null) { missingChildElementError("(simple-page-master|page-sequence-master)+"); 1.8 +22 -0 xml-fop/src/java/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java Index: RepeatablePageMasterAlternatives.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- RepeatablePageMasterAlternatives.java 12 Jun 2004 23:18:52 - 1.7 +++ RepeatablePageMasterAlternatives.java 20 Jun 2004 07:46:13 - 1.8 @@ -23,8 +23,10 @@ // XML import org.xml.sax.Attributes; +import org.xml.sax.Locator; // FOP +import org.apache.fop.fo.FOElementMapping; import org.apache.fop.fo.FONode; import org.apache.fop.fo.FObj; import org.apache.fop.fo.FOTreeVisitor; @@ -55,6 +57,26 @@ */ public RepeatablePageMasterAlternatives(FONode parent) { super(parent); +} + +/** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) +XSL/FOP: (conditional-page-master-reference+) + */ +protected void validateChildNode(Locator loc, String nsURI, String localName) { +if (!(nsURI == FOElementMapping.URI && +localName.equals("conditional-page-master-reference"))) { +invalidChildError(loc, nsURI, localName); +} +} + +/** + * @see org.apache.fop.fo.FONode#end + */ +protected void end() { +if (children == null) { + missingChildElementError("(conditional-page-master-reference+)"); +} } /** 1.27 +3 -10 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.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- AbstractRenderer.java 22 Apr 2004 21:38:39 - 1.26 +++ AbstractRenderer.java 20 Jun 2004 07:46:13 - 1.27 @@ -64,6 +64,7 @@ import org.apache.fop.fonts.FontInfo; import org.apache.fop.fo.pagination.Region; import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; // Avalon import org.apache.avalon.framework.configuration.Configurable; @@ -86,8 +87,8 @@ /** * logging instance */ -protected Log logger = null; - +protected static Log logger = LogFactory.getLog("Renderer"); + /** * producer (usually "F
cvs commit: xml-fop/src/java/org/apache/fop/tools/anttasks Fop.java
gmazza 2004/06/20 05:35:17 Modified:examples/embedding/java/embedding ExampleDOM2PDF.java ExampleFO2PDF.java ExampleObj2PDF.java ExampleXML2PDF.java src/documentation/content/xdocs embedding.xml src/java/org/apache/fop/apps CommandLineOptions.java Driver.java Fop.java src/java/org/apache/fop/render AbstractRenderer.java src/java/org/apache/fop/servlet FopPrintServlet.java FopServlet.java src/java/org/apache/fop/tools/anttasks Fop.java Log: 1.) Removed the get/setLogger methods from Driver, obsolete with Commons-Logging. 2.) Updated examples and documentation. 3.) Added a -v option to show version of FOP being used. Revision ChangesPath 1.7 +4 -12 xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java Index: ExampleDOM2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ExampleDOM2PDF.java 14 Apr 2004 22:57:10 - 1.6 +++ ExampleDOM2PDF.java 20 Jun 2004 12:35:17 - 1.7 @@ -18,12 +18,10 @@ package embedding; -//Java +// Java import java.io.File; import java.io.IOException; import java.io.OutputStream; - -//JAXP import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; @@ -33,10 +31,7 @@ import org.w3c.dom.Node; import org.w3c.dom.Text; -// Commons-Logging -import org.apache.commons.logging.impl.SimpleLog; - -//FOP +// FOP import org.apache.fop.apps.Driver; import org.apache.fop.apps.FOPException; @@ -61,10 +56,7 @@ // Construct driver Driver driver = new Driver(); -// Setup logger -SimpleLog logger = new SimpleLog("log"); -logger.setLevel(SimpleLog.LOG_LEVEL_INFO); -driver.setLogger(logger); +// Setup driver driver.initialize(); // Setup Renderer (output format) 1.7 +4 -10 xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java Index: ExampleFO2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ExampleFO2PDF.java14 Apr 2004 22:57:10 - 1.6 +++ ExampleFO2PDF.java20 Jun 2004 12:35:17 - 1.7 @@ -18,19 +18,16 @@ package embedding; -//Java +// Java import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -//SAX +// SAX import org.xml.sax.InputSource; -// Commons-Logging -import org.apache.commons.logging.impl.SimpleLog; - -//FOP +// FOP import org.apache.fop.apps.Driver; import org.apache.fop.apps.FOPException; @@ -51,10 +48,7 @@ // Construct driver Driver driver = new Driver(); -// Setup logger -SimpleLog logger = new SimpleLog("log"); -logger.setLevel(SimpleLog.LOG_LEVEL_INFO); -driver.setLogger(logger); +// Setup driver driver.initialize(); // Setup Renderer (output format) 1.7 +4 -11 xml-fop/examples/embedding/java/embedding/ExampleObj2PDF.java Index: ExampleObj2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleObj2PDF.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ExampleObj2PDF.java 14 Apr 2004 22:57:10 - 1.6 +++ ExampleObj2PDF.java 20 Jun 2004 12:35:17 - 1.7 @@ -18,12 +18,12 @@ package embedding; -//Java +// Java import java.io.File; import java.io.OutputStream; import java.io.IOException; -//JAXP +// JAXP import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerException; @@ -32,13 +32,9 @@ import javax.xml.transform.stream.StreamSource; import javax.xml.transform.sax.SAXResult; -// Commons-Logging -import org.apache.commons.logging.impl.SimpleLog; - -//FOP +// FOP import org.apache.fop.apps.Driver; import org.apache.fop.apps.FOPException; - import embedding.model.ProjectTeam; /** @@ -62,10 +58,7 @@ // Construct driver Driver driver = new Driver(); -// Setup logger -SimpleLog logger = new SimpleLog("log"
cvs commit: xml-fop/src/java/org/apache/fop/tools TestConverter.java
gmazza 2004/06/21 17:44:46 Modified:src/java/org/apache/fop/apps CommandLineOptions.java FOUserAgent.java Fop.java src/java/org/apache/fop/fo/pagination ConditionalPageMasterReference.java src/java/org/apache/fop/render AbstractRenderer.java Renderer.java src/java/org/apache/fop/render/xml XMLRenderer.java src/java/org/apache/fop/tools TestConverter.java Log: 1. Moved renderer options to within FOUserAgent 2. Validity checking on fo:conditional-page-master-reference added. Revision ChangesPath 1.20 +10 -8 xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java Index: CommandLineOptions.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- CommandLineOptions.java 20 Jun 2004 12:35:17 - 1.19 +++ CommandLineOptions.java 22 Jun 2004 00:44:46 - 1.20 @@ -78,8 +78,8 @@ /* output mode */ private int outputmode = NOT_SET; -private java.util.HashMap rendererOptions; - +private FOUserAgent foUserAgent; + private Log log; private Vector xsltParams = null; @@ -96,7 +96,9 @@ log = LogFactory.getLog("FOP"); boolean optionsParsed = true; -rendererOptions = new java.util.HashMap(); + +foUserAgent = new FOUserAgent(); + try { optionsParsed = parseOptions(args); if (optionsParsed) { @@ -454,7 +456,7 @@ case SVG_OUTPUT: return Driver.RENDER_SVG; case AREA_OUTPUT: -rendererOptions.put("fineDetail", isCoarseAreaXml()); +foUserAgent.getRendererOptions().put("fineDetail", isCoarseAreaXml()); return Driver.RENDER_XML; case RTF_OUTPUT: return Driver.RENDER_RTF; @@ -480,11 +482,11 @@ } /** - * Get the renderer specific options. - * @return hash map with option/value pairs. + * Get the FOUserAgent for this Command-Line run + * @return FOUserAgent instance */ -public java.util.HashMap getRendererOptions() { -return rendererOptions; +protected FOUserAgent getFOUserAgent() { +return foUserAgent; } /** 1.8 +11 -1 xml-fop/src/java/org/apache/fop/apps/FOUserAgent.java Index: FOUserAgent.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/FOUserAgent.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- FOUserAgent.java 12 May 2004 23:19:52 - 1.7 +++ FOUserAgent.java 22 Jun 2004 00:44:46 - 1.8 @@ -19,6 +19,7 @@ package org.apache.fop.apps; // Java +import java.util.HashMap; import java.util.Map; import java.io.IOException; import java.io.InputStream; @@ -55,6 +56,15 @@ private String baseURL; private PDFEncryptionParams pdfEncryptionParams; private float px2mm = 0.3528f; //72dpi (=25.4/dpi) +private HashMap rendererOptions = new java.util.HashMap(); + +/** + * Returns the renderer options + * @return renderer options + */ +public HashMap getRendererOptions() { +return rendererOptions; +} /** * Sets the base URL. 1.12 +2 -4 xml-fop/src/java/org/apache/fop/apps/Fop.java Index: Fop.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Fop.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Fop.java 20 Jun 2004 12:35:17 - 1.11 +++ Fop.java 22 Jun 2004 00:44:46 - 1.12 @@ -45,6 +45,7 @@ Driver driver = new Driver(); options = new CommandLineOptions(args); +driver.setUserAgent(options.getFOUserAgent()); inputHandler = options.getInputHandler(); try { @@ -60,9 +61,6 @@ } } -if (driver.getRenderer() != null) { -driver.getRenderer().setOptions(options.getRendererOptions()); -} driver.render(inputHandler); } finally { if (bos != null) { 1.11 +9 -0 xml-fop/src/java/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java Index: ConditionalPageMasterReference.java
cvs commit: xml-fop/src/java/org/apache/fop/tools TestConverter.java
gmazza 2004/06/22 17:25:27 Modified:src/java/org/apache/fop/apps CommandLineOptions.java Driver.java FOUserAgent.java Fop.java src/java/org/apache/fop/fo/pagination RegionBody.java src/java/org/apache/fop/fonts/apps PFMReader.java TTFReader.java src/java/org/apache/fop/render AbstractRenderer.java Renderer.java src/java/org/apache/fop/render/awt/viewer PreviewDialogAboutBox.java src/java/org/apache/fop/render/pdf PDFRenderer.java src/java/org/apache/fop/render/ps EPSDocumentGraphics2D.java PSDocumentGraphics2D.java PSRenderer.java src/java/org/apache/fop/tools TestConverter.java Removed: src/java/org/apache/fop/apps Version.java Log: 1.) Moving renderer-specific customization variables (producer, creator, create date) to FOUserAgent, those renderers which can work with these values can read them from passed-in FOUserAgent instance. 2.) Version.getVersion() moved to Fop.getVersion(). 3.) Validation added for fo:region-body. Revision ChangesPath 1.21 +1 -1 xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java Index: CommandLineOptions.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- CommandLineOptions.java 22 Jun 2004 00:44:46 - 1.20 +++ CommandLineOptions.java 23 Jun 2004 00:25:27 - 1.21 @@ -177,7 +177,7 @@ } else if (args[i].equals("-at")) { i = i + parseAreaTreeOption(args, i); } else if (args[i].equals("-v")) { -System.out.println("FOP Version " + Version.getVersion()); +System.out.println("FOP Version " + Fop.getVersion()); } else if (args[i].equals("-param")) { if (i + 2 < args.length) { if (xsltParams == null) { 1.74 +3 -3 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.73 retrieving revision 1.74 diff -u -r1.73 -r1.74 --- Driver.java 20 Jun 2004 12:35:17 - 1.73 +++ Driver.java 23 Jun 2004 00:25:27 - 1.74 @@ -350,8 +350,8 @@ if (renderer instanceof AWTRenderer) { rendererType = RENDER_AWT; } -renderer.setProducer(Version.getVersion()); renderer.setUserAgent(getUserAgent()); +userAgent.setProducer("FOP Version" + Fop.getVersion()); this.renderer = renderer; } @@ -375,8 +375,8 @@ throws IllegalArgumentException { try { renderer = (Renderer)Class.forName(rendererClassName).newInstance(); -renderer.setProducer(Version.getVersion()); renderer.setUserAgent(getUserAgent()); +userAgent.setProducer("FOP Version" + Fop.getVersion()); } catch (ClassNotFoundException e) { throw new IllegalArgumentException("Could not find " + rendererClassName); 1.9 +65 -1 xml-fop/src/java/org/apache/fop/apps/FOUserAgent.java Index: FOUserAgent.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/FOUserAgent.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- FOUserAgent.java 22 Jun 2004 00:44:46 - 1.8 +++ FOUserAgent.java 23 Jun 2004 00:25:27 - 1.9 @@ -19,6 +19,7 @@ package org.apache.fop.apps; // Java +import java.util.Date; import java.util.HashMap; import java.util.Map; import java.io.IOException; @@ -57,6 +58,69 @@ private PDFEncryptionParams pdfEncryptionParams; private float px2mm = 0.3528f; //72dpi (=25.4/dpi) private HashMap rendererOptions = new java.util.HashMap(); + +/** Producer: Metadata element for the system/software that produces + * the document. (Some renderers can store this in the document.) + */ +protected String producer = "FOP " + Fop.getVersion(); + +/** Creator: Metadata element for the user that created the + * document. (Some renderers can store this in the document.) + */ +protected String creator = null; + +/** Creation Date: Override of the date the document was created.
cvs commit: xml-fop/test/java/org/apache/fop BasicDriverTestCase.java GenericFOPTestCase.java
gmazza 2004/06/25 16:35:00 Modified:src/java/org/apache/fop/apps CommandLineOptions.java Driver.java FOUserAgent.java Fop.java XSLTInputHandler.java src/java/org/apache/fop/fo/pagination Region.java RegionBody.java src/java/org/apache/fop/render/awt AWTRenderer.java src/java/org/apache/fop/servlet FopPrintServlet.java test/java/org/apache/fop BasicDriverTestCase.java GenericFOPTestCase.java Log: 1.) Moved the CommandLineOptions' InputHandler object into FOUserAgent, allowing for a no-parameter constructor for AWTRenderer (like the other renderers). (Code is not yet ideal in AWTRenderer, but will do the task.) 2.) AWT renderer handling now more similar to the other renderers (simplifications in Driver, Fop). 3.) Driver.getRenderer() removed from API. (Renderer configuration now mostly done through FOUserAgent, and setup of renderer prior to calling setRenderer().) 4.) Validity checking added to region-after, -start, -end, and -before. Revision ChangesPath 1.22 +17 -10xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java Index: CommandLineOptions.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- CommandLineOptions.java 23 Jun 2004 00:25:27 - 1.21 +++ CommandLineOptions.java 25 Jun 2004 23:35:00 - 1.22 @@ -114,6 +114,8 @@ printUsage(); throw e; } + +foUserAgent.setInputHandler(createInputHandler()); } /** @@ -386,6 +388,11 @@ throw new FOPException("No output file specified"); } +if ((outputmode == AWT_OUTPUT || outputmode == PRINT_OUTPUT) && outfile != null) { +throw new FOPException("Output file may not be specified " + +"for AWT or PRINT output"); +} + if (inputmode == XSLT_INPUT) { // check whether xml *and* xslt file have been set if (xmlfile == null) { @@ -466,18 +473,18 @@ } /** - * Get the input handler. - * @return the input handler - * @throws FOPException if creating the InputHandler fails + * Create an InputHandler object based on command-line parameters + * @return a new InputHandler instance + * @throws IllegalStateException if invalid/missing parameters */ -public InputHandler getInputHandler() throws FOPException { +private InputHandler createInputHandler() throws IllegalArgumentException { switch (inputmode) { -case FO_INPUT: -return new FOFileHandler(fofile); -case XSLT_INPUT: -return new XSLTInputHandler(xmlfile, xsltfile, xsltParams); -default: -throw new FOPException("Invalid inputmode setting!"); +case FO_INPUT: +return new FOFileHandler(fofile); +case XSLT_INPUT: +return new XSLTInputHandler(xmlfile, xsltfile, xsltParams); +default: +throw new IllegalArgumentException("Error creating InputHandler object."); } } 1.75 +2 -9 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.74 retrieving revision 1.75 diff -u -r1.74 -r1.75 --- Driver.java 23 Jun 2004 00:25:27 - 1.74 +++ Driver.java 25 Jun 2004 23:35:00 - 1.75 @@ -310,7 +310,8 @@ setRenderer("org.apache.fop.render.pdf.PDFRenderer"); break; case RENDER_AWT: -throw new IllegalArgumentException("Use renderer form of setRenderer() for AWT"); +setRenderer("org.apache.fop.render.awt.AWTRenderer"); +break; case RENDER_PRINT: setRenderer("org.apache.fop.render.awt.AWTPrintRenderer"); break; @@ -353,14 +354,6 @@ renderer.setUserAgent(getUserAgent()); userAgent.setProducer("FOP Version" + Fop.getVersion()); this.renderer = renderer; -} - -/** - * Returns the currently active renderer. - * @return the renderer - */ -public Renderer getRenderer() { -return renderer; } /** 1.10 +21 -2 xml-fop/src/java/org/apache/fop/apps/FOUserAgent.j
cvs commit: xml-fop/test/java/org/apache/fop GenericFOPTestCase.java
gmazza 2004/06/26 12:37:13 Modified:src/java/org/apache/fop/apps CommandLineOptions.java Driver.java FOUserAgent.java Fop.java src/java/org/apache/fop/fo Constants.java FOTreeBuilder.java FObj.java src/java/org/apache/fop/fo/pagination Flow.java LayoutMasterSet.java src/java/org/apache/fop/render/awt/viewer PreviewDialog.java test/java/org/apache/fop GenericFOPTestCase.java Log: 1. Output constant types (RENDER_PDF, RENDER_PS, etc.) made common between CommandLineOptions and Driver, and factored into fo.Constants interface. 2. New Driver(AWTRenderer renderer) constructor added in apps.Driver for the AWTRenderer (which does reloading, unique among the output types.) Note reloading currently doesn't work--AWTRenderer not yet functional. 3. Driver.hasData() method removed from API--a search on when it was implemented dates it to 2001, when reset() was coded. Unsure of its need, and so removed until we have user requests for it. 4. Renderers abstracted away from API in favor of just calling .setRenderer(int Rendertype), and configuring user-configurable options in FOUserAgent. 5. Driver.setRenderer(String ) also dropped. If external user need for it, can be re-implemented fairly easily via a "renderer override" string in FOUserAgent, for which FOTreeHandler can read and use instead. 6. Validity checking added to fo:flow, and convenience functions defining the "%block;" parameter entity and neutral containers as defined in 6.2 of spec [1] added to FObj. [1] http://www.w3.org/TR/2001/REC-xsl-20011015/slice6.html#section-N9447-Formatting-Object-Content Revision ChangesPath 1.23 +35 -60xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java Index: CommandLineOptions.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- CommandLineOptions.java 25 Jun 2004 23:35:00 - 1.22 +++ CommandLineOptions.java 26 Jun 2004 19:37:13 - 1.23 @@ -23,6 +23,8 @@ import java.util.Locale; import java.util.Vector; +import org.apache.fop.fo.Constants; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.impl.SimpleLog; @@ -30,34 +32,7 @@ /** * Options parses the commandline arguments */ -public class CommandLineOptions { - -/** input / output not set */ -public static final int NOT_SET = 0; -/** input: fo file */ -public static final int FO_INPUT = 1; -/** input: xml+xsl file */ -public static final int XSLT_INPUT = 2; -/** output: pdf file */ -public static final int PDF_OUTPUT = 1; -/** output: screen using swing */ -public static final int AWT_OUTPUT = 2; -/** output: mif file */ -public static final int MIF_OUTPUT = 3; -/** output: sent swing rendered file to printer */ -public static final int PRINT_OUTPUT = 4; -/** output: pcl file */ -public static final int PCL_OUTPUT = 5; -/** output: postscript file */ -public static final int PS_OUTPUT = 6; -/** output: text file */ -public static final int TXT_OUTPUT = 7; -/** output: svg file */ -public static final int SVG_OUTPUT = 8; -/** output: XML area tree */ -public static final int AREA_OUTPUT = 9; -/** output: RTF file */ -public static final int RTF_OUTPUT = 10; +public class CommandLineOptions implements Constants { /* show configuration information */ private Boolean showConfiguration = Boolean.FALSE; @@ -257,12 +232,12 @@ } private int parseAWTOutputOption(String[] args, int i) throws FOPException { -setOutputMode(AWT_OUTPUT); +setOutputMode(RENDER_AWT); return 0; } private int parsePDFOutputOption(String[] args, int i) throws FOPException { -setOutputMode(PDF_OUTPUT); +setOutputMode(RENDER_PDF); if ((i + 1 == args.length) || (args[i + 1].charAt(0) == '-')) { throw new FOPException("you must specify the pdf output file"); @@ -273,7 +248,7 @@ } private int parseMIFOutputOption(String[] args, int i) throws FOPException { -setOutputMode(MIF_OUTPUT); +setOutputMode(RENDER_MIF); if ((i + 1 == args.length) || (args[i + 1].charAt(0) == '-')) { throw new FOPException("you must specify the mif output file"); @@ -284,7 +259,7 @@ } private int parseRTFOutputOption(Str
cvs commit: xml-fop/src/java/org/apache/fop/render/awt AWTRenderer.java
gmazza 2004/06/27 06:29:32 Modified:src/java/org/apache/fop/apps Driver.java FOUserAgent.java src/java/org/apache/fop/fo Constants.java FOInputHandler.java FOTreeHandler.java src/java/org/apache/fop/fo/pagination Flow.java src/java/org/apache/fop/render/awt AWTRenderer.java Log: 1.) Moved Renderer instantiation from Driver to FOTreeHandler, as it is the only FOInputHandler subclass concerned with Renderer creation. (MIFHandler and RTFHandler are hardcoded to a particular renderer-type). 2.) Added a RendererOverride member variable in FOUserAgent, for use by AWTRenderer as well as external (i.e. user-defined) renderers. FOTreeHandler coded to reference it. 3.) Flow validity checking which was added yesterday temporarily commented-out; I misread the content model from the spec (I will have to account for fo:markers as initial children.) Revision ChangesPath 1.77 +58 -101 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.76 retrieving revision 1.77 diff -u -r1.76 -r1.77 --- Driver.java 26 Jun 2004 19:37:13 - 1.76 +++ Driver.java 27 Jun 2004 13:29:32 - 1.77 @@ -35,7 +35,6 @@ import org.apache.fop.fo.FOTreeBuilder; import org.apache.fop.fo.FOInputHandler; import org.apache.fop.fo.FOTreeHandler; -import org.apache.fop.render.Renderer; import org.apache.fop.render.awt.AWTRenderer; import org.apache.fop.render.mif.MIFHandler; import org.apache.fop.render.rtf.RTFHandler; @@ -57,16 +56,16 @@ * driver.setRenderer(RENDER_PDF); * driver.run(); * - * If neccessary, calling classes can call into the lower level + * If necessary, calling classes can call into the lower level * methods to setup and - * render. Methods can be called to set the + * render. Methods within FOUserAgent can be called to set the * Renderer to use, the (possibly multiple) ElementMapping(s) to * use and the OutputStream to use to output the results of the - * rendering (where applicable). In the case of the Renderer and + * rendering (where applicable). In the case of * ElementMapping(s), the Driver may be supplied either with the * object itself, or the name of the class, in which case Driver will * instantiate the class itself. The advantage of the latter is it - * enables runtime determination of Renderer and ElementMapping(s). + * enables runtime determination of ElementMapping(s). * * Once the Driver is set up, the render method * is called. Depending on whether DOM or SAX is being used, the @@ -83,7 +82,7 @@ * * * Driver driver = new Driver(); - * driver.setRenderer(new org.apache.fop.render.awt.AWTRenderer(translator)); + * driver.setRenderer(RENDER_AWT); * driver.render(parser, fileInputSource(args[0])); * */ @@ -100,11 +99,6 @@ private int rendererType = NOT_SET; /** - * the renderer to use to output the area tree - */ -private Renderer renderer; - -/** * the SAX ContentHandler */ private FOInputHandler foInputHandler; @@ -127,7 +121,7 @@ /** * The system resources that FOP will use */ -private FOUserAgent userAgent = null; +private FOUserAgent foUserAgent = null; /** * Main constructor for the Driver class. @@ -142,7 +136,8 @@ */ public Driver(AWTRenderer renderer) { this(); -setRenderer(renderer); +rendererType = RENDER_AWT; +foUserAgent = renderer.getUserAgent(); } /** @@ -171,15 +166,30 @@ } /** + * Resets the Driver so it can be reused. Property and element + * mappings are reset to defaults. + * The output stream is cleared. The renderer is cleared. + */ +public synchronized void reset() { +source = null; +stream = null; +reader = null; +if (treeBuilder != null) { +treeBuilder.reset(); +} +} + +/** * Optionally sets the FOUserAgent instance for FOP to use. The Driver * class sets up its own FOUserAgent if none is set through this method. * @param agent FOUserAgent to use */ -public void setUserAgent(FOUserAgent agent) { -userAgent = agent; -if (renderer != null) { -renderer.setUserAgent(userAgent); +public void setUserAgent(FOUserAgent agent) throws FOPException { +if (foUserAgent != null) { +throw new IllegalStateException("FOUserAgent " + +"instance already set."); } +
cvs commit: xml-fop/src/java/org/apache/fop/fo/flow Marker.java
gmazza 2004/07/03 21:50:54 Modified:src/java/org/apache/fop/fo FONode.java FObj.java src/java/org/apache/fop/fo/flow Marker.java Log: Removed isMarker() method in favor of getName() (may eventually switch to an ID system for element names for better performance.) Revision ChangesPath 1.26 +0 -11 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- FONode.java 19 Jun 2004 13:35:33 - 1.25 +++ FONode.java 4 Jul 2004 04:50:54 - 1.26 @@ -204,17 +204,6 @@ } /** - * This is a quick check to see if it is a marker. - * This is needed since there is no other quick way of checking - * for a marker and not adding to the child list. - * - * @return true if this is a marker - */ -protected boolean isMarker() { -return false; -} - -/** * This is a hook for an FOTreeVisitor subclass to be able to access * this object. * @param fotv the FOTreeVisitor subclass that can access this object. 1.48 +1 -1 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.47 retrieving revision 1.48 diff -u -r1.47 -r1.48 --- FObj.java 26 Jun 2004 19:37:13 - 1.47 +++ FObj.java 4 Jul 2004 04:50:54 - 1.48 @@ -256,7 +256,7 @@ * @param child the child node to add */ protected void addChild(FONode child) { -if (containsMarkers() && child.isMarker()) { +if (containsMarkers() && "fo:marker".equals(child.getName())) { addMarker((Marker)child); } else { if (children == null) { 1.10 +0 -7 xml-fop/src/java/org/apache/fop/fo/flow/Marker.java Index: Marker.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/Marker.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- Marker.java 12 Jun 2004 23:18:52 - 1.9 +++ Marker.java 4 Jul 2004 04:50:54 - 1.10 @@ -55,13 +55,6 @@ } /** - * @see org.apache.fop.fo.FONode#isMarker() - */ -protected boolean isMarker() { -return true; -} - -/** * Get the marker class name for this marker. * * @return the marker class name - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination Flow.java
gmazza 2004/07/03 22:15:38 Modified:src/java/org/apache/fop/fo FONode.java src/java/org/apache/fop/fo/pagination Flow.java Log: validateChildNode() activated for fo:flow. Revision ChangesPath 1.27 +1 -1 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- FONode.java 4 Jul 2004 04:50:54 - 1.26 +++ FONode.java 4 Jul 2004 05:15:38 - 1.27 @@ -258,7 +258,7 @@ protected void nodesOutOfOrderError(Locator loc, String tooLateNode, String tooEarlyNode) { throw new IllegalArgumentException( -errorText(loc) + getName() + ", " + tooLateNode +errorText(loc) + "For " + getName() + ", " + tooLateNode + " must be declared before " + tooEarlyNode + "."); } 1.16 +17 -7 xml-fop/src/java/org/apache/fop/fo/pagination/Flow.java Index: Flow.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/Flow.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- Flow.java 27 Jun 2004 13:29:32 - 1.15 +++ Flow.java 4 Jul 2004 05:15:38 - 1.16 @@ -28,6 +28,7 @@ // FOP import org.apache.fop.fo.FONode; import org.apache.fop.fo.FObj; +import org.apache.fop.fo.FOElementMapping; import org.apache.fop.fo.FOTreeVisitor; import org.apache.fop.apps.FOPException; @@ -57,6 +58,11 @@ private int contentWidth; /** + * Content-width of current column area during layout + */ +private boolean blockItemFound = false; + +/** * @param parent FONode that is the parent of this object */ public Flow(FONode parent) { @@ -65,15 +71,19 @@ /** * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) - * XSL/FOP Content Model: markers* (%block;)+ + * XSL/FOP Content Model: marker* (%block;)+ */ -/* temporarily disabled: need to account for fo-markers which may be initial children protected void validateChildNode(Locator loc, String nsURI, String localName) { -if (!isBlockItem(nsURI, localName)) { +if (nsURI == FOElementMapping.URI && localName.equals("marker")) { +if (blockItemFound) { + nodesOutOfOrderError(loc, "fo:marker", "(%block;)"); +} +} else if (!isBlockItem(nsURI, localName)) { invalidChildError(loc, nsURI, localName); +} else { +blockItemFound = true; } } -*/ /** * Make sure content model satisfied, if so then tell the @@ -81,8 +91,8 @@ * @see org.apache.fop.fo.FONode#end */ protected void end() { -if (children == null) { -missingChildElementError("(%block;)+"); +if (!blockItemFound) { +missingChildElementError("marker* (%block;)+"); } getFOInputHandler().endFlow(this); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/tools DocumentInputSource.java DocumentReader.java
gmazza 2004/07/05 16:47:56 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/fo/pagination Flow.java StaticContent.java Added: src/java/org/apache/fop/apps DocumentInputSource.java DocumentReader.java Removed: src/java/org/apache/fop/tools DocumentInputSource.java DocumentReader.java Log: 1.) Moved DocumentInputSource & DocumentReader to apps package, made private to package. 2.) Added validity checking to fo:static-content. 3.) Bug with uninitialized FOUserAgent in Driver fixed (this will probably need more analysis later.) Revision ChangesPath 1.78 +4 -3 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.77 retrieving revision 1.78 diff -u -r1.77 -r1.78 --- Driver.java 27 Jun 2004 13:29:32 - 1.77 +++ Driver.java 5 Jul 2004 23:47:56 - 1.78 @@ -38,8 +38,6 @@ import org.apache.fop.render.awt.AWTRenderer; import org.apache.fop.render.mif.MIFHandler; import org.apache.fop.render.rtf.RTFHandler; -import org.apache.fop.tools.DocumentInputSource; -import org.apache.fop.tools.DocumentReader; /** * Primary class that drives overall FOP process. @@ -163,6 +161,9 @@ throw new IllegalStateException("Driver already initialized"); } treeBuilder = new FOTreeBuilder(); +if (foUserAgent == null) { +foUserAgent = new FOUserAgent(); +} } /** 1.1 xml-fop/src/java/org/apache/fop/apps/DocumentInputSource.java Index: DocumentInputSource.java === /* * Copyright 1999-2004 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: DocumentInputSource.java,v 1.1 2004/07/05 23:47:56 gmazza Exp $ */ package org.apache.fop.apps; import org.w3c.dom.Document; import org.xml.sax.InputSource; /** * This is an InputSource to be used with DocumentReader. * * @author Kelly A Campbell */ class DocumentInputSource extends InputSource { private Document document; /** * Default constructor. */ public DocumentInputSource() { super(); } /** * Main constructor * @param document the DOM document to use as input */ public DocumentInputSource(Document document) { this(); setDocument(document); } /** * Returns the input document. * @return the input DOM document. */ public Document getDocument() { return this.document; } /** * Sets the input document. * @param document the DOM document to use as input */ public void setDocument(Document document) { this.document = document; } } 1.1 xml-fop/src/java/org/apache/fop/apps/DocumentReader.java Index: DocumentReader.java === /* * Copyright 1999-2004 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: DocumentReader.java,v 1.1 2004/07/05 23:47:56 gmazza Exp $ */ package org.apache.fop.apps; import java.io.IOException; // DOM import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; // SAX import org.xml.sax.ContentHandler; import org.xml.sax.DTD
cvs commit: xml-fop/src/java/org/apache/fop/tools AreaTreeBuilder.java
gmazza 2004/07/05 22:25:09 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/area AreaTree.java src/java/org/apache/fop/fo FOTreeHandler.java src/java/org/apache/fop/tools AreaTreeBuilder.java Log: This change abstracts the Renderer away from FOTreeHandler as follows: Old: driver-->fotreehandler-->areatree \-->renderer New: driver-->fotreehandler-->areatree-->renderer I am hoping this will streamline the code more. Main drawback I can see is that the AreaTree constructor gets a bit ugly--from one parameter, the Renderer, to four (the items needed to create a Renderer.) Perhaps we can have AreaTree construct the FontInfo object in the future, dropping us to a three-parameter constructor. Comments welcome. Revision ChangesPath 1.79 +2 -2 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.78 retrieving revision 1.79 diff -u -r1.78 -r1.79 --- Driver.java 5 Jul 2004 23:47:56 - 1.78 +++ Driver.java 6 Jul 2004 05:25:09 - 1.79 @@ -313,7 +313,7 @@ } foInputHandler = new FOTreeHandler(foUserAgent, rendererType, -stream, true); +stream); } treeBuilder.setFOInputHandler(foInputHandler); 1.14 +91 -9 xml-fop/src/java/org/apache/fop/area/AreaTree.java Index: AreaTree.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTree.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- AreaTree.java 18 Jun 2004 04:13:53 - 1.13 +++ AreaTree.java 6 Jul 2004 05:25:09 - 1.14 @@ -15,14 +15,11 @@ */ /* $Id$ */ - package org.apache.fop.area; -import org.apache.fop.area.extensions.BookmarkData; -import org.apache.fop.fo.extensions.Outline; -import org.apache.fop.fo.extensions.Bookmarks; -import org.apache.fop.render.Renderer; - +// Java +import java.io.IOException; +import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -31,7 +28,18 @@ import java.util.HashSet; import java.util.Iterator; -// Commons-Logging +// XML +import org.xml.sax.SAXException; + +// Apache +import org.apache.fop.apps.FOPException; +import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.area.extensions.BookmarkData; +import org.apache.fop.fo.Constants; +import org.apache.fop.fo.extensions.Outline; +import org.apache.fop.fo.extensions.Bookmarks; +import org.apache.fop.fonts.FontInfo; +import org.apache.fop.render.Renderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -65,16 +73,85 @@ private static Log log = LogFactory.getLog(AreaTree.class); +private FOUserAgent foUserAgent; + +/** + * the renderer to use to output the area tree + */ +private Renderer renderer; + /** * Constructor. */ -public AreaTree (Renderer renderer) { +public AreaTree (FOUserAgent userAgent, int renderType, +FontInfo fontInfo, OutputStream stream) throws FOPException { + +foUserAgent = userAgent; + +if (foUserAgent.getRendererOverride() != null) { +renderer = foUserAgent.getRendererOverride(); +} else { +renderer = createRenderer(renderType); +renderer.setUserAgent(foUserAgent); +} + +try { +renderer.setupFontInfo(fontInfo); +// check that the "any,normal,400" font exists +if (!fontInfo.isSetupValid()) { +throw new FOPException( +"No default font defined by OutputConverter"); +} +renderer.startRenderer(stream); +} catch (IOException e) { +throw new FOPException(e); +} + // this.atModel = new CachedRenderPagesModel(renderer); setTreeModel(new RenderPagesModel(renderer)); } /** + * Creates a Renderer object based on render-type desired + * @param renderType the type of renderer to use + * @return Renderer the new Renderer instance + * @throws IllegalArgumentException if an unsupported renderer type was requested + */ +private Renderer createRenderer(int renderType) throws IllegalArgumentException { + +switch (renderType) { +case Constants.RENDER_PDF: +return new
cvs commit: xml-fop/src/java/org/apache/fop/tools AreaTreeBuilder.java
gmazza 2004/07/06 18:51:50 Modified:src/java/org/apache/fop/area AreaTree.java AreaTreeModel.java CachedRenderPagesModel.java RenderPagesModel.java StorePagesModel.java src/java/org/apache/fop/fo FObj.java src/java/org/apache/fop/fo/pagination Title.java Removed: src/java/org/apache/fop/tools AreaTreeBuilder.java Log: 1.) Moved the Renderer creation further down from AreaTree to RenderPagesModel (subclass of AreaTreeModel). Still have the issue of the four-param constructor a bit messy, also some of the exceptions I have to declare to be thrown may not be necessary. 2.) Removed encapsulation-breaking methods from AreaTree; dropped the AreaTreeBuilder class as it wasn't conformant with our API and required too many objects to expose internal functionality. 3.) Validity checking added for fo:title, however still won't work as #PCDATA needs around it within FOP, but the Recommendation bans those for fo:title. 4.) isInlineItem() added to FObj, as a quick check for the %inline; parameter entity as defined in spec. Revision ChangesPath 1.15 +16 -97xml-fop/src/java/org/apache/fop/area/AreaTree.java Index: AreaTree.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTree.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- AreaTree.java 6 Jul 2004 05:25:09 - 1.14 +++ AreaTree.java 7 Jul 2004 01:51:50 - 1.15 @@ -18,7 +18,6 @@ package org.apache.fop.area; // Java -import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; @@ -35,11 +34,9 @@ import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.area.extensions.BookmarkData; -import org.apache.fop.fo.Constants; import org.apache.fop.fo.extensions.Outline; import org.apache.fop.fo.extensions.Bookmarks; import org.apache.fop.fonts.FontInfo; -import org.apache.fop.render.Renderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -52,12 +49,12 @@ * The area tree needs to be simple to render and follow the spec * closely. * This area tree has the concept of page sequences. - * Where ever possible information is discarded or optimised to - * keep memory use low. The data is also organised to make it - * possible for renderers to minimise their output. + * Where ever possible information is discarded or optimized to + * keep memory use low. The data is also organized to make it + * possible for renderers to minimize their output. * A page can be saved if not fully resolved and once rendered * a page contains only size and id reference information. - * The area tree pages are organised in a model that depends on the + * The area tree pages are organized in a model that depends on the * type of renderer. */ public class AreaTree { @@ -67,8 +64,10 @@ // hashmap of arraylists containing pages with id area private Map idLocations = new HashMap(); + // list of id's yet to be resolved and arraylists of pages private Map resolve = new HashMap(); + private List treeExtensions = new ArrayList(); private static Log log = LogFactory.getLog(AreaTree.class); @@ -76,97 +75,22 @@ private FOUserAgent foUserAgent; /** - * the renderer to use to output the area tree - */ -private Renderer renderer; - -/** * Constructor. + * @param userAgent FOUserAgent object for process + * @param renderType Desired fo.Constants output type (RENDER_PDF, + * RENDER_PS, etc.) + * @param fontInfo FontInfo object + * @param stream OutputStream */ public AreaTree (FOUserAgent userAgent, int renderType, FontInfo fontInfo, OutputStream stream) throws FOPException { foUserAgent = userAgent; - -if (foUserAgent.getRendererOverride() != null) { -renderer = foUserAgent.getRendererOverride(); -} else { -renderer = createRenderer(renderType); -renderer.setUserAgent(foUserAgent); -} - -try { -renderer.setupFontInfo(fontInfo); -// check that the "any,normal,400" font exists -if (!fontInfo.isSetupValid()) { -throw new FOPException( -"No default font defined by OutputConverter"); -} -renderer.startRenderer(stream); -} catch (IOException e) { -throw new FOPException(e); -} - -// this.atModel = new CachedRenderPagesModel(ren
cvs commit: xml-fop/examples/embedding/java/embedding ExampleDOM2PDF.java ExampleXML2PDF.java
gmazza 2004/07/07 15:15:10 Modified:examples/embedding build.xml examples/embedding/java/embedding ExampleDOM2PDF.java ExampleXML2PDF.java Log: Switch from non-JAXP DOM processing to using JAXP identity transformation for ExampleDOM2PDF example. Patch from Jeremias Maerki. Revision ChangesPath 1.6 +2 -2 xml-fop/examples/embedding/build.xml Index: build.xml === RCS file: /home/cvs/xml-fop/examples/embedding/build.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- build.xml 1 Apr 2004 23:24:57 - 1.5 +++ build.xml 7 Jul 2004 22:15:10 - 1.6 @@ -121,7 +121,7 @@ - + @@ -130,7 +130,7 @@ - + 1.8 +48 -21xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java Index: ExampleDOM2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ExampleDOM2PDF.java 20 Jun 2004 12:35:17 - 1.7 +++ ExampleDOM2PDF.java 7 Jul 2004 22:15:10 - 1.8 @@ -25,6 +25,14 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; +//JAXP +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.Source; +import javax.xml.transform.Result; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXResult; + // DOM import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -33,7 +41,7 @@ // FOP import org.apache.fop.apps.Driver; -import org.apache.fop.apps.FOPException; + /** * This class demonstrates the conversion of a DOM Document to PDF @@ -51,27 +59,46 @@ * @throws IOException In case of an I/O problem * @throws FOPException In case of a FOP problem */ -public void convertDOM2PDF(Document xslfoDoc, File pdf) -throws IOException, FOPException { -// Construct driver -Driver driver = new Driver(); - -// Setup driver -driver.initialize(); - -// Setup Renderer (output format) -driver.setRenderer(Driver.RENDER_PDF); - -// Setup output -OutputStream out = new java.io.FileOutputStream(pdf); -out = new java.io.BufferedOutputStream(out); - +public void convertDOM2PDF(Document xslfoDoc, File pdf) { try { -driver.setOutputStream(out); -driver.render(xslfoDoc); -} finally { -out.close(); +// Construct driver +Driver driver = new Driver(); + +// Setup driver +driver.initialize(); + +// Setup Renderer (output format) +driver.setRenderer(Driver.RENDER_PDF); + +// Setup output +OutputStream out = new java.io.FileOutputStream(pdf); +out = new java.io.BufferedOutputStream(out); + +try { +driver.setOutputStream(out); + +// Setup Identity Transformer +TransformerFactory factory = TransformerFactory.newInstance(); +Transformer transformer = factory.newTransformer(); // identity transformer + +// Setup input for XSLT transformation +Source src = new DOMSource(xslfoDoc); + +// Resulting SAX events (the generated FO) must be piped through to FOP +Result res = new SAXResult(driver.getContentHandler()); + +// Start XSLT transformation and FOP processing +transformer.transform(src, res); +} finally { +out.close(); +} + +System.out.println("Success!"); +} catch (Exception e) { +e.printStackTrace(System.err); +System.exit(-1); } + } /** 1.9 +1 -1 xml-fop/examples/embedding/java/embedding/ExampleXML2PDF.java Index: ExampleXML2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleXML2PDF.java,v retrieving revision 1.8 retrieving re
cvs commit: xml-fop/test/java/org/apache/fop BasicDriverTestCase.java
gmazza 2004/07/07 15:16:53 Modified:test/java/org/apache/fop BasicDriverTestCase.java Log: Switch to JAXP identity transformation for DOM Document example. Revision ChangesPath 1.7 +11 -5 xml-fop/test/java/org/apache/fop/BasicDriverTestCase.java Index: BasicDriverTestCase.java === RCS file: /home/cvs/xml-fop/test/java/org/apache/fop/BasicDriverTestCase.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- BasicDriverTestCase.java 25 Jun 2004 23:35:00 - 1.6 +++ BasicDriverTestCase.java 7 Jul 2004 22:16:53 - 1.7 @@ -27,6 +27,7 @@ import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.sax.SAXResult; import javax.xml.transform.stream.StreamSource; @@ -96,18 +97,23 @@ } /** - * Tests Driver with Document and OutputStream. + * Tests DOM with JAXP and OutputStream generating PostScript. * @throws Exception if anything fails */ public void testFO2PDFWithDOM() throws Exception { File foFile = new File(getBaseDir(), "test/xml/bugtests/block.fo"); ByteArrayOutputStream baout = new ByteArrayOutputStream(); Driver driver = new Driver(); - driver.setOutputStream(baout); driver.setRenderer(Driver.RENDER_PDF); -driver.render(loadDocument(foFile)); -assertTrue("Generated PDF has zero length", baout.size() > 0); + +TransformerFactory factory = TransformerFactory.newInstance(); +Transformer transformer = factory.newTransformer(); //Identity transf. +Source src = new DOMSource(loadDocument(foFile)); +Result res = new SAXResult(driver.getContentHandler()); +transformer.transform(src, res); + +assertTrue("Generated PostScript has zero length", baout.size() > 0); } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/apps Driver.java DocumentInputSource.java DocumentReader.java
gmazza 2004/07/07 16:28:44 Modified:src/java/org/apache/fop/apps Driver.java Removed: src/java/org/apache/fop/apps DocumentInputSource.java DocumentReader.java Log: Removed DocumentReader/DocumentInputSource from the API in favor of the JAXP identity transformation for DOM Tree Handling. JAXP seems to be the right way for us to go for 1.0 for DOM documents, and I think we can make the change now, with few people using HEAD in production. Still, we'll listen to the user email list on this change as a judge of whether these classes need to return. Revision ChangesPath 1.80 +8 -27 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.79 retrieving revision 1.80 diff -u -r1.79 -r1.80 --- Driver.java 6 Jul 2004 05:25:09 - 1.79 +++ Driver.java 7 Jul 2004 23:28:44 - 1.80 @@ -66,12 +66,14 @@ * enables runtime determination of ElementMapping(s). * * Once the Driver is set up, the render method - * is called. Depending on whether DOM or SAX is being used, the - * invocation of the method is either render(Document) or - * buildFOTree(Parser, InputSource) respectively. + * is called. The invocation of the method is + * render(Parser, InputSource). * * A third possibility may be used to build the FO Tree, namely * calling getContentHandler() and firing the SAX events yourself. + * This will work either for DOM Tree input or SAX. See the embed + * examples on the FOP web page for more details or in the + * examples\embedding directory of the main distribution for more details. * * Once the FO Tree is built, the format() and render() methods may be * called in that order. @@ -375,24 +377,9 @@ } /** - * This method overloads the main render() method, adding the convenience - * of using a DOM Document as input. - * @see #render(XMLReader, InputSource) - * @param document the DOM document to read from - * @throws FOPException if anything goes wrong. - */ -public synchronized void render(Document document) -throws FOPException { -DocumentInputSource source = new DocumentInputSource(document); -DocumentReader reader = new DocumentReader(); -render(reader, source); -} - -/** * Runs the formatting and renderering process using the previously set * parser, input source, renderer and output stream. - * If no parser was set, and the input source is not a dom document, - * get a default SAX parser. + * If no parser was set, get a default SAX parser. * @throws IOException in case of IO errors. * @throws FOPException if anything else goes wrong. */ @@ -410,15 +397,9 @@ } if (reader == null) { -if (!(source instanceof DocumentInputSource)) { -reader = FOFileHandler.createParser(); -} +reader = FOFileHandler.createParser(); } -if (source instanceof DocumentInputSource) { -render(((DocumentInputSource)source).getDocument()); -} else { -render(reader, source); -} +render(reader, source); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/servlet FopServlet.java
gmazza 2004/07/08 18:48:58 Modified:examples/embedding/java/embedding ExampleDOM2PDF.java ExampleFO2PDF.java ExampleObj2PDF.java ExampleXML2PDF.java src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/servlet FopServlet.java Log: Made Driver.initialize() private, more in line with 0.20.5, which doesn't have such a method. Revision ChangesPath 1.9 +1 -4 xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java Index: ExampleDOM2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ExampleDOM2PDF.java 7 Jul 2004 22:15:10 - 1.8 +++ ExampleDOM2PDF.java 9 Jul 2004 01:48:58 - 1.9 @@ -64,9 +64,6 @@ // Construct driver Driver driver = new Driver(); -// Setup driver -driver.initialize(); - // Setup Renderer (output format) driver.setRenderer(Driver.RENDER_PDF); 1.8 +0 -3 xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java Index: ExampleFO2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ExampleFO2PDF.java20 Jun 2004 12:35:17 - 1.7 +++ ExampleFO2PDF.java9 Jul 2004 01:48:58 - 1.8 @@ -48,9 +48,6 @@ // Construct driver Driver driver = new Driver(); -// Setup driver -driver.initialize(); - // Setup Renderer (output format) driver.setRenderer(Driver.RENDER_PDF); 1.8 +0 -3 xml-fop/examples/embedding/java/embedding/ExampleObj2PDF.java Index: ExampleObj2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleObj2PDF.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ExampleObj2PDF.java 20 Jun 2004 12:35:17 - 1.7 +++ ExampleObj2PDF.java 9 Jul 2004 01:48:58 - 1.8 @@ -58,9 +58,6 @@ // Construct driver Driver driver = new Driver(); -// Setup driver -driver.initialize(); - // Setup Renderer (output format) driver.setRenderer(Driver.RENDER_PDF); 1.10 +0 -3 xml-fop/examples/embedding/java/embedding/ExampleXML2PDF.java Index: ExampleXML2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleXML2PDF.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ExampleXML2PDF.java 7 Jul 2004 22:15:10 - 1.9 +++ ExampleXML2PDF.java 9 Jul 2004 01:48:58 - 1.10 @@ -69,9 +69,6 @@ // Construct driver Driver driver = new Driver(); -// Setup logger -driver.initialize(); - // Setup Renderer (output format) driver.setRenderer(Driver.RENDER_PDF); 1.81 +2 -2 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.80 retrieving revision 1.81 diff -u -r1.80 -r1.81 --- Driver.java 7 Jul 2004 23:28:44 - 1.80 +++ Driver.java 9 Jul 2004 01:48:58 - 1.81 @@ -158,7 +158,7 @@ /** * Initializes the Driver object. */ -public void initialize() { +private void initialize() { if (isInitialized()) { throw new IllegalStateException("Driver already initialized"); } 1.8 +0 -1 xml-fop/src/java/org/apache/fop/servlet/FopServlet.java Index: FopServlet.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/servlet/FopServlet.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- FopServlet.java 20 Jun 2004 12:35:17 - 1.7 +++ FopServlet.java 9 Jul 2004 01:48:58 - 1.8 @@ -203,7 +203,6 @@ //Setup FOP Driver driver = new Driver(); driver.setRenderer(Driver.RENDER_PDF); -dr
cvs commit: xml-fop/src/java/org/apache/fop/servlet FopPrintServlet.java
gmazza 2004/07/11 15:55:09 Modified:src/java/org/apache/fop/servlet FopPrintServlet.java Log: Moved FOPPrintServlet from using XSLTInputHandler to JAXP. Revision ChangesPath 1.14 +31 -10xml-fop/src/java/org/apache/fop/servlet/FopPrintServlet.java Index: FopPrintServlet.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/servlet/FopPrintServlet.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- FopPrintServlet.java 25 Jun 2004 23:35:00 - 1.13 +++ FopPrintServlet.java 11 Jul 2004 22:55:08 - 1.14 @@ -22,18 +22,30 @@ import java.io.InputStream; import java.io.PrintWriter; +// JAXP import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.stream.StreamSource; +// XML import org.apache.commons.logging.impl.SimpleLog; import org.apache.commons.logging.Log; import org.apache.fop.apps.Driver; -import org.apache.fop.apps.XSLTInputHandler; import org.xml.sax.InputSource; +//Java +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; + + /** * Example servlet to generate a fop printout from a servlet. * Printing goes to the default printer on host where the servlet executes. @@ -55,7 +67,6 @@ * @version $Id$ * (todo) Doesn't work since there's no AWTRenderer at the moment. Revisit when * available. - * (todo) Don't use XSLTInputHandler anymore * (todo) Ev. add caching mechanism for Templates objects */ public class FopPrintServlet extends HttpServlet { @@ -101,10 +112,7 @@ InputStream file = new java.io.FileInputStream(foParam); renderFO(new InputSource(file), response); } else if ((xmlParam != null) && (xsltParam != null)) { -XSLTInputHandler input = - new XSLTInputHandler(new File(xmlParam), - new File(xsltParam), null); -renderXML(input, response); +renderXML(new File(xmlParam), new File(xsltParam), response); } else { response.setContentType("text/html"); @@ -142,16 +150,29 @@ /** * Renders an FO generated using an XML and a stylesheet to the default printer. - * @param input XSLTInputHandler to use - * @param response Response to write to + * @param xmlfile XML file object + * @param xsltfile XSLT stylesheet + * @param response HTTP response object * @throws ServletException In case of a problem */ -public void renderXML(XSLTInputHandler input, +public void renderXML(File xmlfile, File xsltfile, HttpServletResponse response) throws ServletException { try { Driver driver = new Driver(); driver.setRenderer(Driver.RENDER_PRINT); -driver.render(input.getParser(), input.getInputSource()); + +// Setup XSLT +TransformerFactory factory = TransformerFactory.newInstance(); +Transformer transformer = factory.newTransformer(new StreamSource(xsltfile)); + +// Setup input for XSLT transformation +Source src = new StreamSource(xmlfile); + +// Resulting SAX events (the generated FO) must be piped through to FOP +Result res = new SAXResult(driver.getContentHandler()); + +// Start XSLT transformation and FOP processing +transformer.transform(src, res); reportOK (response); } catch (Exception ex) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java ContentLayoutManager.java LMiter.java LayoutManager.java PageLayoutManager.java
gmazza 2004/07/12 17:16:22 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/area/extensions BookmarkData.java src/java/org/apache/fop/fo FOInputHandler.java src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java ContentLayoutManager.java LMiter.java LayoutManager.java PageLayoutManager.java Added: src/java/org/apache/fop/area AreaTreeHandler.java Removed: src/java/org/apache/fop/area AreaTree.java src/java/org/apache/fop/fo FOTreeHandler.java Log: 1.) Combined the AreaTree and FOTreeHandler into a new AreaTreeHandler object. FOTreeHandler was primarily acting as an AreaTreeHandler, and AreaTree had a 1-to-1 relationship with it. Comments most welcome. 2.) Created convenience methods in FOInputHandler for those subclasses which do not handle certain signals/events called from the formatting objects (i.e., AreaTreeHandler). Revision ChangesPath 1.82 +3 -3 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.81 retrieving revision 1.82 diff -u -r1.81 -r1.82 --- Driver.java 9 Jul 2004 01:48:58 - 1.81 +++ Driver.java 13 Jul 2004 00:16:22 - 1.82 @@ -34,7 +34,7 @@ import org.apache.fop.fo.ElementMapping; import org.apache.fop.fo.FOTreeBuilder; import org.apache.fop.fo.FOInputHandler; -import org.apache.fop.fo.FOTreeHandler; +import org.apache.fop.area.AreaTreeHandler; import org.apache.fop.render.awt.AWTRenderer; import org.apache.fop.render.mif.MIFHandler; import org.apache.fop.render.rtf.RTFHandler; @@ -314,7 +314,7 @@ "Renderer must be set using setRenderer(int renderType)"); } -foInputHandler = new FOTreeHandler(foUserAgent, rendererType, +foInputHandler = new AreaTreeHandler(foUserAgent, rendererType, stream); } 1.1 xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java Index: AreaTreeHandler.java === /* * Copyright 1999-2004 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: AreaTreeHandler.java,v 1.1 2004/07/13 00:16:22 gmazza Exp $ */ package org.apache.fop.area; // Java import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; import java.util.Iterator; // XML import org.xml.sax.SAXException; // Apache import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.area.extensions.BookmarkData; import org.apache.fop.fo.FOInputHandler; import org.apache.fop.fo.extensions.Outline; import org.apache.fop.fo.extensions.Bookmarks; import org.apache.fop.fo.pagination.PageSequence; import org.apache.fop.fonts.FontInfo; import org.apache.fop.layoutmgr.AddLMVisitor; import org.apache.fop.layoutmgr.ContentLayoutManager; import org.apache.fop.layoutmgr.InlineStackingLayoutManager; import org.apache.fop.layoutmgr.LMiter; import org.apache.fop.layoutmgr.PageLayoutManager; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; // Java import java.io.OutputStream; import java.util.HashSet; import java.util.Iterator; /** * Area tree handler for formatting objects. * * Concepts: * The area tree is to be as small as possible. With minimal classes * and data to fully represent an area tree for formatting objects. * The area tree needs to be simple to render and follow the spec * closely. * This area tree has the concept of page sequences. * Where ever possible information is discarded or optimized to * keep memory use low. The data is also organized to make it * possible for renderers to minimize their output. * A page can be saved if not fully resolved and once rendered * a page contains only size and id reference information. * The area tree pages
cvs commit: xml-fop/src/java/org/apache/fop/fo FOTreeBuilder.java
gmazza 2004/07/12 22:25:26 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/fo FOTreeBuilder.java Log: 1. Removed Driver.setXMLReader(), this can be done via JAXP. 2. Moved the business logic for creating FOTreeBuilder's FOInputHandler object from Driver to FOTreeBuilder. Revision ChangesPath 1.83 +18 -67xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.82 retrieving revision 1.83 diff -u -r1.82 -r1.83 --- Driver.java 13 Jul 2004 00:16:22 - 1.82 +++ Driver.java 13 Jul 2004 05:25:26 - 1.83 @@ -27,17 +27,12 @@ import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; -import org.w3c.dom.Document; // FOP import org.apache.fop.fo.Constants; import org.apache.fop.fo.ElementMapping; import org.apache.fop.fo.FOTreeBuilder; -import org.apache.fop.fo.FOInputHandler; -import org.apache.fop.area.AreaTreeHandler; import org.apache.fop.render.awt.AWTRenderer; -import org.apache.fop.render.mif.MIFHandler; -import org.apache.fop.render.rtf.RTFHandler; /** * Primary class that drives overall FOP process. @@ -94,14 +89,9 @@ private FOTreeBuilder treeBuilder; /** - * the renderer type code given by setRenderer + * the render type code given by setRender */ -private int rendererType = NOT_SET; - -/** - * the SAX ContentHandler - */ -private FOInputHandler foInputHandler; +private int renderType = NOT_SET; /** * the source of the FO file @@ -114,11 +104,6 @@ private OutputStream stream; /** - * The XML parser to use when building the FO tree - */ -private XMLReader reader; - -/** * The system resources that FOP will use */ private FOUserAgent foUserAgent = null; @@ -134,10 +119,10 @@ * Constructor for AWTRenderer, which reuses the * same renderer instance for document reloading */ -public Driver(AWTRenderer renderer) { +public Driver(AWTRenderer render) { this(); -rendererType = RENDER_AWT; -foUserAgent = renderer.getUserAgent(); +renderType = RENDER_AWT; +foUserAgent = render.getUserAgent(); } /** @@ -176,7 +161,6 @@ public synchronized void reset() { source = null; stream = null; -reader = null; if (treeBuilder != null) { treeBuilder.reset(); } @@ -207,7 +191,7 @@ } /** - * Set the OutputStream to use to output the result of the Renderer + * Set the OutputStream to use to output the result of the Render * (if applicable) * @param stream the stream to output the result of rendering to */ @@ -231,15 +215,6 @@ } /** - * Sets the reader used when reading in the source. If not set, - * this defaults to a basic SAX parser. - * @param reader the reader to use. - */ -public void setXMLReader(XMLReader reader) { -this.reader = reader; -} - -/** * Method to set the rendering type desired. Must be one of * * Driver.RENDER_PDF @@ -258,12 +233,12 @@ */ public void setRenderer(int renderType) throws IllegalArgumentException { if (renderType < RENDER_MIN_CONST || renderType > RENDER_MAX_CONST) { -rendererType = NOT_SET; +renderType = NOT_SET; throw new IllegalArgumentException( -"Invalid renderer ID#" + renderType); +"Invalid render ID#" + renderType); } -this.rendererType = renderType; +this.renderType = renderType; } /** @@ -285,7 +260,7 @@ } /** - * Determines which SAX ContentHandler is appropriate for the rendererType. + * Determines which SAX ContentHandler is appropriate for the renderType. * Structure renderers (e.g. MIF & RTF) each have a specialized * ContentHandler that directly place data into the output stream. Layout * renderers (e.g. PDF & PostScript) use a ContentHandler that builds an FO @@ -298,27 +273,11 @@ initialize(); } -if (rendererType != RENDER_PRINT && rendererType != RENDER_AWT) { +if (renderType != RENDER_PRINT && renderType != RENDER_AWT) { validateOutputStream(); } -// TODO: - do this stuff in a better way -// PIJ: I guess the structure handler should
cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
gmazza 2004/07/14 15:42:29 Modified:examples/embedding/java/embedding ExampleFO2PDF.java Log: Updated FO->PDF example to use JAXP. Revision ChangesPath 1.9 +30 -19xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java Index: ExampleFO2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ExampleFO2PDF.java9 Jul 2004 01:48:58 - 1.8 +++ ExampleFO2PDF.java14 Jul 2004 22:42:29 - 1.9 @@ -24,8 +24,13 @@ import java.io.InputStream; import java.io.OutputStream; -// SAX -import org.xml.sax.InputSource; +//JAXP +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.Source; +import javax.xml.transform.Result; +import javax.xml.transform.stream.StreamSource; +import javax.xml.transform.sax.SAXResult; // FOP import org.apache.fop.apps.Driver; @@ -45,28 +50,34 @@ */ public void convertFO2PDF(File fo, File pdf) throws IOException, FOPException { -// Construct driver -Driver driver = new Driver(); +OutputStream out = null; -// Setup Renderer (output format) -driver.setRenderer(Driver.RENDER_PDF); - -// Setup output -OutputStream out = new java.io.FileOutputStream(pdf); -out = new java.io.BufferedOutputStream(out); try { +// Construct driver and setup output format +Driver driver = new Driver(); +driver.setRenderer(Driver.RENDER_PDF); + +// Setup output +out = new java.io.FileOutputStream(pdf); +out = new java.io.BufferedOutputStream(out); driver.setOutputStream(out); -//Setup input -InputStream in = new java.io.FileInputStream(fo); -try { -driver.setInputSource(new InputSource(in)); +// Setup JAXP using identity transformer +TransformerFactory factory = TransformerFactory.newInstance(); +Transformer transformer = factory.newTransformer(); // identity transformer + +// Setup input for XSLT transformation +Source src = new StreamSource(fo); -//Process FO -driver.run(); -} finally { -in.close(); -} +// Resulting SAX events (the generated FO) must be piped through to FOP +Result res = new SAXResult(driver.getContentHandler()); + +// Start XSLT transformation and FOP processing +transformer.transform(src, res); + +} catch (Exception e) { +e.printStackTrace(System.err); +System.exit(-1); } finally { out.close(); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
gmazza 2004/07/14 15:45:27 Modified:examples/embedding/java/embedding ExampleFO2PDF.java Log: Removed BufferedOutputStream line as unneeded in this case (Unsure if helpful for performance.) Revision ChangesPath 1.10 +0 -1 xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java Index: ExampleFO2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ExampleFO2PDF.java14 Jul 2004 22:42:29 - 1.9 +++ ExampleFO2PDF.java14 Jul 2004 22:45:27 - 1.10 @@ -59,7 +59,6 @@ // Setup output out = new java.io.FileOutputStream(pdf); -out = new java.io.BufferedOutputStream(out); driver.setOutputStream(out); // Setup JAXP using identity transformer - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/test/java/org/apache/fop BasicDriverTestCase.java
gmazza 2004/07/14 16:01:56 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/servlet FopPrintServlet.java test/java/org/apache/fop BasicDriverTestCase.java Log: Removed the Driver.run() method in favor of JAXP. Revision ChangesPath 1.84 +5 -60 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.83 retrieving revision 1.84 diff -u -r1.83 -r1.84 --- Driver.java 13 Jul 2004 05:25:26 - 1.83 +++ Driver.java 14 Jul 2004 23:01:56 - 1.84 @@ -37,18 +37,11 @@ /** * Primary class that drives overall FOP process. * - * The simplest way to use this is to instantiate it with the - * InputSource and OutputStream, then set the renderer desired, and - * calling run(); + * JAXP is the standard method of embedding FOP in Java programs. + * Please check our embedding page (http://xml.apache.org/fop/embedding.html) + * for samples (these are also available within the distribution in + * FOP_DIR\examples\embedding) * - * Here is an example use of Driver which outputs PDF: - * - * - * Driver driver = new Driver(new InputSource (args[0]), - * new FileOutputStream(args[1])); - * driver.setRenderer(RENDER_PDF); - * driver.run(); - * * If necessary, calling classes can call into the lower level * methods to setup and * render. Methods within FOUserAgent can be called to set the @@ -64,15 +57,6 @@ * is called. The invocation of the method is * render(Parser, InputSource). * - * A third possibility may be used to build the FO Tree, namely - * calling getContentHandler() and firing the SAX events yourself. - * This will work either for DOM Tree input or SAX. See the embed - * examples on the FOP web page for more details or in the - * examples\embedding directory of the main distribution for more details. - * - * Once the FO Tree is built, the format() and render() methods may be - * called in that order. - * * Here is an example use of Driver which outputs to AWT: * * @@ -94,11 +78,6 @@ private int renderType = NOT_SET; /** - * the source of the FO file - */ -private InputSource source; - -/** * the stream to use to output the results of the renderer */ private OutputStream stream; @@ -130,9 +109,8 @@ * @param source InputSource to take the XSL-FO input from * @param stream Target output stream */ -public Driver(InputSource source, OutputStream stream) { +public Driver(OutputStream stream) { this(); -this.source = source; this.stream = stream; } @@ -159,7 +137,6 @@ * The output stream is cleared. The renderer is cleared. */ public synchronized void reset() { -source = null; stream = null; if (treeBuilder != null) { treeBuilder.reset(); @@ -206,15 +183,6 @@ } /** - * Set the source for the FO document. This can be a normal SAX - * InputSource, or an DocumentInputSource containing a DOM document. - * @see DocumentInputSource - */ -public void setInputSource(InputSource source) { -this.source = source; -} - -/** * Method to set the rendering type desired. Must be one of * * Driver.RENDER_PDF @@ -329,28 +297,5 @@ } catch (IOException e) { throw new FOPException(e); } -} - -/** - * Runs the formatting and rendering process using the previously set - * parser, input source, renderer and output stream. - * If no parser was set, get a default SAX parser. - * @throws IOException in case of IO errors. - * @throws FOPException if anything else goes wrong. - */ -public synchronized void run() throws IOException, FOPException { -if (!isInitialized()) { -initialize(); -} - -if (renderType == NOT_SET) { -renderType = RENDER_PDF; -} - -if (source == null) { -throw new FOPException("InputSource is not set."); -} - -render(FOFileHandler.createParser(), source); } } 1.15 +16 -4 xml-fop/src/java/org/apache/fop/servlet/FopPrintServlet.java Index: FopPrintServlet.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/servlet/FopPrintServlet.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- FopPrintServlet.java 11 Jul 2004 22:55:08 -
cvs commit: xml-fop/src/java/org/apache/fop/apps Driver.java
gmazza 2004/07/14 16:05:44 Modified:src/java/org/apache/fop/apps Driver.java Log: Minor edit, fixed commenting. Revision ChangesPath 1.85 +1 -2 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.84 retrieving revision 1.85 diff -u -r1.84 -r1.85 --- Driver.java 14 Jul 2004 23:01:56 - 1.84 +++ Driver.java 14 Jul 2004 23:05:44 - 1.85 @@ -35,7 +35,7 @@ import org.apache.fop.render.awt.AWTRenderer; /** - * Primary class that drives overall FOP process. + * Primary class that drives the overall FOP process. * * JAXP is the standard method of embedding FOP in Java programs. * Please check our embedding page (http://xml.apache.org/fop/embedding.html) @@ -106,7 +106,6 @@ /** * Convenience constructor for directly setting input and output. - * @param source InputSource to take the XSL-FO input from * @param stream Target output stream */ public Driver(OutputStream stream) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
gmazza 2004/07/15 20:29:57 Modified:examples/embedding/java/embedding ExampleFO2PDF.java Log: *Temporary* commit showing how this process works via SAXParserFactory; including just for future reference should we get a question on this class or wish to document this method on our web pages in the future. Revision ChangesPath 1.11 +23 -5 xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java Index: ExampleFO2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ExampleFO2PDF.java14 Jul 2004 22:45:27 - 1.10 +++ ExampleFO2PDF.java16 Jul 2004 03:29:57 - 1.11 @@ -21,6 +21,8 @@ // Java import java.io.File; import java.io.IOException; +import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; @@ -30,7 +32,11 @@ import javax.xml.transform.Source; import javax.xml.transform.Result; import javax.xml.transform.stream.StreamSource; +import javax.xml.parsers.SAXParserFactory; import javax.xml.transform.sax.SAXResult; +import org.xml.sax.XMLReader; +import org.xml.sax.InputSource; + // FOP import org.apache.fop.apps.Driver; @@ -57,23 +63,35 @@ Driver driver = new Driver(); driver.setRenderer(Driver.RENDER_PDF); -// Setup output +// Setup output stream +// For performance, also buffering output stream. +// Note: buffering recommended for FileOutputStreams +// but not for ByteArrayOutputStreams. out = new java.io.FileOutputStream(pdf); +out = new java.io.BufferedOutputStream(out); driver.setOutputStream(out); +InputSource src = new InputSource(new FileInputStream(fo)); +SAXParserFactory factory = SAXParserFactory.newInstance(); +factory.setNamespaceAware(true); +XMLReader parser = factory.newSAXParser().getXMLReader(); +parser.setContentHandler(driver.getContentHandler()); +parser.parse(src); + +/* +// Setup input stream +Source src = new StreamSource(fo); + // Setup JAXP using identity transformer TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); // identity transformer -// Setup input for XSLT transformation -Source src = new StreamSource(fo); - // Resulting SAX events (the generated FO) must be piped through to FOP Result res = new SAXResult(driver.getContentHandler()); // Start XSLT transformation and FOP processing transformer.transform(src, res); - +*/ } catch (Exception e) { e.printStackTrace(System.err); System.exit(-1); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
gmazza 2004/07/15 20:36:14 Modified:examples/embedding/java/embedding ExampleFO2PDF.java Log: Back to transform example, reverted yesterday's change that removed BufferedOutputStream. Revision ChangesPath 1.12 +10 -24xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java Index: ExampleFO2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- ExampleFO2PDF.java16 Jul 2004 03:29:57 - 1.11 +++ ExampleFO2PDF.java16 Jul 2004 03:36:14 - 1.12 @@ -19,11 +19,10 @@ package embedding; // Java +import java.io.BufferedOutputStream; import java.io.File; -import java.io.IOException; -import java.io.FileInputStream; import java.io.FileOutputStream; -import java.io.InputStream; +import java.io.IOException; import java.io.OutputStream; //JAXP @@ -32,10 +31,7 @@ import javax.xml.transform.Source; import javax.xml.transform.Result; import javax.xml.transform.stream.StreamSource; -import javax.xml.parsers.SAXParserFactory; import javax.xml.transform.sax.SAXResult; -import org.xml.sax.XMLReader; -import org.xml.sax.InputSource; // FOP @@ -63,35 +59,25 @@ Driver driver = new Driver(); driver.setRenderer(Driver.RENDER_PDF); -// Setup output stream -// For performance, also buffering output stream. -// Note: buffering recommended for FileOutputStreams -// but not for ByteArrayOutputStreams. -out = new java.io.FileOutputStream(pdf); -out = new java.io.BufferedOutputStream(out); +// Setup output stream. Note: Using BufferedOutputStream +// for performance reasons (helpful with FileOutputStreams). +out = new FileOutputStream(pdf); +out = new BufferedOutputStream(out); driver.setOutputStream(out); -InputSource src = new InputSource(new FileInputStream(fo)); -SAXParserFactory factory = SAXParserFactory.newInstance(); -factory.setNamespaceAware(true); -XMLReader parser = factory.newSAXParser().getXMLReader(); -parser.setContentHandler(driver.getContentHandler()); -parser.parse(src); - -/* -// Setup input stream -Source src = new StreamSource(fo); - // Setup JAXP using identity transformer TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); // identity transformer +// Setup input stream +Source src = new StreamSource(fo); + // Resulting SAX events (the generated FO) must be piped through to FOP Result res = new SAXResult(driver.getContentHandler()); // Start XSLT transformation and FOP processing transformer.transform(src, res); -*/ + } catch (Exception e) { e.printStackTrace(System.err); System.exit(-1); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo FOTreeBuilder.java
gmazza 2004/07/15 22:10:32 Modified:src/java/org/apache/fop/apps Driver.java FOUserAgent.java src/java/org/apache/fop/fo FOTreeBuilder.java Log: Moved user-defined ElementMapping initialization from Driver to FOUserAgent. Moved only "string" method, the version we use internally--probably sufficient for others' work as well. (Note: an additional unused FOUserAgent object will be created in driver during command-line use--cp. its no-param constructor vs. setUserAgent() call in apps.Fop; this will need to be ironed out at some time.) Revision ChangesPath 1.86 +4 -62 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.85 retrieving revision 1.86 diff -u -r1.85 -r1.86 --- Driver.java 14 Jul 2004 23:05:44 - 1.85 +++ Driver.java 16 Jul 2004 05:10:32 - 1.86 @@ -30,7 +30,6 @@ // FOP import org.apache.fop.fo.Constants; -import org.apache.fop.fo.ElementMapping; import org.apache.fop.fo.FOTreeBuilder; import org.apache.fop.render.awt.AWTRenderer; @@ -47,11 +46,7 @@ * render. Methods within FOUserAgent can be called to set the * Renderer to use, the (possibly multiple) ElementMapping(s) to * use and the OutputStream to use to output the results of the - * rendering (where applicable). In the case of - * ElementMapping(s), the Driver may be supplied either with the - * object itself, or the name of the class, in which case Driver will - * instantiate the class itself. The advantage of the latter is it - * enables runtime determination of ElementMapping(s). + * rendering (where applicable). * * Once the Driver is set up, the render method * is called. The invocation of the method is @@ -68,11 +63,6 @@ public class Driver implements Constants { /** - * the FO tree builder - */ -private FOTreeBuilder treeBuilder; - -/** * the render type code given by setRender */ private int renderType = NOT_SET; @@ -91,6 +81,7 @@ * Main constructor for the Driver class. */ public Driver() { +foUserAgent = new FOUserAgent(); stream = null; } @@ -113,23 +104,6 @@ this.stream = stream; } -private boolean isInitialized() { -return (treeBuilder != null); -} - -/** - * Initializes the Driver object. - */ -private void initialize() { -if (isInitialized()) { -throw new IllegalStateException("Driver already initialized"); -} -treeBuilder = new FOTreeBuilder(); -if (foUserAgent == null) { -foUserAgent = new FOUserAgent(); -} -} - /** * Resets the Driver so it can be reused. Property and element * mappings are reset to defaults. @@ -137,9 +111,6 @@ */ public synchronized void reset() { stream = null; -if (treeBuilder != null) { -treeBuilder.reset(); -} } /** @@ -148,10 +119,6 @@ * @param agent FOUserAgent to use */ public void setUserAgent(FOUserAgent agent) throws FOPException { -if (foUserAgent != null) { -throw new IllegalStateException("FOUserAgent " + -"instance already set."); -} foUserAgent = agent; } @@ -160,9 +127,6 @@ * @return the user agent */ public FOUserAgent getUserAgent() { -if (foUserAgent == null) { -foUserAgent = new FOUserAgent(); -} return foUserAgent; } @@ -209,24 +173,6 @@ } /** - * Add the given element mapping. - * An element mapping maps element names to Java classes. - * - * @param mapping the element mappingto add - */ -public void addElementMapping(ElementMapping mapping) { -treeBuilder.addElementMapping(mapping); -} - -/** - * Add the element mapping with the given class name. - * @param mappingClassName the class name representing the element mapping. - */ -public void addElementMapping(String mappingClassName) { -treeBuilder.addElementMapping(mappingClassName); -} - -/** * Determines which SAX ContentHandler is appropriate for the renderType. * Structure renderers (e.g. MIF & RTF) each have a specialized * ContentHandler that directly place data into the output stream. Layout @@ -236,16 +182,12 @@ * @throws FOPException if setting up the ContentHandler fails */ public ContentHandler getCon
cvs commit: xml-fop/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc RtfListTable.java
gmazza 2004/07/16 03:52:03 Modified:src/java/org/apache/fop/render/rtf/rtflib/rtfdoc RtfListTable.java Log: Null pointer check added to code, to stop NPE error (unsure if other problems also present). Revision ChangesPath 1.5 +4 -2 xml-fop/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfListTable.java Index: RtfListTable.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfListTable.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- RtfListTable.java 27 Feb 2004 17:54:01 - 1.4 +++ RtfListTable.java 16 Jul 2004 10:52:02 - 1.5 @@ -188,7 +188,9 @@ writeOneAttributeNS(LIST_INDENT, attrib.getValue(LIST_INDENT)); RtfListItem item = (RtfListItem)list.getChildren().get(0); -item.getRtfListStyle().writeLevelGroup(this); +if (item != null) { +item.getRtfListStyle().writeLevelGroup(this); +} writeGroupMark(false); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/tools TestConverter.java
gmazza 2004/07/17 17:50:08 Modified:src/java/org/apache/fop/apps Driver.java Fop.java src/java/org/apache/fop/fo FOTreeBuilder.java src/java/org/apache/fop/render/awt AWTRenderer.java src/java/org/apache/fop/render/awt/viewer PreviewDialog.java src/java/org/apache/fop/tools TestConverter.java Log: 1. New constructor for Driver created, takes FOUserAgent constructor. Used for both CLI and AWTRenderer. (Thanks to Simon Pepping) 2. Removed Driver(AWTRenderer) constructor. 3. OutputStream validation moved to FOTreeBuilder. 4. Driver.reset() removed, not currently serving a purpose. Revision ChangesPath 1.87 +6 -34 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.86 retrieving revision 1.87 diff -u -r1.86 -r1.87 --- Driver.java 16 Jul 2004 05:10:32 - 1.86 +++ Driver.java 18 Jul 2004 00:50:08 - 1.87 @@ -31,7 +31,6 @@ // FOP import org.apache.fop.fo.Constants; import org.apache.fop.fo.FOTreeBuilder; -import org.apache.fop.render.awt.AWTRenderer; /** * Primary class that drives the overall FOP process. @@ -48,10 +47,6 @@ * use and the OutputStream to use to output the results of the * rendering (where applicable). * - * Once the Driver is set up, the render method - * is called. The invocation of the method is - * render(Parser, InputSource). - * * Here is an example use of Driver which outputs to AWT: * * @@ -70,7 +65,7 @@ /** * the stream to use to output the results of the renderer */ -private OutputStream stream; +private OutputStream stream = null; /** * The system resources that FOP will use @@ -82,17 +77,6 @@ */ public Driver() { foUserAgent = new FOUserAgent(); -stream = null; -} - -/** - * Constructor for AWTRenderer, which reuses the - * same renderer instance for document reloading - */ -public Driver(AWTRenderer render) { -this(); -renderType = RENDER_AWT; -foUserAgent = render.getUserAgent(); } /** @@ -105,12 +89,11 @@ } /** - * Resets the Driver so it can be reused. Property and element - * mappings are reset to defaults. - * The output stream is cleared. The renderer is cleared. + * Constructor with FOUserAgent + * Used by CLI, AWTRenderer */ -public synchronized void reset() { -stream = null; +public Driver(FOUserAgent ua) { +foUserAgent = ua; } /** @@ -139,12 +122,6 @@ this.stream = stream; } -private void validateOutputStream() { -if (this.stream == null) { -throw new IllegalStateException("OutputStream has not been set"); -} -} - /** * Method to set the rendering type desired. Must be one of * @@ -182,11 +159,6 @@ * @throws FOPException if setting up the ContentHandler fails */ public ContentHandler getContentHandler() throws FOPException { - -if (renderType != RENDER_PRINT && renderType != RENDER_AWT) { - validateOutputStream(); -} - return new FOTreeBuilder(renderType, foUserAgent, stream); } 1.16 +3 -4 xml-fop/src/java/org/apache/fop/apps/Fop.java Index: Fop.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Fop.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- Fop.java 26 Jun 2004 19:37:13 - 1.15 +++ Fop.java 18 Jul 2004 00:50:08 - 1.16 @@ -41,11 +41,10 @@ BufferedOutputStream bos = null; try { -Driver driver = new Driver(); options = new CommandLineOptions(args); - foUserAgent = options.getFOUserAgent(); -driver.setUserAgent(foUserAgent); + +Driver driver = new Driver(foUserAgent); driver.setRenderer(options.getRenderer()); try { 1.38 +9 -0 xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java Index: FOTreeBuilder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- FOTreeBuilder.java16 Jul 2004 05:10:32 - 1.37 +++ FOTreeBuilder.java18 Jul 2004 00:50:08 - 1.38
cvs commit: xml-fop/src/java/org/apache/fop/apps Driver.java
gmazza 2004/07/17 18:25:34 Modified:src/java/org/apache/fop/apps Driver.java Log: Removed the Driver(OutputStream) convenience constructor as not particularly helpful, and a can of worms given all the possible permutations of constructors that could be created. Revision ChangesPath 1.88 +1 -10 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- Driver.java 18 Jul 2004 00:50:08 - 1.87 +++ Driver.java 18 Jul 2004 01:25:34 - 1.88 @@ -80,15 +80,6 @@ } /** - * Convenience constructor for directly setting input and output. - * @param stream Target output stream - */ -public Driver(OutputStream stream) { -this(); -this.stream = stream; -} - -/** * Constructor with FOUserAgent * Used by CLI, AWTRenderer */ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/test/java/org/apache/fop BasicDriverTestCase.java GenericFOPTestCase.java
gmazza 2004/07/18 22:33:35 Modified:examples/embedding build.xml examples/embedding/java/embedding ExampleDOM2PDF.java ExampleFO2PDF.java ExampleFO2PDFUsingSAX.java ExampleObj2PDF.java ExampleXML2PDF.java src/documentation/content/xdocs embedding.xml src/java/org/apache/fop/apps Driver.java Fop.java src/java/org/apache/fop/fo FOTreeBuilder.java src/java/org/apache/fop/render/awt/viewer PreviewDialog.java src/java/org/apache/fop/servlet FopPrintServlet.java FopServlet.java src/java/org/apache/fop/tools TestConverter.java src/java/org/apache/fop/tools/anttasks Fop.java test/java/org/apache/fop BasicDriverTestCase.java GenericFOPTestCase.java Log: 1.) Driver constructor modified to require RenderType, and setter functions for RenderType and FOUserAgent removed, to allow for better checking of a valid Driver object at time of construction. (Also, will reduce need to validate Driver object should it be a parameter to a method.) 2.) Added validity checking of renderType to FOTreeBuilder as well, in effect decoupling Driver from FOTreeBuilder (the latter can work on its own now.) 3.) Updated the various examples and the documentation to indicate the new API. Revision ChangesPath 1.8 +15 -15xml-fop/examples/embedding/build.xml Index: build.xml === RCS file: /home/cvs/xml-fop/examples/embedding/build.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- build.xml 18 Jul 2004 19:55:17 - 1.7 +++ build.xml 19 Jul 2004 05:33:33 - 1.8 @@ -84,7 +84,16 @@ - + + + + + + + + + + @@ -93,7 +102,7 @@ - + @@ -102,7 +111,7 @@ - + @@ -111,7 +120,7 @@ - + @@ -120,7 +129,7 @@ - + @@ -129,18 +138,9 @@ - + - - - - - - - - - 1.10 +3 -7 xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java Index: ExampleDOM2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ExampleDOM2PDF.java 9 Jul 2004 01:48:58 - 1.9 +++ ExampleDOM2PDF.java 19 Jul 2004 05:33:33 - 1.10 @@ -61,11 +61,8 @@ */ public void convertDOM2PDF(Document xslfoDoc, File pdf) { try { -// Construct driver -Driver driver = new Driver(); - -// Setup Renderer (output format) -driver.setRenderer(Driver.RENDER_PDF); +// Construct driver with desired output format +Driver driver = new Driver(Driver.RENDER_PDF); // Setup output OutputStream out = new java.io.FileOutputStream(pdf); @@ -90,7 +87,6 @@ out.close(); } -System.out.println("Success!"); } catch (Exception e) { e.printStackTrace(System.err); System.exit(-1); 1.13 +2 -3 xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java Index: ExampleFO2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- ExampleFO2PDF.java16 Jul 2004 03:36:14 - 1.12 +++ ExampleFO2PDF.java19 Jul 2004 05:33:33 - 1.13 @@ -55,9 +55,8 @@ OutputStream out = null; try { -// Construct driver and setup output format -Dri
cvs commit: xml-fop/test/java/org/apache/fop BasicDriverTestCase.java
gmazza 2004/07/19 15:46:14 Modified:examples/embedding build.xml examples/embedding/java/embedding ExampleDOM2PDF.java ExampleFO2PDF.java ExampleObj2PDF.java ExampleXML2PDF.java src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/servlet FopPrintServlet.java FopServlet.java test/java/org/apache/fop BasicDriverTestCase.java Added: examples/embedding/java/embedding ExampleFO2PDFUsingSAXParser.java Removed: examples/embedding/java/embedding ExampleFO2PDFUsingSAX.java Log: 1.) Moved exclusively to Simon's DefaultHandler object for both Transformer and SAXParser usage. DefaultHandler implements the ContentHandler interface so it can be used where the latter was previously used, also it provides more functionality. [1] 2.) Updated the examples and internal code accordingly. 3.) Renamed ExampleFO2PDFUsingSAX to ...Parser to avoid confusion (both use SAX.) [1] http://www.cafeconleche.org/books/xmljava/chapters/ch06s03.html#d0e8440 Revision ChangesPath 1.9 +1 -1 xml-fop/examples/embedding/build.xml Index: build.xml === RCS file: /home/cvs/xml-fop/examples/embedding/build.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- build.xml 19 Jul 2004 05:33:33 - 1.8 +++ build.xml 19 Jul 2004 22:46:13 - 1.9 @@ -86,7 +86,7 @@ - + 1.11 +2 -2 xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java Index: ExampleDOM2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ExampleDOM2PDF.java 19 Jul 2004 05:33:33 - 1.10 +++ ExampleDOM2PDF.java 19 Jul 2004 22:46:14 - 1.11 @@ -79,7 +79,7 @@ Source src = new DOMSource(xslfoDoc); // Resulting SAX events (the generated FO) must be piped through to FOP -Result res = new SAXResult(driver.getContentHandler()); +Result res = new SAXResult(driver.getDefaultHandler()); // Start XSLT transformation and FOP processing transformer.transform(src, res); 1.14 +1 -1 xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java Index: ExampleFO2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- ExampleFO2PDF.java19 Jul 2004 05:33:33 - 1.13 +++ ExampleFO2PDF.java19 Jul 2004 22:46:14 - 1.14 @@ -72,7 +72,7 @@ Source src = new StreamSource(fo); // Resulting SAX events (the generated FO) must be piped through to FOP -Result res = new SAXResult(driver.getContentHandler()); +Result res = new SAXResult(driver.getDefaultHandler()); // Start XSLT transformation and FOP processing transformer.transform(src, res); 1.10 +1 -1 xml-fop/examples/embedding/java/embedding/ExampleObj2PDF.java Index: ExampleObj2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleObj2PDF.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ExampleObj2PDF.java 19 Jul 2004 05:33:33 - 1.9 +++ ExampleObj2PDF.java 19 Jul 2004 22:46:14 - 1.10 @@ -72,7 +72,7 @@ Source src = team.getSourceForProjectTeam(); // Resulting SAX events (the generated FO) must be piped through to FOP -Result res = new SAXResult(driver.getContentHandler()); +Result res = new SAXResult(driver.getDefaultHandler()); // Start XSLT transformation and FOP processing transformer.transform(src, res); 1.12 +1 -1 xml-fop/examples/embedding/java/embedding/ExampleXML2PDF.java Index: ExampleXML2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleXML2PDF.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- ExampleXML2PDF.java 19 Jul 2004 05:33:33 -
cvs commit: xml-fop/test/java/org/apache/fop BasicDriverTestCase.java GenericFOPTestCase.java
gmazza 2004/07/19 20:39:24 Modified:src/java/org/apache/fop/apps Driver.java FOFileHandler.java Fop.java InputHandler.java XSLTInputHandler.java src/java/org/apache/fop/render/awt/viewer PreviewDialog.java src/java/org/apache/fop/tools TestConverter.java src/java/org/apache/fop/tools/anttasks Fop.java test/java/org/apache/fop BasicDriverTestCase.java GenericFOPTestCase.java Log: 1.) render() methods moved from Driver to XSLTInputHandler and FOFileHandler. 2.) -param command line switch implemented for xml->xslt->pdf processes Revision ChangesPath 1.92 +1 -55 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.91 retrieving revision 1.92 diff -u -r1.91 -r1.92 --- Driver.java 19 Jul 2004 22:46:14 - 1.91 +++ Driver.java 20 Jul 2004 03:39:24 - 1.92 @@ -19,13 +19,9 @@ package org.apache.fop.apps; // Java -import java.io.IOException; import java.io.OutputStream; // XML -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; // FOP @@ -137,55 +133,5 @@ */ public DefaultHandler getDefaultHandler() throws FOPException { return new FOTreeBuilder(renderType, foUserAgent, stream); -} - -/** - * Render the FO document read by a SAX Parser from an InputHandler - * @param inputHandler the input handler containing the source and - * parser information. - * @throws FOPException if anything goes wrong. - */ -public synchronized void render(InputHandler inputHandler) -throws FOPException { -XMLReader parser = inputHandler.getParser(); -foUserAgent.setBaseURL(inputHandler.getBaseURL()); -render(parser, inputHandler.getInputSource()); -} - -/** - * This is the main render() method. The other render() methods are for - * convenience, and normalize to this form, then run this. - * Renders the FO document read by a SAX Parser from an InputSource. - * For versions not needing an FO Tree (e.g., Alt-Design), override this. - * - * @param parser the SAX parser. - * @param source the input source the parser reads from. - * @throws FOPException if anything goes wrong. - */ -public synchronized void render(XMLReader parser, InputSource source) -throws FOPException { -parser.setContentHandler(getDefaultHandler()); - -try { -/** - The following statement triggers virtually all of the processing - for this document. The SAX parser fires events that are handled by - the appropriate InputHandler object, which means that you will need - to look in those objects to see where FOP picks up control of - processing again. For Structure Renderers (e.g. MIF & RTF), the SAX - events are handled directly. For Layout Renderers (e.g. PDF & - PostScript), an Area Tree is managed by the AreaTreeHandler. - */ -parser.parse(source); -} catch (SAXException e) { -if (e.getException() instanceof FOPException) { -// Undo exception tunneling. -throw (FOPException)e.getException(); -} else { -throw new FOPException(e); -} -} catch (IOException e) { -throw new FOPException(e); -} } } 1.5 +40 -13xml-fop/src/java/org/apache/fop/apps/FOFileHandler.java Index: FOFileHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/FOFileHandler.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- FOFileHandler.java16 Mar 2004 22:17:09 - 1.4 +++ FOFileHandler.java20 Jul 2004 03:39:24 - 1.5 @@ -15,21 +15,27 @@ */ /* $Id$ */ - + package org.apache.fop.apps; +// Java +import java.io.File; +import java.net.URL; + // Imported SAX classes import org.xml.sax.InputSource; -import org.xml.sax.XMLReader; import org.xml.sax.SAXException; -import org.xml.sax.SAXNotSupportedException; +import org.xml.sax.XMLReader; -// java +//JAXP import javax.xml.parsers.SAXParserFactory; import javax.xml.parsers.ParserConfigurationException; -import java.io.File; -import java.net.URL; - +import javax.xml.transform.Transfor
cvs commit: xml-fop/src/java/org/apache/fop/svg SVGUserAgent.java
gmazza 2004/07/20 14:28:50 Modified:src/java/org/apache/fop/apps CommandLineOptions.java FOFileHandler.java src/java/org/apache/fop/fo/extensions/svg BatikExtensionElementMapping.java SVGElementMapping.java src/java/org/apache/fop/image XMLImage.java src/java/org/apache/fop/svg SVGUserAgent.java Log: 1.) Moved the SAXParser-creating method from FOFileHandler to CommandLineOptions, the latter being the class directly using it. 2.) Decoupled the SVG classes from apps.FOFileHandler, the SVG classes for some reason want a string containing a name of a SAXParser. We'll need to look in the future for the actual need for this--normally error messages are done by the caller, not the callee. It would appear that Batik can generate a SAXParser name by default, and use that when not explicitly overridden by the caller. Revision ChangesPath 1.25 +17 -1 xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java Index: CommandLineOptions.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- CommandLineOptions.java 9 Jul 2004 17:27:12 - 1.24 +++ CommandLineOptions.java 20 Jul 2004 21:28:50 - 1.25 @@ -34,6 +34,7 @@ // SAX import org.xml.sax.XMLReader; import org.xml.sax.SAXException; +import javax.xml.parsers.SAXParserFactory; // avalon configuration import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; @@ -434,7 +435,7 @@ if (userConfigFile == null) { return; } -XMLReader parser = FOFileHandler.createParser(); +XMLReader parser = createParser(); DefaultConfigurationBuilder configBuilder = new DefaultConfigurationBuilder(parser); Configuration userConfig = null; @@ -719,5 +720,20 @@ } } +/** + * Creates XMLReader object using default + * SAXParserFactory + * @return the created XMLReader + * @throws FOPException if the parser couldn't be created or configured for proper operation. + */ +private XMLReader createParser() throws FOPException { +try { +SAXParserFactory factory = SAXParserFactory.newInstance(); +factory.setNamespaceAware(true); +return factory.newSAXParser().getXMLReader(); +} catch (Exception e) { +throw new FOPException("Couldn't create XMLReader", e); +} +} } 1.6 +2 -35 xml-fop/src/java/org/apache/fop/apps/FOFileHandler.java Index: FOFileHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/FOFileHandler.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- FOFileHandler.java20 Jul 2004 03:39:24 - 1.5 +++ FOFileHandler.java20 Jul 2004 21:28:50 - 1.6 @@ -27,9 +27,7 @@ import org.xml.sax.SAXException; import org.xml.sax.XMLReader; -//JAXP -import javax.xml.parsers.SAXParserFactory; -import javax.xml.parsers.ParserConfigurationException; +// JAXP import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.Source; @@ -103,37 +101,6 @@ } catch (Exception e) { throw new FOPException(e); -} -} - -/** - * Creates XMLReader object using default - * SAXParserFactory - * @return the created XMLReader - * @throws FOPException if the parser couldn't be created or configured for proper operation. - */ -protected static XMLReader createParser() throws FOPException { -try { -SAXParserFactory factory = SAXParserFactory.newInstance(); -factory.setNamespaceAware(true); -return factory.newSAXParser().getXMLReader(); -} catch (SAXException se) { -throw new FOPException("Couldn't create XMLReader", se); -} catch (ParserConfigurationException pce) { -throw new FOPException("Couldn't create XMLReader", pce); -} -} - -/** - * Returns the fully qualified classname of the standard XML parser for FOP - * to use. - * @return the XML parser classname - */ -public static final String getParserClassName() { -try { -return createParser().getClass().getName(); -} catch (FOPException e) { -return null; } } }
cvs commit: xml-fop/src/java/org/apache/fop/fo FOTreeBuilder.java
gmazza 2004/07/20 16:01:42 Modified:src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/fo FOTreeBuilder.java Log: Removed redundant check for invalid render type. Revision ChangesPath 1.93 +1 -6 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.92 retrieving revision 1.93 diff -u -r1.92 -r1.93 --- Driver.java 20 Jul 2004 03:39:24 - 1.92 +++ Driver.java 20 Jul 2004 23:01:42 - 1.93 @@ -76,11 +76,6 @@ * @throws IllegalArgumentException if an unsupported renderer type was requested. */ public Driver(int renderType, FOUserAgent ua) { -if (renderType == Constants.NOT_SET) { -throw new IllegalArgumentException( -"Desired render type not set."); -} - if (renderType < Constants.RENDER_MIN_CONST || renderType > Constants.RENDER_MAX_CONST) { throw new IllegalArgumentException( 1.41 +0 -5 xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java Index: FOTreeBuilder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- FOTreeBuilder.java19 Jul 2004 05:33:34 - 1.40 +++ FOTreeBuilder.java20 Jul 2004 23:01:42 - 1.41 @@ -111,11 +111,6 @@ } else if (renderType == Constants.RENDER_RTF) { foInputHandler = new RTFHandler(foUserAgent, stream); } else { -if (renderType == Constants.NOT_SET) { -throw new IllegalStateException( -"Desired render type not set."); -} - if (renderType < Constants.RENDER_MIN_CONST || renderType > Constants.RENDER_MAX_CONST) { throw new IllegalArgumentException( - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination PageSequence.java SimplePageMaster.java
gmazza 2004/07/23 21:46:34 Modified:src/java/org/apache/fop/fo FONode.java FOTreeBuilder.java FObj.java FObjMixed.java UnknownXMLObj.java XMLObj.java src/java/org/apache/fop/fo/extensions Bookmarks.java Outline.java src/java/org/apache/fop/fo/flow Block.java Footnote.java ListItem.java Table.java src/java/org/apache/fop/fo/pagination PageSequence.java SimplePageMaster.java Log: Renamed FONode.addChild() to somewhat clearer FONode.addChildNode(). Revision ChangesPath 1.29 +1 -1 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- FONode.java 23 Jul 2004 18:54:57 - 1.28 +++ FONode.java 24 Jul 2004 04:46:33 - 1.29 @@ -167,7 +167,7 @@ /** * @param child child node to be added to the children of this node */ -protected void addChild(FONode child) { +protected void addChildNode(FONode child) { } /** 1.42 +1 -1 xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java Index: FOTreeBuilder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- FOTreeBuilder.java20 Jul 2004 23:01:42 - 1.41 +++ FOTreeBuilder.java24 Jul 2004 04:46:33 - 1.42 @@ -276,7 +276,7 @@ rootFObj = (Root) foNode; rootFObj.setFOInputHandler(foInputHandler); } else { -currentFObj.addChild(foNode); +currentFObj.addChildNode(foNode); } currentFObj = foNode; 1.50 +2 -4 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- FObj.java 7 Jul 2004 01:51:50 - 1.49 +++ FObj.java 24 Jul 2004 04:46:33 - 1.50 @@ -251,11 +251,9 @@ } /** - * Add the child to this object. - * - * @param child the child node to add + * @see org.apache.fop.fo.FONode#addChildNode(FONode) */ -protected void addChild(FONode child) { +protected void addChildNode(FONode child) { if (containsMarkers() && "fo:marker".equals(child.getName())) { addMarker((Marker)child); } else { 1.27 +1 -1 xml-fop/src/java/org/apache/fop/fo/FObjMixed.java Index: FObjMixed.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObjMixed.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- FObjMixed.java18 Jun 2004 04:13:53 - 1.26 +++ FObjMixed.java24 Jul 2004 04:46:33 - 1.27 @@ -57,7 +57,7 @@ /* characters() processing empty for FOTreeHandler, not empty for RTF & MIFHandlers */ getFOInputHandler().characters(ft.ca, ft.startIndex, ft.endIndex); -addChild(ft); +addChildNode(ft); } private void setup() { 1.8 +3 -3 xml-fop/src/java/org/apache/fop/fo/UnknownXMLObj.java Index: UnknownXMLObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/UnknownXMLObj.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- UnknownXMLObj.java27 Feb 2004 17:57:40 - 1.7 +++ UnknownXMLObj.java24 Jul 2004 04:46:33 - 1.8 @@ -69,13 +69,13 @@ } /** - * @see XMLObj#addChild + * @see org.apache.fop.fo.FONode#addChildNode(FONode) */ -protected void addChild(FONode child) { +protected void addChildNode(FONode child) { if (doc == null) { createBasicDocument(); } -super.addChild(child); +super.addChildNode(child); } /** 1.11 +2 -2 xml-fop/src/java/org/apache/fop/fo/XMLObj.java Index: XMLObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/XMLObj.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- XMLObj.java 16 J
cvs commit: xml-fop/test/java/org/apache/fop BasicDriverTestCase.java GenericFOPTestCase.java
gmazza 2004/07/23 22:47:45 Modified:examples/embedding/java/embedding ExampleDOM2PDF.java ExampleFO2PDF.java ExampleFO2PDFUsingSAXParser.java ExampleObj2PDF.java ExampleXML2PDF.java src/java/org/apache/fop/apps CommandLineOptions.java FOFileHandler.java Fop.java InputHandler.java XSLTInputHandler.java src/java/org/apache/fop/fo Constants.java src/java/org/apache/fop/render/awt/viewer PreviewDialog.java src/java/org/apache/fop/servlet FopPrintServlet.java FopServlet.java src/java/org/apache/fop/tools TestConverter.java src/java/org/apache/fop/tools/anttasks Fop.java test/java/org/apache/fop BasicDriverTestCase.java GenericFOPTestCase.java Removed: src/java/org/apache/fop/apps Driver.java Log: Combined the apps.Driver class into apps.Fop. (195 LOC total.) Primary benefit is to make Fop self-documenting in external code, also none of the API ideas called for retention of the Driver class (even if there were different ideas for its replacement). Let's try this for a few weeks, if it confuses people too much (or when the API starts to grow again) we can bring back Driver, possibly under a different name, apps.FopProcess, perhaps. See also: http://marc.theaimsgroup.com/?l=fop-dev&m=108947697611032&w=2 http://marc.theaimsgroup.com/?l=fop-dev&m=108966015504506&w=2 http://marc.theaimsgroup.com/?l=fop-dev&m=108942673103344&w=2 http://marc.theaimsgroup.com/?l=fop-dev&m=108958756030147&w=2 Revision ChangesPath 1.12 +6 -6 xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java Index: ExampleDOM2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- ExampleDOM2PDF.java 19 Jul 2004 22:46:14 - 1.11 +++ ExampleDOM2PDF.java 24 Jul 2004 05:47:44 - 1.12 @@ -40,7 +40,7 @@ import org.w3c.dom.Text; // FOP -import org.apache.fop.apps.Driver; +import org.apache.fop.apps.Fop; /** @@ -61,15 +61,15 @@ */ public void convertDOM2PDF(Document xslfoDoc, File pdf) { try { -// Construct driver with desired output format -Driver driver = new Driver(Driver.RENDER_PDF); +// Construct fop with desired output format +Fop fop = new Fop(Fop.RENDER_PDF); // Setup output OutputStream out = new java.io.FileOutputStream(pdf); out = new java.io.BufferedOutputStream(out); try { -driver.setOutputStream(out); +fop.setOutputStream(out); // Setup Identity Transformer TransformerFactory factory = TransformerFactory.newInstance(); @@ -79,7 +79,7 @@ Source src = new DOMSource(xslfoDoc); // Resulting SAX events (the generated FO) must be piped through to FOP -Result res = new SAXResult(driver.getDefaultHandler()); +Result res = new SAXResult(fop.getDefaultHandler()); // Start XSLT transformation and FOP processing transformer.transform(src, res); 1.15 +5 -5 xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java Index: ExampleFO2PDF.java === RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- ExampleFO2PDF.java19 Jul 2004 22:46:14 - 1.14 +++ ExampleFO2PDF.java24 Jul 2004 05:47:44 - 1.15 @@ -35,7 +35,7 @@ // FOP -import org.apache.fop.apps.Driver; +import org.apache.fop.apps.Fop; import org.apache.fop.apps.FOPException; /** @@ -55,14 +55,14 @@ OutputStream out = null; try { -// Construct driver with desired output format -Driver driver = new Driver(Driver.RENDER_PDF); +// Construct fop with desired output format +Fop fop = new Fop(Fop.RENDER_PDF); // Setup output stream. Note: Using BufferedOutputStream // for performance reasons (helpful with FileOutputStreams). out = new FileOutputStream(pdf); out = new BufferedOutputStream(out); -driver.setOutputStream(out); +fop.setOutputStream(o
cvs commit: xml-fop/src/java/org/apache/fop/render/rtf RTFHandler.java
gmazza 2004/07/24 15:56:31 Modified:src/java/org/apache/fop/area AreaTreeHandler.java src/java/org/apache/fop/fo FONode.java FObj.java PropertySets.java RecursiveCharIterator.java src/java/org/apache/fop/fo/flow Block.java ListItemBody.java ListItemLabel.java Wrapper.java src/java/org/apache/fop/fo/pagination Declarations.java LayoutMasterSet.java PageSequenceMaster.java RepeatablePageMasterAlternatives.java StaticContent.java src/java/org/apache/fop/layoutmgr AbstractLayoutManager.java AddLMVisitor.java src/java/org/apache/fop/render/rtf RTFHandler.java Log: moved FO term of a Node's child elements from "Children" to "ChildNodes" Revision ChangesPath 1.2 +2 -2 xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java Index: AreaTreeHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AreaTreeHandler.java 13 Jul 2004 00:16:22 - 1.1 +++ AreaTreeHandler.java 24 Jul 2004 22:56:30 - 1.2 @@ -437,7 +437,7 @@ // to the Title. InlineStackingLayoutManager lm; lm = new InlineStackingLayoutManager(foTitle); -lm.setLMiter(new LMiter(lm, foTitle.children.listIterator())); +lm.setLMiter(new LMiter(lm, foTitle.childNodes.listIterator())); lm.initialize(); // get breaks then add areas to title 1.30 +6 -6 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- FONode.java 24 Jul 2004 04:46:33 - 1.29 +++ FONode.java 24 Jul 2004 22:56:30 - 1.30 @@ -165,7 +165,7 @@ } /** - * @param child child node to be added to the children of this node + * @param child child node to be added to the childNodes of this node */ protected void addChildNode(FONode child) { } @@ -178,21 +178,21 @@ } /** - * Return an iterator over all the children of this FObj. + * Return an iterator over all the child nodes of this FObj. * @return A ListIterator. */ -public ListIterator getChildren() { +public ListIterator getChildNodes() { return null; } /** - * Return an iterator over the object's children starting + * Return an iterator over the object's child nodes starting * at the pased node. * @param childNode First node in the iterator - * @return A ListIterator or null if childNode isn't a child of + * @return A ListIterator or null if child node isn't a child of * this FObj. */ -public ListIterator getChildren(FONode childNode) { +public ListIterator getChildNodes(FONode childNode) { return null; } 1.51 +28 -29xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.50 retrieving revision 1.51 diff -u -r1.50 -r1.51 --- FObj.java 24 Jul 2004 04:46:33 - 1.50 +++ FObj.java 24 Jul 2004 22:56:30 - 1.51 @@ -47,8 +47,8 @@ /** Id of this fo element of null if no id. */ protected String id = null; -/** The children of this node. */ -public ArrayList children = null; +/** The immediate child nodes of this node. */ +public ArrayList childNodes = null; /** Markers added to this element. */ protected Map markers = null; @@ -139,7 +139,21 @@ return propertyList.get(propId); } - /** +/** + * @see org.apache.fop.fo.FONode#addChildNode(FONode) + */ +protected void addChildNode(FONode child) { +if (containsMarkers() && "fo:marker".equals(child.getName())) { +addMarker((Marker)child); +} else { +if (childNodes == null) { +childNodes = new ArrayList(); +} +childNodes.add(child); +} +} + +/** * Find the nearest parent, grandparent, etc. FONode that is also an FObj * @return FObj the nearest ancestor FONode that is an FObj */ @@ -251,20 +265,6 @@ }
cvs commit: xml-fop/src/java/org/apache/fop/fo PropertySets.java
gmazza 2004/07/24 18:00:36 Modified:src/java/org/apache/fop/fo PropertySets.java Log: reverted change in PropertySets; unnecessary. Revision ChangesPath 1.7 +11 -11xml-fop/src/java/org/apache/fop/fo/PropertySets.java Index: PropertySets.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertySets.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- PropertySets.java 24 Jul 2004 22:56:30 - 1.6 +++ PropertySets.java 25 Jul 2004 01:00:35 - 1.7 @@ -969,7 +969,7 @@ -// Merge the attributes from the child nodes into the parent. +// Merge the attributes from the children into the parent. for (boolean dirty = true; dirty; ) { dirty = false; for (int i = 1; i < elements.length; i++) { @@ -1017,7 +1017,7 @@ BitSet relevant = new BitSet(); BitSet valid = new BitSet(); int elementId; -ArrayList childNodes; +ArrayList children; Element(int elementId) { this.elementId = elementId; @@ -1043,14 +1043,14 @@ * Add a single fo element as a content child. */ public void addContent(int elementId) { -if (childNodes == null) { -childNodes = new ArrayList(); +if (children == null) { +children = new ArrayList(); } -childNodes.add(elements[elementId]); +children.add(elements[elementId]); } /** - * Add a set of fo elements as content child nodes. + * Add a set of fo elements as content children. */ public void addContent(BitSet elements) { for (int i = 0; i < elements.size(); i++) { @@ -1061,16 +1061,16 @@ } /** - * Merge the properties from the child nodes into the set of valid + * Merge the properties from the children into the set of valid * properties. Return true if at least one property could be added. */ public boolean merge() { -if (childNodes == null) { +if (children == null) { return false; } boolean dirty = false; -for (int i = 0; i < childNodes.size(); i++) { -Element child = (Element) childNodes.get(i); +for (int i = 0; i < children.size(); i++) { +Element child = (Element) children.get(i); BitSet childValid = child.valid; int n = childValid.length(); for (int j = 0; j < n; j++) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo FObj.java
gmazza 2004/07/24 18:14:25 Modified:src/java/org/apache/fop/fo FObj.java Log: Bug fixed in previous renaming. Revision ChangesPath 1.52 +1 -1 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.51 retrieving revision 1.52 diff -u -r1.51 -r1.52 --- FObj.java 24 Jul 2004 22:56:30 - 1.51 +++ FObj.java 25 Jul 2004 01:14:25 - 1.52 @@ -351,7 +351,7 @@ * @return A ListIterator or null if childNode isn't a child of * this FObj. */ -public ListIterator getChildren(FONode childNode) { +public ListIterator getChildNodes(FONode childNode) { if (childNodes != null) { int i = childNodes.indexOf(childNode); if (i >= 0) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/test/java/org/apache/fop BasicDriverTestCase.java
gmazza 2004/07/24 18:47:47 Modified:src/java/org/apache/fop/apps FOFileHandler.java InputHandler.java XSLTInputHandler.java src/java/org/apache/fop/tools TestConverter.java test/java/org/apache/fop BasicDriverTestCase.java Log: Removed the non-File constructors from the InputHandler subclasses in favor of JAXP (for embedded use), and standardized FOFileHandler to use a StreamSource (like XSLTInputHandler). Currently, command Line usage works only with files, but We may need to expand the constructors here somewhat again should we provide other input options from the command line. other options Revision ChangesPath 1.8 +11 -36xml-fop/src/java/org/apache/fop/apps/FOFileHandler.java Index: FOFileHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/FOFileHandler.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- FOFileHandler.java24 Jul 2004 05:47:44 - 1.7 +++ FOFileHandler.java25 Jul 2004 01:47:47 - 1.8 @@ -20,35 +20,31 @@ // Java import java.io.File; -import java.net.URL; - -// Imported SAX classes -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; // JAXP +import javax.xml.transform.Result; +import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; -import javax.xml.transform.Source; -import javax.xml.transform.Result; -import javax.xml.transform.sax.SAXSource; import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.stream.StreamSource; + +// Imported SAX classes +import org.xml.sax.InputSource; /** * Manages input if it is an XSL-FO file. */ public class FOFileHandler extends InputHandler { - -private File fofile = null; -private URL foURL = null; +private StreamSource fofile = null; /** * Create a FOFileHandler for a file. * @param fofile the file to read the FO document. */ public FOFileHandler(File fofile) { -this.fofile = fofile; +this.fofile = new StreamSource(fofile); + try { baseURL = new File(fofile.getAbsolutePath()).getParentFile().toURL().toExternalForm(); @@ -58,24 +54,6 @@ } /** - * Create a FOFileHandler for an URL. - * @param url the URL to read the FO document. - */ -public FOFileHandler(URL url) { -this.foURL = url; -} - -/** - * @see org.apache.fop.apps.InputHandler#getInputSource() - */ -public InputSource getInputSource () { -if (fofile != null) { -return super.fileInputSource(fofile); -} -return super.urlInputSource(foURL); -} - -/** * @see org.apache.fop.apps.InputHandler#render(Fop) */ public void render(Fop fop) throws FOPException { @@ -90,14 +68,11 @@ TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); -// Setup input stream -Source src = new SAXSource(getInputSource()); - // Resulting SAX events (the generated FO) must be piped through to FOP Result res = new SAXResult(fop.getDefaultHandler()); // Start XSLT transformation and FOP processing -transformer.transform(src, res); +transformer.transform(fofile, res); } catch (Exception e) { throw new FOPException(e); 1.14 +1 -41 xml-fop/src/java/org/apache/fop/apps/InputHandler.java Index: InputHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/InputHandler.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- InputHandler.java 24 Jul 2004 05:47:45 - 1.13 +++ InputHandler.java 25 Jul 2004 01:47:47 - 1.14 @@ -18,18 +18,8 @@ package org.apache.fop.apps; -// SAX -import org.xml.sax.InputSource; -import org.xml.sax.XMLReader; - -// Java -import java.net.URL; -import java.io.File; - /** * Abstract super class for input handlers. - * Should be used to abstract the various possibilities on how input - * can be provided to FOP (but actually isn't). */ public abstract class InputHandler { @@ -50,34 +40,4 @@ */ public void render(Fop fop) throws FOPException {} -/** - * Creates an InputSource from a URL. - * @param url URL to use - * @return the newly cr
cvs commit: xml-fop/src/java/org/apache/fop/fo FObj.java
gmazza 2004/07/25 09:11:05 Modified:src/java/org/apache/fop/fo FObj.java Log: Created a "isOutOfLineFODescendant" member variable to FObj, needed for input FOValidation. As defined in Sect. 6.2 of the spec, certain child FO's are not valid if the parent FO is a descendant of an out of line FO (sect. 6.10) Revision ChangesPath 1.53 +34 -6 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.52 retrieving revision 1.53 diff -u -r1.52 -r1.53 --- FObj.java 25 Jul 2004 01:14:25 - 1.52 +++ FObj.java 25 Jul 2004 16:11:04 - 1.53 @@ -56,6 +56,13 @@ /** Dynamic layout dimension. Used to resolve relative lengths. */ protected Map layoutDimension = null; +/** During input FO validation, certain FO's are not valid as +child nodes if this FO is a descendant of an Out Of Line +Formatting Object as defined in specification. +See Section 6.2 of 1.0/1.2 spec for more information. +*/ +protected boolean isOutOfLineFODescendant = false; + /** * Create a new formatting object. * All formatting object classes extend this class. @@ -64,7 +71,18 @@ */ public FObj(FONode parent) { super(parent); - + +// determine if isOutOfLineFODescendant should be set +if (parent != null && parent instanceof FObj) { +if (((FObj)parent).getIsOutOfLineFODescendant() == true) { +isOutOfLineFODescendant = true; +} else if (parent.getName().equals("fo:float") +|| parent.getName().equals("fo:footnote") +|| parent.getName().equals("fo:footnote-body")) { +isOutOfLineFODescendant = true; +} +} + if (propertyListTable == null) { propertyListTable = new PropertyMaker[Constants.PROPERTY_COUNT+1]; PropertyMaker[] list = FOPropertyMapping.getGenericMappings(); @@ -76,6 +94,16 @@ } /** + * Used to indicate if this FO is the descendant of an out-of-line + * formatting object (From Sect. 6.10, fo:float, fo:footnote, + * fo:footnote-body). Important for validating child nodes. + * @return true if descendant, false otherwise + */ +public boolean getIsOutOfLineFODescendant() { +return isOutOfLineFODescendant; +} + +/** * @see org.apache.fop.fo.FONode#processNode */ public void processNode(String elementName, Locator locator, @@ -446,7 +474,7 @@ * @param lName local name (i.e., no prefix) of incoming node * @return true if a member, false if not */ -protected static boolean isBlockItem(String nsURI, String lName) { +protected boolean isBlockItem(String nsURI, String lName) { return (nsURI == FOElementMapping.URI && (lName.equals("block") || lName.equals("table") @@ -465,7 +493,7 @@ * @param lName local name (i.e., no prefix) of incoming node * @return true if a member, false if not */ -protected static boolean isInlineItem(String nsURI, String lName) { +protected boolean isInlineItem(String nsURI, String lName) { return (nsURI == FOElementMapping.URI && (lName.equals("bidi-override") || lName.equals("character") @@ -478,7 +506,7 @@ || lName.equals("page-number-citation") || lName.equals("basic-link") || lName.equals("multi-toggle") -|| lName.equals("footnote") // temp only -- not always correct (see spec) +|| (!isOutOfLineFODescendant && lName.equals("footnote")) || isNeutralItem(nsURI, lName))); } @@ -490,12 +518,12 @@ * @param lName local name (i.e., no prefix) of incoming node * @return true if a member, false if not */ -protected static boolean isNeutralItem(String nsURI, String lName) { +protected boolean isNeutralItem(String nsURI, String lName) { return (nsURI == FOElementMapping.URI && (lName.equals("multi-switch") || lName.equals("multi-properties") || lName.equals("wrapper") -|| lName.equals("float") // temp only -- not always correct (see spec) +|| (!isOutOfLineFODescendant && lName.equals("float")) || lName.equals("retrieve-marker"))); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/test/java/org/apache/fop BasicDriverTestCase.java
gmazza 2004/07/25 10:04:44 Modified:src/java/org/apache/fop/apps CommandLineOptions.java InputHandler.java src/java/org/apache/fop/fo FObj.java src/java/org/apache/fop/tools TestConverter.java src/java/org/apache/fop/tools/anttasks Fop.java test/java/org/apache/fop BasicDriverTestCase.java Removed: src/java/org/apache/fop/apps FOFileHandler.java XSLTInputHandler.java Log: Took advantage of the Transformer similarities between FO input and (XSL, XSLT) input to combine the two into InputHandler. Revision ChangesPath 1.27 +2 -2 xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java Index: CommandLineOptions.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- CommandLineOptions.java 24 Jul 2004 05:47:44 - 1.26 +++ CommandLineOptions.java 25 Jul 2004 17:04:44 - 1.27 @@ -483,9 +483,9 @@ private InputHandler createInputHandler() throws IllegalArgumentException { switch (inputmode) { case FO_INPUT: -return new FOFileHandler(fofile); +return new InputHandler(fofile); case XSLT_INPUT: -return new XSLTInputHandler(xmlfile, xsltfile, xsltParams); +return new InputHandler(xmlfile, xsltfile, xsltParams); default: throw new IllegalArgumentException("Error creating InputHandler object."); } 1.15 +85 -10xml-fop/src/java/org/apache/fop/apps/InputHandler.java Index: InputHandler.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/InputHandler.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- InputHandler.java 25 Jul 2004 01:47:47 - 1.14 +++ InputHandler.java 25 Jul 2004 17:04:44 - 1.15 @@ -18,19 +18,47 @@ package org.apache.fop.apps; +// Imported java.io classes +import java.io.File; +import java.util.Vector; + +// Imported TraX classes +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.stream.StreamSource; + /** - * Abstract super class for input handlers. + * Class for handling files input from command line + * either with XML and XSLT files (and optionally xsl + * parameters) or FO File input alone */ -public abstract class InputHandler { - -protected String baseURL = null; +public class InputHandler { +private File sourcefile = null; // either FO or XML/XSLT usage +private File stylesheet = null; // for XML/XSLT usage +private Vector xsltParams = null; // for XML/XSLT usage /** - * Get the base URL associated with this input source - * @return the input source + * Constructor for XML->XSLT->FO input + * @param xmlfile XML file + * @param xsltfile XSLT file + * @param params Vector of command-line parameters (name, value, + * name, value, ...) for XSL stylesheet, null if none + */ +public InputHandler(File xmlfile, File xsltfile, Vector params) { +sourcefile = xmlfile; +stylesheet = xsltfile; +xsltParams = params; +} + +/** + * Constructor for FO input + * @param fofile the file to read the FO document. */ -public String getBaseURL() { -return baseURL; +public InputHandler(File fofile) { +sourcefile = fofile; } /** @@ -38,6 +66,53 @@ * @param fop -- Fop object * @throws FOPException in case of an error during processing */ -public void render(Fop fop) throws FOPException {} +public void render(Fop fop) throws FOPException { +// if base URL was not explicitly set in FOUserAgent, obtain here +if (fop.getUserAgent().getBaseURL() == null) { +String baseURL = null; + +try { +baseURL = +new File(sourcefile.getAbsolutePath()). +getParentFile().toURL().toExternalForm(); +} catch (Exception e) { +baseURL = ""; +} +fop.getUserAgent().setBaseURL(baseURL); +} + +try { +// Setup XSLT +TransformerFactory factory = TransformerFactory.newInstance(); +Transformer transformer; +
cvs commit: xml-fop/src/java/org/apache/fop/fo FObj.java
gmazza 2004/07/26 20:01:33 Modified:src/java/org/apache/fop/fo FObj.java Log: Redefining "isOutOfLineFODescendant" to include cases where FObj itself is and O-o-L FO. Revision ChangesPath 1.55 +6 -5 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.54 retrieving revision 1.55 diff -u -r1.54 -r1.55 --- FObj.java 25 Jul 2004 17:04:44 - 1.54 +++ FObj.java 27 Jul 2004 03:01:33 - 1.55 @@ -58,8 +58,9 @@ /** During input FO validation, certain FO's are not valid as child nodes if they would be a descendant of an Out Of Line -Formatting Object as defined in specification. -See Section 6.2 of 1.0/1.2 spec for more information. +Formatting Object as defined in specification (See Sect. 6.2 +of spec.) This value is also set to true if this object +itself is an Out Of Line FO. */ protected boolean isOutOfLineFODescendant = false; @@ -76,9 +77,9 @@ if (parent != null && parent instanceof FObj) { if (((FObj)parent).getIsOutOfLineFODescendant() == true) { isOutOfLineFODescendant = true; -} else if (parent.getName().equals("fo:float") -|| parent.getName().equals("fo:footnote") -|| parent.getName().equals("fo:footnote-body")) { +} else if ("fo:float".equals(getName()) +|| "fo:footnote".equals(getName()) +|| "fo:footnote-body".equals(getName())) { isOutOfLineFODescendant = true; } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination ColorProfile.java Declarations.java Flow.java LayoutMasterSet.java PageSequence.java PageSequenceMaster.java RegionBA.java RegionBASE.java RepeatablePageMasterAlternatives.java StaticContent.java
gmazza 2004/07/26 20:38:13 Modified:src/java/org/apache/fop/fo FONode.java FOTreeBuilder.java src/java/org/apache/fop/fo/extensions Bookmarks.java src/java/org/apache/fop/fo/flow BasicLink.java Block.java Footnote.java FootnoteBody.java Inline.java ListBlock.java ListItem.java ListItemLabel.java PageNumber.java Table.java TableBody.java TableCell.java TableColumn.java TableRow.java src/java/org/apache/fop/fo/pagination ColorProfile.java Declarations.java Flow.java LayoutMasterSet.java PageSequence.java PageSequenceMaster.java RegionBA.java RegionBASE.java RepeatablePageMasterAlternatives.java StaticContent.java Log: Renamed end() method to somewhat clearer endOfNode(). Revision ChangesPath 1.31 +1 -1 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- FONode.java 24 Jul 2004 22:56:30 - 1.30 +++ FONode.java 27 Jul 2004 03:38:11 - 1.31 @@ -160,7 +160,7 @@ /** * */ -protected void end() { +protected void endOfNode() { // do nothing by default } 1.43 +1 -1 xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java Index: FOTreeBuilder.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- FOTreeBuilder.java24 Jul 2004 04:46:33 - 1.42 +++ FOTreeBuilder.java27 Jul 2004 03:38:11 - 1.43 @@ -289,7 +289,7 @@ public void endElement(String uri, String localName, String rawName) throws SAXException { try { -currentFObj.end(); +currentFObj.endOfNode(); } catch (IllegalArgumentException e) { throw new SAXException(e); } 1.8 +2 -2 xml-fop/src/java/org/apache/fop/fo/extensions/Bookmarks.java Index: Bookmarks.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/extensions/Bookmarks.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Bookmarks.java24 Jul 2004 04:46:34 - 1.7 +++ Bookmarks.java27 Jul 2004 03:38:11 - 1.8 @@ -57,7 +57,7 @@ * the bookmark data from the child elements and add * the extension to the area tree. */ -protected void end() { +protected void endOfNode() { ((Root) parent).setBookmarks(this); } 1.16 +2 -2 xml-fop/src/java/org/apache/fop/fo/flow/BasicLink.java Index: BasicLink.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/BasicLink.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- BasicLink.java16 Jun 2004 23:40:58 - 1.15 +++ BasicLink.java27 Jul 2004 03:38:11 - 1.16 @@ -140,8 +140,8 @@ /** * @see org.apache.fop.fo.FONode#end */ -protected void end() { -super.end(); +protected void endOfNode() { +super.endOfNode(); getFOInputHandler().endLink(); } 1.23 +1 -1 xml-fop/src/java/org/apache/fop/fo/flow/Block.java Index: Block.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/Block.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- Block.java24 Jul 2004 22:56:30 - 1.22 +++ Block.java27 Jul 2004 03:38:11 - 1.23 @@ -237,7 +237,7 @@ /** * @see org.apache.fop.fo.FONode#end */ -protected void end() { +protected void endOfNode() { handleWhiteSpace(); getFOInputHandler().endBlock(this); } 1.14 +2 -2 xml-fop/src/java/org/apache/fop/fo/flow/Footnote.java Index: Footnote.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/Footnote.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- Footnote.java 24 Jul 2004 04:46:34 - 1.13 +++ Footnote.java 27 Jul 2004 03:38
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination ColorProfile.java ConditionalPageMasterReference.java Declarations.java Flow.java LayoutMasterSet.java PageSequence.java PageSequenceMaster.java Region.java RegionBA.java RegionBASE.java RepeatablePageMasterAlternatives.java RepeatablePageMasterReference.java Root.java SinglePageMasterReference.java StaticContent.java Title.java
gmazza 2004/07/26 22:12:42 Modified:src/java/org/apache/fop/fo FONode.java FOTreeBuilder.java src/java/org/apache/fop/fo/extensions Bookmarks.java src/java/org/apache/fop/fo/flow BasicLink.java Block.java Footnote.java FootnoteBody.java Inline.java ListBlock.java ListItem.java ListItemLabel.java PageNumber.java Table.java TableBody.java TableCell.java TableColumn.java TableRow.java src/java/org/apache/fop/fo/pagination ColorProfile.java ConditionalPageMasterReference.java Declarations.java Flow.java LayoutMasterSet.java PageSequence.java PageSequenceMaster.java Region.java RegionBA.java RegionBASE.java RepeatablePageMasterAlternatives.java RepeatablePageMasterReference.java Root.java SinglePageMasterReference.java StaticContent.java Title.java Log: Switch from IllegalArgumentException to SAXParseException for errors found in the input FO. Revision ChangesPath 1.32 +21 -19xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- FONode.java 27 Jul 2004 03:38:11 - 1.31 +++ FONode.java 27 Jul 2004 05:12:39 - 1.32 @@ -26,6 +26,7 @@ // XML import org.xml.sax.Attributes; import org.xml.sax.Locator; +import org.xml.sax.SAXParseException; // FOP import org.apache.fop.apps.FOPException; @@ -134,9 +135,10 @@ * called within FObj constructor * @param namespaceURI namespace of incoming node * @param localName (e.g. "table" for "fo:table") - * @throws IllegalArgumentException if incoming node not valid for parent + * @throws SAXParseException if incoming node not valid for parent */ -protected void validateChildNode(Locator loc, String namespaceURI, String localName) {} +protected void validateChildNode(Locator loc, String namespaceURI, String localName) +throws SAXParseException {} /** * Adds characters (does nothing here) @@ -160,7 +162,7 @@ /** * */ -protected void endOfNode() { +protected void endOfNode() throws SAXParseException { // do nothing by default } @@ -242,10 +244,10 @@ * @param loc org.xml.sax.Locator object of the error (*not* parent node) * @param offendingNode incoming node that would cause a duplication. */ -protected void tooManyNodesError(Locator loc, String offendingNode) { -throw new IllegalArgumentException( -errorText(loc) + getName() + ", only one " -+ offendingNode + " may be declared."); +protected void tooManyNodesError(Locator loc, String offendingNode) +throws SAXParseException { +throw new SAXParseException (errorText(loc) + getName() + ", only one " ++ offendingNode + " may be declared.", loc); } /** @@ -256,10 +258,9 @@ * @param tooEarlyNode string name of node that should be later in document */ protected void nodesOutOfOrderError(Locator loc, String tooLateNode, -String tooEarlyNode) { -throw new IllegalArgumentException( -errorText(loc) + "For " + getName() + ", " + tooLateNode -+ " must be declared before " + tooEarlyNode + "."); +String tooEarlyNode) throws SAXParseException { +throw new SAXParseException (errorText(loc) + "For " + getName() + ", " + tooLateNode ++ " must be declared before " + tooEarlyNode + ".", loc); } /** @@ -269,10 +270,10 @@ * @param nsURI namespace URI of incoming invalid node * @param lName local name (i.e., no prefix) of incoming node */ -protected void invalidChildError(Locator loc, String nsURI, String lName) { -throw new IllegalArgumentException( -errorText(loc) + getNodeString(nsURI, lName) + -" is not a valid child element of " + getName() + "."); +protected void invalidChildError(Locator loc, String nsURI, String lName) +throws SAXParseException { +throw new SAXParseException (errorText(loc) + getNodeString(nsURI, lName) + +" is not a valid child element of " + getName() + ".", loc); }
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination Region.java
gmazza 2004/07/27 16:23:24 Modified:src/java/org/apache/fop/fo/flow Character.java ExternalGraphic.java InitialPropertySet.java MultiPropertySet.java PageNumber.java PageNumberCitation.java RetrieveMarker.java TableColumn.java src/java/org/apache/fop/fo/pagination Region.java Log: Provided validateChildFO() methods for the "easy" FO's--i.e., those with an empty content model. Revision ChangesPath 1.12 +14 -0 xml-fop/src/java/org/apache/fop/fo/flow/Character.java Index: Character.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/Character.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Character.java12 Jun 2004 23:18:52 - 1.11 +++ Character.java27 Jul 2004 23:23:23 - 1.12 @@ -18,6 +18,11 @@ package org.apache.fop.fo.flow; +// XML +import org.xml.sax.Attributes; +import org.xml.sax.Locator; +import org.xml.sax.SAXParseException; + // FOP import org.apache.fop.fo.CharIterator; import org.apache.fop.fo.FONode; @@ -59,6 +64,15 @@ */ public Character(FONode parent) { super(parent); +} + +/** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + * XSL Content Model: empty + */ +protected void validateChildNode(Locator loc, String nsURI, String localName) +throws SAXParseException { +invalidChildError(loc, nsURI, localName); } private void setup() throws FOPException { 1.28 +15 -1 xml-fop/src/java/org/apache/fop/fo/flow/ExternalGraphic.java Index: ExternalGraphic.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/ExternalGraphic.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- ExternalGraphic.java 16 Jun 2004 00:27:26 - 1.27 +++ ExternalGraphic.java 27 Jul 2004 23:23:23 - 1.28 @@ -18,9 +18,14 @@ package org.apache.fop.fo.flow; -// XML +// Java import java.awt.geom.Rectangle2D; +// XML +import org.xml.sax.Attributes; +import org.xml.sax.Locator; +import org.xml.sax.SAXParseException; + import org.apache.fop.apps.FOPException; import org.apache.fop.datatypes.Length; import org.apache.fop.fo.FONode; @@ -56,6 +61,15 @@ */ public ExternalGraphic(FONode parent) { super(parent); +} + +/** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + * XSL Content Model: empty + */ +protected void validateChildNode(Locator loc, String nsURI, String localName) +throws SAXParseException { +invalidChildError(loc, nsURI, localName); } /** 1.9 +14 -0 xml-fop/src/java/org/apache/fop/fo/flow/InitialPropertySet.java Index: InitialPropertySet.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/InitialPropertySet.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- InitialPropertySet.java 12 Jun 2004 23:18:52 - 1.8 +++ InitialPropertySet.java 27 Jul 2004 23:23:23 - 1.9 @@ -18,6 +18,11 @@ package org.apache.fop.fo.flow; +// XML +import org.xml.sax.Attributes; +import org.xml.sax.Locator; +import org.xml.sax.SAXParseException; + // FOP import org.apache.fop.fo.FONode; import org.apache.fop.fo.FOTreeVisitor; @@ -39,6 +44,15 @@ */ public InitialPropertySet(FONode parent) { super(parent); +} + +/** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + * XSL Content Model: empty + */ +protected void validateChildNode(Locator loc, String nsURI, String localName) +throws SAXParseException { +invalidChildError(loc, nsURI, localName); } private void setup() { 1.8 +14 -2 xml-fop/src/java/org/apache/fop/fo/flow/MultiPropertySet.java Index: MultiPropertySet.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/MultiPropertySet.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- MultiPropertySet.java 12 Jun 2004 23:18:52 - 1.7 +++ MultiPropertySet.java 27 Jul 2004 23:23:23 - 1.8 @@ -18,6 +18,11 @@ package org.apache.fop.fo.flow; +// XML +import org.xml.sax.Attributes; +import org.xml.sax.Loc
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr AddLMVisitor.java
gmazza 2004/07/30 17:44:24 Modified:src/java/org/apache/fop/fo FONode.java FOText.java FObj.java FObjMixed.java ToBeImplementedElement.java XMLObj.java src/java/org/apache/fop/fo/flow BasicLink.java ExternalGraphic.java Float.java Leader.java PageNumber.java PageNumberCitation.java TableCaption.java src/java/org/apache/fop/fo/pagination ConditionalPageMasterReference.java Flow.java PageSequence.java Region.java RepeatablePageMasterReference.java SinglePageMasterReference.java StaticContent.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java Log: 1. validation for fo:basic-link added 2. "name" data element removed from FONode, added to its XMLObj subclass (FObj subclasses' getName() uses a string constant instead.) 3. isBlockOrInlineItem() convenience method added to FObj 4. setup() methods within FO's switched to private access. Revision ChangesPath 1.34 +1 -5 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- FONode.java 27 Jul 2004 23:57:10 - 1.33 +++ FONode.java 31 Jul 2004 00:44:21 - 1.34 @@ -47,9 +47,6 @@ /** Parent FO node */ protected FONode parent; -/** Name of the node */ -protected String name; - /** Marks input file containing this object **/ public String systemId; @@ -118,7 +115,6 @@ */ public void processNode(String elementName, Locator locator, Attributes attlist) throws FOPException { System.out.println("name = " + elementName); -this.name = elementName; } /** @@ -126,7 +122,7 @@ * @return the name of this object */ public String getName() { -return this.name; +return null; } /** 1.21 +13 -11xml-fop/src/java/org/apache/fop/fo/FOText.java Index: FOText.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOText.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- FOText.java 27 Jul 2004 23:57:10 - 1.20 +++ FOText.java 31 Jul 2004 00:44:21 - 1.21 @@ -431,16 +431,6 @@ } } -/** - * This is a hook for the AddLMVisitor class to be able to access - * this object. - * @param aLMV the AddLMVisitor object that can access this object. - */ -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveFOText(this); -} - - private class TextCharIterator extends AbstractCharIterator { private int curIndex = 0; @@ -496,5 +486,17 @@ } } - + +public String getName() { +return "fo:text"; +} + +/** + * This is a hook for the AddLMVisitor class to be able to access + * this object. + * @param aLMV the AddLMVisitor object that can access this object. + */ +public void acceptVisitor(AddLMVisitor aLMV) { +aLMV.serveFOText(this); +} } 1.57 +33 -32xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- FObj.java 27 Jul 2004 23:57:10 - 1.56 +++ FObj.java 31 Jul 2004 00:44:21 - 1.57 @@ -45,31 +45,30 @@ /** Property manager for providing refined properties/traits. */ protected PropertyManager propMgr; -/** Id of this fo element of null if no id. */ -protected String id = null; - /** The immediate child nodes of this node. */ public ArrayList childNodes = null; +/** Used to indicate if this FO is either an Out Of Line FO (see rec) +or a descendant of one. Used during validateChildNode() FO +validation. +*/ +private boolean isOutOfLineFODescendant = false; + +/** Id of this fo element or null if no id. */ +protected String id = null; + /** Markers added to this element. */ protected Map markers = null; /** Dynamic layout dimension. Used to resolve relative lengths. */ protected Map layoutDimension = null; -/** During input F
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr AddLMVisitor.java
gmazza 2004/08/01 08:26:53 Modified:src/java/org/apache/fop/fo/pagination Region.java RegionBA.java RegionBefore.java RegionSE.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java Removed: src/java/org/apache/fop/fo/pagination RegionBASE.java Log: Consolidated RegionBASE into Region and RegionBA/RegionSE (RegionBASE was supporting only one unique property.) Revision ChangesPath 1.26 +3 -11 xml-fop/src/java/org/apache/fop/fo/pagination/Region.java Index: Region.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/Region.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- Region.java 1 Aug 2004 04:20:50 - 1.25 +++ Region.java 1 Aug 2004 15:26:52 - 1.26 @@ -57,6 +57,8 @@ /** Holds the writing mode */ protected int wm; +protected int extent = 0; + /** * @see org.apache.fop.fo.FONode#FONode(FONode) */ @@ -190,16 +192,6 @@ } public int getExtent() { -return 0; -} - -/** - * This is a hook for the AddLMVisitor class to be able to access - * this object. - * @param aLMV the AddLMVisitor object that can access this object. - */ -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveRegion(this); +return extent; } - } 1.13 +11 -15xml-fop/src/java/org/apache/fop/fo/pagination/RegionBA.java Index: RegionBA.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/RegionBA.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- RegionBA.java 27 Jul 2004 23:57:16 - 1.12 +++ RegionBA.java 1 Aug 2004 15:26:52 - 1.13 @@ -22,6 +22,7 @@ import java.awt.Rectangle; // XML +import org.xml.sax.Attributes; import org.xml.sax.SAXParseException; // FOP @@ -32,7 +33,7 @@ /** * Abstract base class for fo:region-before and fo:region-after. */ -public abstract class RegionBA extends RegionBASE { +public abstract class RegionBA extends Region { private boolean bPrecedence; @@ -43,6 +44,15 @@ super(parent, regionId); } +protected void addProperties(Attributes attlist) throws SAXParseException { +super.addProperties(attlist); + +bPrecedence = +(this.propertyList.get(PR_PRECEDENCE).getEnum() == Precedence.TRUE); + +this.extent = this.propertyList.get(PR_EXTENT).getLength().getValue(); +} + /** * @see org.apache.fop.fo.pagination.Region#getPrecedence() */ @@ -51,15 +61,6 @@ } /** - * @see org.apache.fop.fo.FONode#endOfNode() - */ -protected void endOfNode() throws SAXParseException { -super.endOfNode(); -bPrecedence = -(this.propertyList.get(PR_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 @@ -87,10 +88,5 @@ } } } - -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveRegionBA(this); -} - } 1.12 +3 -3 xml-fop/src/java/org/apache/fop/fo/pagination/RegionBefore.java Index: RegionBefore.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/RegionBefore.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- RegionBefore.java 27 Jul 2004 23:57:16 - 1.11 +++ RegionBefore.java 1 Aug 2004 15:26:52 - 1.12 @@ -18,13 +18,13 @@ package org.apache.fop.fo.pagination; +// Java +import java.awt.Rectangle; + // FOP import org.apache.fop.datatypes.FODimension; import org.apache.fop.fo.FONode; import org.apache.fop.layoutmgr.AddLMVisitor; - -// Java -import java.awt.Rectangle; /** * The fo:region-before element. 1.8 +11 -6 xml-fop/src/java/org/apache/fop/fo/pagination/RegionSE.java Index: RegionSE.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/RegionSE.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- RegionSE.java 27 Jul 2004 23:57:16 - 1.7 +++ RegionSE.java 1 Aug 2004 15:26:53 - 1.8 @@ -21,6 +21,10 @@ // Java import java.awt.Rectangle; +// XML +import
cvs commit: xml-fop/src/java/org/apache/fop/fo/flow InstreamForeignObject.java
gmazza 2004/08/01 09:46:46 Modified:src/java/org/apache/fop/fo FONode.java src/java/org/apache/fop/fo/flow InstreamForeignObject.java Log: Child element validation added to fo:instream-foreign-object. Revision ChangesPath 1.36 +14 -0 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- FONode.java 1 Aug 2004 04:20:47 - 1.35 +++ FONode.java 1 Aug 2004 16:46:46 - 1.36 @@ -245,6 +245,20 @@ * Helper function to standardize "too many" error exceptions * (e.g., two fo:declarations within fo:root) * @param loc org.xml.sax.Locator object of the error (*not* parent node) + * @param nsURI namespace URI of incoming invalid node + * @param lName local name (i.e., no prefix) of incoming node + */ +protected void tooManyNodesError(Locator loc, String nsURI, String lName) +throws SAXParseException { +throw new SAXParseException (errorText(loc) + getName() + ", only one " ++ getNodeString(nsURI, lName) + " may be declared.", loc); +} + +/** + * Helper function to standardize "too many" error exceptions + * (e.g., two fo:declarations within fo:root) + * This overrloaded method helps make the caller code better self-documenting + * @param loc org.xml.sax.Locator object of the error (*not* parent node) * @param offendingNode incoming node that would cause a duplication. */ protected void tooManyNodesError(Locator loc, String offendingNode) 1.16 +35 -73 xml-fop/src/java/org/apache/fop/fo/flow/InstreamForeignObject.java Index: InstreamForeignObject.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/InstreamForeignObject.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- InstreamForeignObject.java27 Jul 2004 23:57:12 - 1.15 +++ InstreamForeignObject.java1 Aug 2004 16:46:46 - 1.16 @@ -18,7 +18,14 @@ package org.apache.fop.fo.flow; +// XML +import org.xml.sax.Attributes; +import org.xml.sax.Locator; +import org.xml.sax.SAXParseException; + +// FOP import org.apache.fop.fo.FONode; +import org.apache.fop.fo.FOElementMapping; import org.apache.fop.layoutmgr.AddLMVisitor; import org.apache.fop.fo.FObj; @@ -29,6 +36,8 @@ */ public class InstreamForeignObject extends FObj { +boolean hasNonXSLNamespaceElement = false; + /** * constructs an instream-foreign-object object (called by Maker). * @@ -38,6 +47,32 @@ super(parent); } +/** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + * XSL Content Model: one (1) non-XSL namespace child + */ +protected void validateChildNode(Locator loc, String nsURI, String localName) +throws SAXParseException { +if (nsURI == FOElementMapping.URI) { +invalidChildError(loc, nsURI, localName); +} else if (hasNonXSLNamespaceElement) { +tooManyNodesError(loc, "child element"); +} else { +hasNonXSLNamespaceElement = true; +} +} + +/** + * Make sure content model satisfied, if so then tell the + * StructureRenderer that we are at the end of the flow. + * @see org.apache.fop.fo.FONode#end + */ +protected void endOfNode() throws SAXParseException { +if (!hasNonXSLNamespaceElement) { +missingChildElementError("one (1) non-XSL namespace child"); +} +} + public int computeXOffset (int ipd, int cwidth) { int xoffset = 0; int ta = propertyList.get(PR_TEXT_ALIGN).getEnum(); @@ -84,79 +119,6 @@ public boolean generatesInlineAreas() { return true; } - -/* - -// Common Accessibility Properties -AccessibilityProps mAccProps = propMgr.getAccessibilityProps(); - -// Common Aural Properties -AuralProps mAurProps = propMgr.getAuralProps(); - -// Common Border, Padding, and Background Properties -BorderAndPadding bap = propMgr.getBorderAndPadding(); -BackgroundProps bProps = propMgr.getBackgroundProps(); - -// Common Margin Properties-Inline -MarginInlineProps mProps = propMgr.getMarginInlineProps(); - -// Common Relative Position Properties -Relati
cvs commit: xml-fop/src/java/org/apache/fop/fo/flow BidiOverride.java Inline.java
gmazza 2004/08/02 22:22:43 Modified:src/java/org/apache/fop/fo AbstractCharIterator.java FObj.java src/java/org/apache/fop/fo/flow BidiOverride.java Inline.java Log: Implemented validity checking for fo:bidi-override. Revision ChangesPath 1.3 +1 -1 xml-fop/src/java/org/apache/fop/fo/AbstractCharIterator.java Index: AbstractCharIterator.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/AbstractCharIterator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AbstractCharIterator.java 27 Feb 2004 17:57:40 - 1.2 +++ AbstractCharIterator.java 3 Aug 2004 05:22:43 - 1.3 @@ -33,7 +33,7 @@ /** * @see org.apache.fop.fo.CharIterator#nextChar() */ -public abstract char nextChar() throws NoSuchElementException ; +public abstract char nextChar() throws NoSuchElementException; /** * @see java.util.Iterator#next() 1.59 +21 -1 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- FObj.java 1 Aug 2004 04:20:48 - 1.58 +++ FObj.java 3 Aug 2004 05:22:43 - 1.59 @@ -366,7 +366,7 @@ /** * Return an iterator over the object's childNodes starting - * at the pased node. + * at the passed-in node. * @param childNode First node in the iterator * @return A ListIterator or null if childNode isn't a child of * this FObj. @@ -528,6 +528,26 @@ || lName.equals("wrapper") || (!isOutOfLineFODescendant && lName.equals("float")) || lName.equals("retrieve-marker"))); +} + +/** + * Convenience method for validity checking. Checks if the + * current node has an ancestor of a given name. + * @param ancestorName -- node name to check for (e.g., "fo:root") + * @return number of levels above FO where ancestor exists, + *-1 if not found + */ +protected int findAncestor(String ancestorName) { +int found = 1; +FONode temp = getParent(); +while (temp != null) { +if (temp.getName().equals(ancestorName)) { +return found; +} +found += 1; +temp = temp.getParent(); +} +return -1; } } 1.11 +63 -25xml-fop/src/java/org/apache/fop/fo/flow/BidiOverride.java Index: BidiOverride.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/BidiOverride.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- BidiOverride.java 27 Jul 2004 23:57:12 - 1.10 +++ BidiOverride.java 3 Aug 2004 05:22:43 - 1.11 @@ -18,7 +18,13 @@ package org.apache.fop.fo.flow; +// XML +import org.xml.sax.Attributes; +import org.xml.sax.Locator; +import org.xml.sax.SAXParseException; + // FOP +import org.apache.fop.fo.FOElementMapping; import org.apache.fop.fo.FONode; import org.apache.fop.fo.FObjMixed; import org.apache.fop.layoutmgr.AddLMVisitor; @@ -30,36 +36,72 @@ */ public class BidiOverride extends FObjMixed { +// used for FO validation +private boolean blockOrInlineItemFound = false; +private boolean canHaveBlockLevelChildren = true; + /** * @param parent FONode that is the parent of this object */ public BidiOverride(FONode parent) { super(parent); -} - -private void setup() { - -// Common Aural Properties -CommonAural mAurProps = propMgr.getAuralProps(); + + /* Check to see if this node can have block-level children. +* See validateChildNode() below. +*/ + int lvlLeader = findAncestor("fo:leader"); + int lvlInCntr = findAncestor("fo:inline-container"); + int lvlInline = findAncestor("fo:inline"); + int lvlFootnote = findAncestor("fo:footnote"); + + if (lvlLeader > 0) { + if (lvlInCntr < 0 || + (lvlInCntr > 0 && lvlInCntr > lvlLeader)) { + canHaveBlockLevelChildren = false; + } + } else if (lvlInline > 0 && lvlFootnote == (lvlInline + 1)) { + if (lvlInCntr < 0 || + (lvlInCntr > 0 && lvlI
cvs commit: xml-fop/src/java/org/apache/fop/fo/extensions/svg SVGElement.java
gmazza 2004/08/03 15:36:26 Modified:lib batik.jar src/java/org/apache/fop/fo/extensions/svg SVGElement.java Log: New Batik library and updated SVGElement to handle it. Revision ChangesPath 1.12 +6534 -6352xml-fop/lib/batik.jar <> 1.10 +5 -2 xml-fop/src/java/org/apache/fop/fo/extensions/svg/SVGElement.java Index: SVGElement.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/extensions/svg/SVGElement.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- SVGElement.java 1 Aug 2004 04:20:48 - 1.9 +++ SVGElement.java 3 Aug 2004 22:36:26 - 1.10 @@ -137,6 +137,9 @@ public float getFontSize() { return 12; } + +public void deselectAll() { +} }; ((SVGOMElement)e).setSVGContext(dc); @@ -190,7 +193,7 @@ /** * This class is the default context for a particular - * element. Informations not available on the element are get from + * element. Information not available on the element are obtained from * the bridge context (such as the viewport or the pixel to * millimeter factor. */ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/org/apache/fop/svg SVGElement.java
gmazza 2004/08/03 15:44:52 Modified:lib Tag: fop-0_20_2-maintain batik.jar src/org/apache/fop/svg Tag: fop-0_20_2-maintain SVGElement.java Log: Updated batik.jar and SVGElement for maintenance branch. Revision ChangesPath No revision No revision 1.5.2.7 +6576 -6381xml-fop/lib/batik.jar <> No revision No revision 1.16.2.10 +52 -25xml-fop/src/org/apache/fop/svg/Attic/SVGElement.java Index: SVGElement.java === RCS file: /home/cvs/xml-fop/src/org/apache/fop/svg/Attic/SVGElement.java,v retrieving revision 1.16.2.9 retrieving revision 1.16.2.10 diff -u -r1.16.2.9 -r1.16.2.10 --- SVGElement.java 20 Sep 2003 18:59:49 - 1.16.2.9 +++ SVGElement.java 3 Aug 2004 22:44:52 - 1.16.2.10 @@ -51,30 +51,54 @@ package org.apache.fop.svg; // FOP -import org.apache.fop.fo.FObj; -import org.apache.fop.fo.PropertyList; -import org.apache.fop.fo.Status; -import org.apache.fop.layout.Area; -import org.apache.fop.layout.FontState; -import org.apache.fop.apps.FOPException; -import org.apache.fop.layout.inline.ForeignObjectArea; -import org.apache.fop.configuration.Configuration; - -import org.apache.batik.dom.svg.SVGContext; -import org.apache.batik.dom.svg.SVGOMElement; -import org.apache.batik.dom.svg.SVGOMDocument; -import org.apache.batik.dom.util.XMLSupport; -import org.w3c.dom.Element; -import org.w3c.dom.svg.SVGDocument; -import org.apache.batik.bridge.BridgeContext; -import org.apache.batik.bridge.UnitProcessor; - -import org.w3c.dom.DOMImplementation; -import org.apache.batik.dom.svg.SVGDOMImplementation; - -import java.net.URL; -import java.awt.geom.AffineTransform; -import java.awt.geom.Rectangle2D; +import org.apache.fop.fo.FObj; + +import org.apache.fop.fo.PropertyList; + +import org.apache.fop.fo.Status; + +import org.apache.fop.layout.Area; + +import org.apache.fop.layout.FontState; + +import org.apache.fop.apps.FOPException; + +import org.apache.fop.layout.inline.ForeignObjectArea; + +import org.apache.fop.configuration.Configuration; + + + +import org.apache.batik.dom.svg.SVGContext; + +import org.apache.batik.dom.svg.SVGOMElement; + +import org.apache.batik.dom.svg.SVGOMDocument; + +import org.apache.batik.dom.util.XMLSupport; + +import org.w3c.dom.Element; + +import org.w3c.dom.svg.SVGDocument; + +import org.apache.batik.bridge.BridgeContext; + +import org.apache.batik.bridge.UnitProcessor; + + + +import org.w3c.dom.DOMImplementation; + +import org.apache.batik.dom.svg.SVGDOMImplementation; + + + +import java.net.URL; + +import java.awt.geom.AffineTransform; + +import java.awt.geom.Rectangle2D; + /** * class representing svg:svg pseudo flow object. @@ -197,6 +221,9 @@ public float getFontSize(){ return fs.getFontSize() / 1000f; +} + +public void deselectAll() { } }; ((SVGOMElement)svgRoot).setSVGContext(dc); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr AddLMVisitor.java
gmazza 2004/08/04 15:21:04 Modified:src/java/org/apache/fop/fo FObj.java ToBeImplementedElement.java Unknown.java UnknownXMLObj.java XMLElement.java XMLObj.java src/java/org/apache/fop/fo/extensions/svg SVGElement.java SVGObj.java src/java/org/apache/fop/fo/flow Float.java InitialPropertySet.java MultiCase.java MultiProperties.java MultiPropertySet.java MultiSwitch.java MultiToggle.java TableAndCaption.java TableCaption.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java Log: Start of conversion of AddLMVisitor to FObj.AddLayoutManager(): removed acceptVisitor() methods from FO's that don't need LM's (e.g., those FO's not yet implemented or those that don't return areas anyway). Revision ChangesPath 1.60 +9 -1 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- FObj.java 3 Aug 2004 05:22:43 - 1.59 +++ FObj.java 4 Aug 2004 22:21:02 - 1.60 @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.ListIterator; import java.util.Map; import java.util.Set; @@ -434,6 +435,14 @@ } /** + * Return a LayoutManager responsible for laying out this FObj's content. + * Must override in subclasses if their content can be laid out. + * @param list the list to which the layout manager(s) should be added + */ +public void addLayoutManager(List list) { +} + +/** * This is a hook for the AddLMVisitor class to be able to access * this object. * @param aLMV the AddLMVisitor object that can access this object. @@ -442,7 +451,6 @@ aLMV.serveFObj(this); } - /* * Return a string representation of the fo element. * Deactivated in order to see precise ID of each fo element created 1.9 +0 -12 xml-fop/src/java/org/apache/fop/fo/ToBeImplementedElement.java Index: ToBeImplementedElement.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/ToBeImplementedElement.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ToBeImplementedElement.java 31 Jul 2004 00:44:21 - 1.8 +++ ToBeImplementedElement.java 4 Aug 2004 22:21:02 - 1.9 @@ -18,8 +18,6 @@ package org.apache.fop.fo; -import org.apache.fop.layoutmgr.AddLMVisitor; - /** * This class is a placeholder for elements that have not been implemented. */ @@ -31,14 +29,4 @@ protected ToBeImplementedElement(FONode parent) { super(parent); } - -/** - * This is a hook for the AddLMVisitor class to be able to access - * this object. - * @param aLMV the AddLMVisitor object that can access this object. - */ -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveToBeImplementedElement(this); -} - } 1.8 +0 -12 xml-fop/src/java/org/apache/fop/fo/Unknown.java Index: Unknown.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/Unknown.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Unknown.java 27 Jul 2004 23:57:10 - 1.7 +++ Unknown.java 4 Aug 2004 22:21:02 - 1.8 @@ -18,8 +18,6 @@ package org.apache.fop.fo; -import org.apache.fop.layoutmgr.AddLMVisitor; - /** * Class for handling an unknown element, for example one from an unsupported * namespace. @@ -53,14 +51,4 @@ private void setup() { getLogger().debug("Layout Unknown element"); } - -/** - * This is a hook for the AddLMVisitor class to be able to access - * this object. - * @param aLMV the AddLMVisitor object that can access this object. - */ -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveUnknown(this); -} - } 1.10 +0 -11 xml-fop/src/java/org/apache/fop/fo/UnknownXMLObj.java Index: UnknownXMLObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/UnknownXMLObj.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- UnknownXMLObj.java
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr AddLMVisitor.java
gmazza 2004/08/04 15:50:59 Modified:src/java/org/apache/fop/fo/extensions Bookmarks.java ExtensionObj.java Label.java Outline.java src/java/org/apache/fop/fo/flow FootnoteBody.java ListItemBody.java ListItemLabel.java Marker.java TableColumn.java src/java/org/apache/fop/fo/pagination ColorProfile.java ConditionalPageMasterReference.java Declarations.java LayoutMasterSet.java PageMasterReference.java PageSequence.java PageSequenceMaster.java Region.java RegionAfter.java RegionBA.java RegionBefore.java RegionBody.java RegionEnd.java RegionSE.java RegionStart.java RepeatablePageMasterAlternatives.java RepeatablePageMasterReference.java Root.java SimplePageMaster.java SinglePageMasterReference.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java Log: More detaching from AddLMVisitor those FO's which don't/don't currently generate areas. Revision ChangesPath 1.11 +1 -7 xml-fop/src/java/org/apache/fop/fo/extensions/Bookmarks.java Index: Bookmarks.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/extensions/Bookmarks.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- Bookmarks.java27 Jul 2004 23:57:11 - 1.10 +++ Bookmarks.java4 Aug 2004 22:50:57 - 1.11 @@ -26,7 +26,6 @@ // FOP import org.apache.fop.fo.FONode; -import org.apache.fop.layoutmgr.AddLMVisitor; import org.apache.fop.fo.pagination.Root; /** @@ -64,12 +63,7 @@ ((Root) parent).setBookmarks(this); } -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveBookmarks(this); -} - public ArrayList getOutlines() { return outlines; } - } 1.5 +1 -7 xml-fop/src/java/org/apache/fop/fo/extensions/ExtensionObj.java Index: ExtensionObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/extensions/ExtensionObj.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ExtensionObj.java 27 Jul 2004 23:57:11 - 1.4 +++ ExtensionObj.java 4 Aug 2004 22:50:57 - 1.5 @@ -20,7 +20,6 @@ import org.apache.fop.fo.FONode; import org.apache.fop.fo.FObj; -import org.apache.fop.layoutmgr.AddLMVisitor; /** * Base class for pdf bookmark extension objects. @@ -35,10 +34,5 @@ public ExtensionObj(FONode parent) { super(parent); } - -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveExtensionObj(this); -} - } 1.7 +1 -7 xml-fop/src/java/org/apache/fop/fo/extensions/Label.java Index: Label.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/extensions/Label.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- Label.java27 Jul 2004 23:57:11 - 1.6 +++ Label.java4 Aug 2004 22:50:57 - 1.7 @@ -21,8 +21,6 @@ import org.xml.sax.Locator; import org.apache.fop.fo.FONode; -import org.apache.fop.layoutmgr.AddLMVisitor; - /** * Labal for PDF bookmark extension. @@ -61,10 +59,6 @@ */ public String toString() { return label; -} - -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveLabel(this); } public String getName() { 1.9 +1 -6 xml-fop/src/java/org/apache/fop/fo/extensions/Outline.java Index: Outline.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/extensions/Outline.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Outline.java 1 Aug 2004 04:20:48 - 1.8 +++ Outline.java 4 Aug 2004 22:50:57 - 1.9 @@ -19,7 +19,6 @@ package org.apache.fop.fo.extensions; import org.apache.fop.fo.FONode; -import org.apache.fop.layoutmgr.AddLMVisitor; import java.util.ArrayList; @@ -87,10 +86,6 @@ */ public String getLabel() { return label == null ? "" : label.toString(); -} - -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveOutline(this); } public String getInternalDestination() { 1.16 +0 -5 xml-fop/s
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr AddLMVisitor.java BidiLayoutManager.java ICLayoutManager.java
gmazza 2004/08/05 21:22:18 Modified:src/java/org/apache/fop/fo FONode.java FOText.java FObj.java FObjMixed.java src/java/org/apache/fop/fo/flow BasicLink.java BidiOverride.java Block.java BlockContainer.java Character.java ExternalGraphic.java Footnote.java Inline.java InlineContainer.java InstreamForeignObject.java Leader.java ListBlock.java ListItem.java PageNumber.java PageNumberCitation.java RetrieveMarker.java Table.java TableBody.java TableCell.java TableFooter.java TableHeader.java TableRow.java Wrapper.java src/java/org/apache/fop/fo/pagination Flow.java StaticContent.java Title.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java BidiLayoutManager.java ICLayoutManager.java Added: src/java/org/apache/fop/fo LMVisited.java Log: 1.) Continued conversion/deprecation of AddLMVisitor. About 16 FO's remaining. 2.) Created a *temporary* LMVisited interface to mark those FO's still needing conversion. This will be dropped once the process is complete. Revision ChangesPath 1.37 +0 -12 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- FONode.java 1 Aug 2004 16:46:46 - 1.36 +++ FONode.java 6 Aug 2004 04:22:14 - 1.37 @@ -33,9 +33,6 @@ import org.apache.fop.util.CharUtilities; import org.apache.fop.fo.extensions.ExtensionElementMapping; import org.apache.fop.fo.extensions.svg.SVGElementMapping; -import org.apache.fop.layoutmgr.AddLMVisitor; - - /** * base class for nodes in the XML tree @@ -195,15 +192,6 @@ */ public CharIterator charIterator() { return new OneCharIterator(CharUtilities.CODE_EOT); -} - -/** - * This is a hook for the AddLMVisitor class to be able to access - * this object. - * @param aLMV the AddLMVisitor object that can access this object. - */ -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveFONode(this); } /** 1.22 +7 -6 xml-fop/src/java/org/apache/fop/fo/FOText.java Index: FOText.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOText.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- FOText.java 31 Jul 2004 00:44:21 - 1.21 +++ FOText.java 6 Aug 2004 04:22:15 - 1.22 @@ -19,12 +19,13 @@ package org.apache.fop.fo; // Java +import java.util.List; import java.util.NoSuchElementException; // FOP import org.apache.fop.fo.flow.Block; import org.apache.fop.fo.pagination.Root; -import org.apache.fop.layoutmgr.AddLMVisitor; +import org.apache.fop.layoutmgr.TextLayoutManager; /** * A text node in the formatting object tree. @@ -492,11 +493,11 @@ } /** - * This is a hook for the AddLMVisitor class to be able to access - * this object. - * @param aLMV the AddLMVisitor object that can access this object. + * @param list the list to which the layout manager(s) should be added */ -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveFOText(this); +public void addLayoutManager(List list) { +if (endIndex - startIndex > 0) { +list.add(new TextLayoutManager(this)); +} } } 1.61 +0 -9 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.60 retrieving revision 1.61 diff -u -r1.60 -r1.61 --- FObj.java 4 Aug 2004 22:21:02 - 1.60 +++ FObj.java 6 Aug 2004 04:22:15 - 1.61 @@ -442,15 +442,6 @@ public void addLayoutManager(List list) { } -/** - * This is a hook for the AddLMVisitor class to be able to access - * this object. - * @param aLMV the AddLMVisitor object that can access this object. - */ -public void acceptVisitor(AddLMVisitor aLMV) { -aLMV.serveFObj(this); -} - /* * Return a string representation of the fo element. * Deactivated in order to see precise ID of each fo element created 1.30 +12 -6 xml-fop/src/java/o
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr AddLMVisitor.java
gmazza 2004/08/06 08:41:12 Modified:src/java/org/apache/fop/fo FOText.java FObjMixed.java src/java/org/apache/fop/fo/flow BasicLink.java BidiOverride.java Block.java BlockContainer.java ExternalGraphic.java Footnote.java InlineContainer.java ListBlock.java PageNumberCitation.java TableCell.java TableRow.java src/java/org/apache/fop/fo/pagination Flow.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java Log: Moved three FO's from AddLMVisitor->FObj.AddLayoutManager(); will eventually need to create additional LM's for at least two of them to remove the Area-specific code these FO's now have. Revision ChangesPath 1.23 +1 -1 xml-fop/src/java/org/apache/fop/fo/FOText.java Index: FOText.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOText.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- FOText.java 6 Aug 2004 04:22:15 - 1.22 +++ FOText.java 6 Aug 2004 15:41:10 - 1.23 @@ -493,7 +493,7 @@ } /** - * @param list the list to which the layout manager(s) should be added + * @see org.apache.fop.fo.FObj#addLayoutManager(List) */ public void addLayoutManager(List list) { if (endIndex - startIndex > 0) { 1.31 +1 -1 xml-fop/src/java/org/apache/fop/fo/FObjMixed.java Index: FObjMixed.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObjMixed.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- FObjMixed.java6 Aug 2004 04:22:15 - 1.30 +++ FObjMixed.java6 Aug 2004 15:41:10 - 1.31 @@ -76,7 +76,7 @@ } /** - * @param list the list to which the layout manager(s) should be added + * @see org.apache.fop.fo.FObj#addLayoutManager(List) */ public void addLayoutManager(List list) { if (getChildNodes() != null) { 1.22 +49 -27xml-fop/src/java/org/apache/fop/fo/flow/BasicLink.java Index: BasicLink.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/BasicLink.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- BasicLink.java6 Aug 2004 04:22:15 - 1.21 +++ BasicLink.java6 Aug 2004 15:41:10 - 1.22 @@ -18,29 +18,38 @@ package org.apache.fop.fo.flow; +// Java +import java.util.List; + // XML import org.xml.sax.Attributes; import org.xml.sax.Locator; import org.xml.sax.SAXParseException; // FOP +import org.apache.fop.area.inline.InlineArea; +import org.apache.fop.area.inline.InlineParent; +import org.apache.fop.area.LinkResolver; +import org.apache.fop.area.PageViewport; +import org.apache.fop.area.Trait; import org.apache.fop.fo.FOElementMapping; import org.apache.fop.fo.FONode; -import org.apache.fop.layoutmgr.AddLMVisitor; +import org.apache.fop.layoutmgr.LayoutManager; +import org.apache.fop.layoutmgr.LMiter; +import org.apache.fop.layoutmgr.InlineStackingLayoutManager; import org.apache.fop.fo.properties.CommonAccessibility; import org.apache.fop.fo.properties.CommonAural; import org.apache.fop.fo.properties.CommonBorderAndPadding; import org.apache.fop.fo.properties.CommonBackground; import org.apache.fop.fo.properties.CommonMarginInline; import org.apache.fop.fo.properties.CommonRelativePosition; -import org.apache.fop.fo.LMVisited; /** * The basic link. * This sets the basic link trait on the inline parent areas * that are created by the fo element. */ -public class BasicLink extends Inline implements LMVisited { +public class BasicLink extends Inline { private String link = null; private boolean external = false; @@ -105,24 +114,6 @@ } /** - * @return the String value of the link - */ -public String getLink() { -return link; -} - -/** - * @return true if the link is external, false otherwise - */ -public boolean getExternal() { -return external; -} - -public String getName() { -return "fo:basic-link"; -} - -/** * @return true (BasicLink can contain Markers) */ protected boolean containsMarkers() { @@ -130,11 +121,42 @@ } /** - * This is a hook for the AddLMVisitor class to be able to access - * this object. - * @param aLMV the AddLMVisitor obj
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr/list ListItemLayoutManager.java
gmazza 2004/08/07 06:01:17 Modified:src/java/org/apache/fop/fo FONode.java src/java/org/apache/fop/fo/flow BasicLink.java BidiOverride.java Block.java InstreamForeignObject.java ListItem.java src/java/org/apache/fop/fo/pagination Declarations.java Flow.java LayoutMasterSet.java PageSequence.java PageSequenceMaster.java RepeatablePageMasterAlternatives.java Root.java StaticContent.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java BidiLayoutManager.java src/java/org/apache/fop/layoutmgr/list ListItemLayoutManager.java Added: src/java/org/apache/fop/layoutmgr BasicLinkLayoutManager.java Log: 1. new FONode.invalidChildError method added that will takes a "ruleViolated" string for more detailed error messages. 2. FO_URI added to FONode to decrease the number of imports of FOElementMapping within the FONode subclasses. 3. Layout logic moved from fo.flow.BasicLink to a new BasicLinkLayoutManager class. 4. BidiLayoutManager constructor modified, now needs the flow.BidiOverride object. 5. ListItemLayoutManager setup moved from AddLMManager to flow.Listitem and layoutmgr.list.ListItemLayoutManager. Revision ChangesPath 1.38 +19 -2 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- FONode.java 6 Aug 2004 04:22:14 - 1.37 +++ FONode.java 7 Aug 2004 13:01:15 - 1.38 @@ -40,6 +40,8 @@ */ public abstract class FONode { +protected static String FO_URI = FOElementMapping.URI; + /** Parent FO node */ protected FONode parent; @@ -277,10 +279,25 @@ */ protected void invalidChildError(Locator loc, String nsURI, String lName) throws SAXParseException { -throw new SAXParseException (errorText(loc) + getNodeString(nsURI, lName) + -" is not a valid child element of " + getName() + ".", loc); +invalidChildError(loc, nsURI, lName, null); } +/** + * Helper function to return "invalid child" exceptions with more + * complex validation rules (i.e., needing more explanation of the problem) + * @param loc org.xml.sax.Locator object of the error (*not* parent node) + * @param nsURI namespace URI of incoming invalid node + * @param lName local name (i.e., no prefix) of incoming node + * @param ruleViolated text explanation of problem + */ +protected void invalidChildError(Locator loc, String nsURI, String lName, +String ruleViolated) +throws SAXParseException { +throw new SAXParseException (errorText(loc) + getNodeString(nsURI, lName) + +" is not a valid child element of " + getName() ++ ((ruleViolated != null) ? ": " + ruleViolated : "."), loc); +} + /** * Helper function to return missing child element errors * (e.g., fo:layout-master-set not having any page-master child element) 1.23 +46 -63xml-fop/src/java/org/apache/fop/fo/flow/BasicLink.java Index: BasicLink.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/BasicLink.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- BasicLink.java6 Aug 2004 15:41:10 - 1.22 +++ BasicLink.java7 Aug 2004 13:01:15 - 1.23 @@ -27,33 +27,25 @@ import org.xml.sax.SAXParseException; // FOP -import org.apache.fop.area.inline.InlineArea; -import org.apache.fop.area.inline.InlineParent; -import org.apache.fop.area.LinkResolver; -import org.apache.fop.area.PageViewport; -import org.apache.fop.area.Trait; -import org.apache.fop.fo.FOElementMapping; import org.apache.fop.fo.FONode; -import org.apache.fop.layoutmgr.LayoutManager; -import org.apache.fop.layoutmgr.LMiter; -import org.apache.fop.layoutmgr.InlineStackingLayoutManager; -import org.apache.fop.fo.properties.CommonAccessibility; -import org.apache.fop.fo.properties.CommonAural; -import org.apache.fop.fo.properties.CommonBorderAndPadding; -import org.apache.fop.fo.properties.CommonBackground; -import org.apache.fop.fo.properties.CommonMarginInline; -import org.apache.fop.fo.properties.CommonRelativePosition; +import org.apache.fop.layoutmgr.BasicLinkLayoutManager; /** - * The
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr PageNumberLayoutManager.java AddLMVisitor.java
gmazza 2004/08/08 10:52:35 Modified:src/java/org/apache/fop/fo/flow PageNumber.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java Added: src/java/org/apache/fop/layoutmgr PageNumberLayoutManager.java Log: Moved fo:page-number layout code from AddLMVisitor to new PageNumberLayoutManager class. Revision ChangesPath 1.32 +13 -53xml-fop/src/java/org/apache/fop/fo/flow/PageNumber.java Index: PageNumber.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/PageNumber.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- PageNumber.java 6 Aug 2004 04:22:16 - 1.31 +++ PageNumber.java 8 Aug 2004 17:52:35 - 1.32 @@ -18,6 +18,9 @@ package org.apache.fop.fo.flow; +// Java +import java.util.List; + // XML import org.xml.sax.Attributes; import org.xml.sax.Locator; @@ -26,23 +29,15 @@ // FOP import org.apache.fop.datatypes.ColorType; import org.apache.fop.fo.FONode; -import org.apache.fop.layoutmgr.AddLMVisitor; import org.apache.fop.fo.FObj; -import org.apache.fop.fo.properties.CommonAccessibility; -import org.apache.fop.fo.properties.CommonAural; -import org.apache.fop.fo.properties.CommonBackground; -import org.apache.fop.fo.properties.CommonBorderAndPadding; -import org.apache.fop.fo.properties.CommonMarginInline; -import org.apache.fop.fo.properties.CommonRelativePosition; import org.apache.fop.fonts.Font; -import org.apache.fop.fo.LMVisited; - +import org.apache.fop.layoutmgr.PageNumberLayoutManager; /** * Class modelling the fo:page-number object. See Sec. 6.6.10 of the XSL-FO * Standard. */ -public class PageNumber extends FObj implements LMVisited { +public class PageNumber extends FObj { /** FontState for this object */ protected Font fontState; @@ -77,42 +72,10 @@ } private void setup() { - -// Common Accessibility Properties -CommonAccessibility mAccProps = propMgr.getAccessibilityProps(); - -// Common Aural Properties -CommonAural mAurProps = propMgr.getAuralProps(); - -// Common Border, Padding, and Background Properties -CommonBorderAndPadding bap = propMgr.getBorderAndPadding(); -CommonBackground bProps = propMgr.getBackgroundProps(); - // Common Font Properties this.fontState = propMgr.getFontState(getFOInputHandler().getFontInfo()); -// Common Margin Properties-Inline -CommonMarginInline mProps = propMgr.getMarginInlineProps(); - -// Common Relative Position Properties -CommonRelativePosition mRelProps = - propMgr.getRelativePositionProps(); - -// this.propertyList.get("alignment-adjust"); -// this.propertyList.get("alignment-baseline"); -// this.propertyList.get("baseline-shift"); -// this.propertyList.get("dominant-baseline"); setupID(); -// this.propertyList.get("keep-with-next"); -// this.propertyList.get("keep-with-previous"); -// this.propertyList.get("letter-spacing"); -// this.propertyList.get("line-height"); -// this.propertyList.get("line-height-shift-adjustment"); -// this.propertyList.get("score-spaces"); -// this.propertyList.get("text-decoration"); -// this.propertyList.get("text-shadow"); -// this.propertyList.get("text-transform"); -// this.propertyList.get("word-spacing"); ColorType c = this.propertyList.get(PR_COLOR).getColorType(); this.red = c.getRed(); @@ -120,7 +83,6 @@ this.blue = c.getBlue(); this.wrapOption = this.propertyList.get(PR_WRAP_OPTION).getEnum(); - } /** @@ -134,17 +96,15 @@ getFOInputHandler().endPageNumber(this); } -public String getName() { -return "fo:page-number"; -} - /** - * This is a hook for the AddLMVisitor class to be able to access - * this object. - * @param aLMV the AddLMVisitor object that can access this object. + * @see org.apache.fop.fo.FObj#addLayoutManager(List) */ -public void acceptVisitor(AddLMVisitor aLMV) { - setup(); - aLMV.servePageNumber(this); +public void addLayoutManager(List list) { +PageNumberLayoutManager lm = new PageNumberLayoutManager(this); +list.add(lm); +} + +public String getName() { +return "fo:page-number"; } } 1.51 +1 -40 xml-f
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination ColorProfile.java ConditionalPageMasterReference.java Declarations.java Flow.java LayoutMasterSet.java PageSequence.java PageSequenceMaster.java RegionAfter.java RegionBefore.java RegionBody.java RegionEnd.java RegionStart.java RepeatablePageMasterAlternatives.java RepeatablePageMasterReference.java Root.java SimplePageMaster.java SinglePageMasterReference.java StaticContent.java Title.java
gmazza 2004/08/08 11:39:27 Modified:src/java/org/apache/fop/fo Constants.java FObj.java PropertySets.java src/java/org/apache/fop/fo/flow BasicLink.java BidiOverride.java Block.java BlockContainer.java Character.java ExternalGraphic.java Float.java Footnote.java FootnoteBody.java InitialPropertySet.java Inline.java InlineContainer.java InstreamForeignObject.java Leader.java ListBlock.java ListItem.java ListItemBody.java ListItemLabel.java Marker.java MultiCase.java MultiProperties.java MultiPropertySet.java MultiSwitch.java MultiToggle.java PageNumber.java PageNumberCitation.java RetrieveMarker.java Table.java TableAndCaption.java TableBody.java TableCaption.java TableCell.java TableColumn.java TableFooter.java TableHeader.java TableRow.java Wrapper.java src/java/org/apache/fop/fo/pagination ColorProfile.java ConditionalPageMasterReference.java Declarations.java Flow.java LayoutMasterSet.java PageSequence.java PageSequenceMaster.java RegionAfter.java RegionBefore.java RegionBody.java RegionEnd.java RegionStart.java RepeatablePageMasterAlternatives.java RepeatablePageMasterReference.java Root.java SimplePageMaster.java SinglePageMasterReference.java StaticContent.java Title.java Log: Implemented getNameId() which returns the Constants enumeration ID for the FO. For future array work or to reduce the amount of string comparisons being done. Revision ChangesPath 1.10 +3 -2 xml-fop/src/java/org/apache/fop/fo/Constants.java Index: Constants.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/Constants.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- Constants.java24 Jul 2004 05:47:45 - 1.9 +++ Constants.java8 Aug 2004 18:39:22 - 1.10 @@ -56,6 +56,7 @@ int RENDER_RTF = 10; // element constants +int FO_UNKNOWN = 0; // FObj base class int FO_BASIC_LINK = 1; int FO_BIDI_OVERRIDE = 2; int FO_BLOCK = 3; @@ -63,7 +64,7 @@ int FO_CHARACTER = 5; int FO_COLOR_PROFILE = 6; int FO_CONDITIONAL_PAGE_MASTER_REFERENCE = 7; -int FO_DECLARATION = 8; +int FO_DECLARATIONS = 8; int FO_EXTERNAL_GRAPHIC = 9; int FO_FLOAT = 10; int FO_FLOW = 11; 1.62 +8 -0 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- FObj.java 6 Aug 2004 04:22:15 - 1.61 +++ FObj.java 8 Aug 2004 18:39:22 - 1.62 @@ -548,5 +548,13 @@ } return -1; } + +/** + * Returns the Constants class integer value of this formatting object + * @return the integer enumeration of this FO + */ +public int getNameId() { +return FO_UNKNOWN; +} } 1.8 +3 -3 xml-fop/src/java/org/apache/fop/fo/PropertySets.java Index: PropertySets.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertySets.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- PropertySets.java 25 Jul 2004 01:00:35 - 1.7 +++ PropertySets.java 8 Aug 2004 18:39:22 - 1.8 @@ -187,10 +187,10 @@ elem = elements[Constants.FO_ROOT]; elem.addProperty(Constants.PR_MEDIA_USAGE); elem.addContent(Constants.FO_LAYOUT_MASTER_SET); -elem.addContent(Constants.FO_DECLARATION); +elem.addContent(Constants.FO_DECLARATIONS); elem.addContent(Constants.FO_PAGE_SEQUENCE); -elem = elements[Constants.FO_DECLARATION]; +elem = elements[Constants.FO_DECLARATIONS]; elem.addContent(Constants.FO_COLOR_PROFILE); elem = elements[Constants.FO_COLOR_PROFILE]; 1.24 +7 -0 xml-fop/src/java/org/apache/fop/fo/flow/BasicLink.java Index: BasicLink.java === RCS file: /home/cvs/xml-fop/src/java
cvs commit: xml-fop/src/java/org/apache/fop/fo/flow BasicLink.java BidiOverride.java Block.java BlockContainer.java Inline.java InlineContainer.java ListBlock.java ListItem.java ListItemBody.java ListItemLabel.java Table.java TableAndCaption.java TableBody.java TableCaption.java TableCell.java Wrapper.java
gmazza 2004/08/08 12:04:50 Modified:src/java/org/apache/fop/fo FObj.java PropertySets.java src/java/org/apache/fop/fo/flow BasicLink.java BidiOverride.java Block.java BlockContainer.java Inline.java InlineContainer.java ListBlock.java ListItem.java ListItemBody.java ListItemLabel.java Table.java TableAndCaption.java TableBody.java TableCaption.java TableCell.java Wrapper.java Log: Created a BitSet indicating FO's that can contain fo:marker child elements, removed all containsMarkers() methods from FObj subclasses. Revision ChangesPath 1.63 +3 -12 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.62 retrieving revision 1.63 diff -u -r1.62 -r1.63 --- FObj.java 8 Aug 2004 18:39:22 - 1.62 +++ FObj.java 8 Aug 2004 19:04:48 - 1.63 @@ -92,7 +92,7 @@ for (int i = 1; i < list.length; i++) { if (list[i] != null) propertyListTable[i] = list[i]; -} +} } } @@ -163,7 +163,8 @@ * @see org.apache.fop.fo.FONode#addChildNode(FONode) */ protected void addChildNode(FONode child) { -if (containsMarkers() && "fo:marker".equals(child.getName())) { +if (PropertySets.canHaveMarkers(getNameId()) && +"fo:marker".equals(child.getName())) { addMarker((Marker) child); } else { if (childNodes == null) { @@ -332,16 +333,6 @@ */ public boolean generatesInlineAreas() { return true; -} - -/** - * Check if this formatting object may contain markers. - * - * @return true if this can contain markers - * @todo confirm if still needed after validateChildNode() fully implemented - */ -protected boolean containsMarkers() { -return false; } /** 1.9 +30 -1 xml-fop/src/java/org/apache/fop/fo/PropertySets.java Index: PropertySets.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertySets.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- PropertySets.java 8 Aug 2004 18:39:22 - 1.8 +++ PropertySets.java 8 Aug 2004 19:04:48 - 1.9 @@ -25,6 +25,7 @@ public class PropertySets { private static short[][] mapping = null; +private static BitSet can_have_markers = null; private Element[] elements = new Element[Constants.ELEMENT_COUNT+1]; private BitSet block_elems = new BitSet(); @@ -998,7 +999,6 @@ return indices; } - public static short[] getPropertySet(int elementId) { if (mapping == null) { mapping = new short[Constants.ELEMENT_COUNT+1][]; @@ -1010,6 +1010,35 @@ return mapping[elementId]; } +/** + * Determines if fo:markers are allowed as children for the given FO + * @param elementId Constants enumeration ID of the FO (e.g., FO_ROOT) + * @return true if fo:markers allowed, false otherwise + * @todo check if still needed after validateChildNode() fully implemented + */ +public static boolean canHaveMarkers(int elementId) { +if (can_have_markers == null) { +can_have_markers = new BitSet(); +can_have_markers.set(Constants.FO_BASIC_LINK); +can_have_markers.set(Constants.FO_BIDI_OVERRIDE); +can_have_markers.set(Constants.FO_BLOCK); +can_have_markers.set(Constants.FO_BLOCK_CONTAINER); +can_have_markers.set(Constants.FO_INLINE); +can_have_markers.set(Constants.FO_INLINE_CONTAINER); +can_have_markers.set(Constants.FO_LIST_BLOCK); +can_have_markers.set(Constants.FO_LIST_ITEM); +can_have_markers.set(Constants.FO_LIST_ITEM_BODY); +can_have_markers.set(Constants.FO_LIST_ITEM_LABEL); +can_have_markers.set(Constants.FO_TABLE); +can_have_markers.set(Constants.FO_TABLE_BODY); +can_have_markers.set(Constants.FO_TABLE_CELL); +can_have_markers.set(Constants.FO_TABLE_AND_CAPTION); +can_have_markers.set(Constants.FO_TABLE_CAPTION); +can_have_markers.set(Constants.FO_WRAPPER); +} +return can_have_markers.get(elementId); +} + /** * An object that represent the properties and contents of a fo element */
cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr PageNumberCitationLayoutManager.java AddLMVisitor.java
gmazza 2004/08/09 22:33:16 Modified:src/java/org/apache/fop/fo FObj.java src/java/org/apache/fop/fo/flow Block.java PageNumberCitation.java RetrieveMarker.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java Added: src/java/org/apache/fop/layoutmgr PageNumberCitationLayoutManager.java Log: 1.) fo:retrieve marker layout initialization moved from AddLMVisitor to RetrieveMarker class. 2.) New PageNumberCitationLayoutManager class created, layout logic imported from fo.flow.PageNumberCitation to this new class. 3.) validateChildNode() implemented for fo:block. Revision ChangesPath 1.64 +9 -5 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.63 retrieving revision 1.64 diff -u -r1.63 -r1.64 --- FObj.java 8 Aug 2004 19:04:48 - 1.63 +++ FObj.java 10 Aug 2004 05:33:15 - 1.64 @@ -443,10 +443,6 @@ } */ -public String getName() { -return null; -} - /** * Convenience method for validity checking. Checks if the * incoming node is a member of the "%block;" parameter entity @@ -541,8 +537,16 @@ } /** + * Returns the name of this FO (e.g., "fo:root"); + * @return the name of the FO + */ +public String getName() { +return null; +} + +/** * Returns the Constants class integer value of this formatting object - * @return the integer enumeration of this FO + * @return the integer enumeration of this FO (e.g., FO_ROOT) */ public int getNameId() { return FO_UNKNOWN; 1.32 +36 -8 xml-fop/src/java/org/apache/fop/fo/flow/Block.java Index: Block.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/Block.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- Block.java8 Aug 2004 19:04:49 - 1.31 +++ Block.java10 Aug 2004 05:33:15 - 1.32 @@ -23,7 +23,7 @@ // XML import org.xml.sax.Attributes; -import org.xml.sax.SAXException; +import org.xml.sax.Locator; import org.xml.sax.SAXParseException; // FOP @@ -35,13 +35,6 @@ import org.apache.fop.fo.RecursiveCharIterator; import org.apache.fop.layoutmgr.BlockLayoutManager; import org.apache.fop.fo.Constants; -import org.apache.fop.fo.properties.CommonAccessibility; -import org.apache.fop.fo.properties.CommonAural; -import org.apache.fop.fo.properties.CommonBackground; -import org.apache.fop.fo.properties.CommonBorderAndPadding; -import org.apache.fop.fo.properties.CommonHyphenation; -import org.apache.fop.fo.properties.CommonMarginBlock; -import org.apache.fop.fo.properties.CommonRelativePosition; import org.apache.fop.util.CharUtilities; /* @@ -63,6 +56,10 @@ */ public class Block extends FObjMixed { +// used for FO validation +private boolean blockOrInlineItemFound = false; +private boolean initialPropertySetFound = false; + private int align; private int alignLast; private int breakAfter; @@ -139,6 +136,37 @@ this.propertyList.get(PR_ORPHANS).getNumber().intValue(); getFOInputHandler().startBlock(this); +} + +/** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + * XSL Content Model: marker* initial-property-set? (#PCDATA|%inline;|%block;)* + * Additionally: "An fo:bidi-override that is a descendant of an fo:leader + * or of the fo:inline child of an fo:footnote may not have block-level + * children, unless it has a nearer ancestor that is an + * fo:inline-container." + */ +protected void validateChildNode(Locator loc, String nsURI, String localName) +throws SAXParseException { +if (nsURI == FO_URI && localName.equals("marker")) { +if (blockOrInlineItemFound || initialPropertySetFound) { + nodesOutOfOrderError(loc, "fo:marker", +"initial-property-set? (#PCDATA|%inline;|%block;)"); +} +} else if (nsURI == FO_URI && localName.equals("initial-property-set")) { +if (initialPropertySetFound) { +tooManyNodesError(loc, "fo:initial-property-set"); +} else if (blockOrInlineItemFound) { +nodesOutOfOrderError(loc, "fo:initial-property-set", +"(#PCDATA|%inline;|%block;)"
cvs commit: xml-fop/src/java/org/apache/fop/fo/pagination PageSequence.java
gmazza 2004/08/10 21:15:29 Modified:src/java/org/apache/fop/fo FObj.java FObjMixed.java PropertySets.java src/java/org/apache/fop/fo/flow BasicLink.java BidiOverride.java Block.java BlockContainer.java Character.java ExternalGraphic.java InitialPropertySet.java Inline.java InlineContainer.java Leader.java ListBlock.java ListItem.java ListItemBody.java ListItemLabel.java MultiCase.java MultiProperties.java MultiPropertySet.java MultiSwitch.java MultiToggle.java PageNumber.java PageNumberCitation.java Table.java TableAndCaption.java TableBody.java TableCaption.java TableCell.java TableColumn.java TableRow.java src/java/org/apache/fop/fo/pagination PageSequence.java Log: 1. For maintenance and accuracy, centralized the setupID() functionality from the various FO's to the FObj base class. 2. Created a lookup bitset in PropertySets to help accomplish the above. 3. Generally moved initialization code from the setup() methods to the addProperties() methods in the various FO subclasses. Revision ChangesPath 1.65 +27 -22xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- FObj.java 10 Aug 2004 05:33:15 - 1.64 +++ FObj.java 11 Aug 2004 04:15:25 - 1.65 @@ -121,6 +121,33 @@ propertyList.addAttributesToList(attlist); propMgr = new PropertyManager(propertyList); setWritingMode(); + +// if this FO can have a PR_ID, make sure it is unique +if (PropertySets.canHaveId(getNameId())) { +setupID(); +} +} + +/** + * Setup the id for this formatting object. + * Most formatting objects can have an id that can be referenced. + * This methods checks that the id isn't already used by another + * fo and sets the id attribute of this object. + */ +private void setupID() { +Property prop = this.propertyList.get(PR_ID); +if (prop != null) { +String str = prop.getString(); +if (str != null && !str.equals("")) { +Set idrefs = getFOInputHandler().getIDReferences(); +if (!idrefs.contains(str)) { +id = str; +idrefs.add(id); +} else { +getLogger().warn("duplicate id:" + str + " ignored"); +} +} +} } /** @@ -283,28 +310,6 @@ return ((FObj) parent).getLayoutDimension(key); } return new Integer(0); -} - -/** - * Setup the id for this formatting object. - * Most formatting objects can have an id that can be referenced. - * This methods checks that the id isn't already used by another - * fo and sets the id attribute of this object. - */ -public void setupID() { -Property prop = this.propertyList.get(PR_ID); -if (prop != null) { -String str = prop.getString(); -if (str != null && !str.equals("")) { -Set idrefs = getFOInputHandler().getIDReferences(); -if (!idrefs.contains(str)) { -id = str; -idrefs.add(id); -} else { -getLogger().warn("duplicate id:" + str + " ignored"); -} -} -} } /** 1.32 +0 -6 xml-fop/src/java/org/apache/fop/fo/FObjMixed.java Index: FObjMixed.java === RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObjMixed.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- FObjMixed.java6 Aug 2004 15:41:10 - 1.31 +++ FObjMixed.java11 Aug 2004 04:15:25 - 1.32 @@ -62,12 +62,6 @@ addChildNode(ft); } -private void setup() { -if (this.propertyList != null) { -setupID(); -} -} - /** * @return iterator for this object */ 1.10 +49 -3 xml-fop/src/java/org/apache/fop/fo/PropertySets.java Index: PropertySets.java =