]> source.dussan.org Git - xmlgraphics-fop.git/commit
Initial work on enhancing the extension facilities to register special extensions...
authorJeremias Maerki <jeremias@apache.org>
Fri, 2 Sep 2005 14:26:31 +0000 (14:26 +0000)
committerJeremias Maerki <jeremias@apache.org>
Fri, 2 Sep 2005 14:26:31 +0000 (14:26 +0000)
commit2daa1220f0331d560481ed48d5531ee1b6555793
tree8ee289b54a62ce23c199c4b0c8cd349a12d8b53f
parent7253134b2b9feac580724eea566a08ed8ac0fe7f
Initial work on enhancing the extension facilities to register special extensions which create so-called ExtensionAttachment objects which are attached to the formatting object they are attached to. These objects can be evaluated by standard or custom layout managers or simply passed through to the area tree (the latter is NYI). The AreaTreeHandler currently takes ExtensionAttachment objects from fo:root and fo:declarations and wraps them in OffDocumentItems that Renderers can react on to provide additional functionality on document-level (like PDF metadata or PostScript media dictionaries). Since the simple-page-master is available directly from the PageViewport the renderer can take ExtensionAttachment objects directly from there (see PSRenderer.renderPage()).
Extension Elements that provide ExtensionAttachments are not added as such to the child element list of a formatting object since they work a little differently and should free memory as soon as possible.

The PostScript extension described in http://wiki.apache.org/xmlgraphics-fop/ExtensionsForPostScript are now fully implemented but under the namespace URI "http://xmlgraphics.apache.org/fop/postscript", not "http://xml.apache.org/fop/extensions". I'll need to look at namespaces again separately, later.
The new PSExtensionElementMapping is currently hard-coded into FOTreeBuilder as are the other ElementMapping classes.

OffDocumentItem is now an interface, AbstractOffDocumentItem now providing the base functionality of the former OffDocumentItem class.
Lots of clean-up and javadocs while working through this, for example: FObj.childNodes is not public anymore. Instead a special method on fo.flow.InstreamForeignObject provides the child in the one case childNodes was directly accessed. PropertyMaker access in FObj is also done through a method now, propertyListTable is now private.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@267209 13f79535-47bb-0310-9956-ffa450edef68
21 files changed:
src/java/org/apache/fop/area/AbstractOffDocumentItem.java [new file with mode: 0644]
src/java/org/apache/fop/area/AreaTreeHandler.java
src/java/org/apache/fop/area/BookmarkData.java
src/java/org/apache/fop/area/OffDocumentExtensionAttachment.java [new file with mode: 0644]
src/java/org/apache/fop/area/OffDocumentItem.java
src/java/org/apache/fop/fo/FOElementMapping.java
src/java/org/apache/fop/fo/FONode.java
src/java/org/apache/fop/fo/FOTreeBuilder.java
src/java/org/apache/fop/fo/FObj.java
src/java/org/apache/fop/fo/PropertyList.java
src/java/org/apache/fop/fo/extensions/ExtensionAttachment.java [new file with mode: 0644]
src/java/org/apache/fop/fo/flow/InstreamForeignObject.java
src/java/org/apache/fop/fo/pagination/Declarations.java
src/java/org/apache/fop/fo/pagination/SimplePageMaster.java
src/java/org/apache/fop/layoutmgr/inline/InstreamForeignObjectLM.java
src/java/org/apache/fop/render/ps/PSRenderer.java
src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java [new file with mode: 0644]
src/java/org/apache/fop/render/ps/extensions/PSExtensionElementMapping.java [new file with mode: 0644]
src/java/org/apache/fop/render/ps/extensions/PSPageSetupCodeElement.java [new file with mode: 0644]
src/java/org/apache/fop/render/ps/extensions/PSSetupCode.java [new file with mode: 0644]
src/java/org/apache/fop/render/ps/extensions/PSSetupCodeElement.java [new file with mode: 0644]