org.apache.fop.area

Class AreaTreeHandler


public class AreaTreeHandler
extends FOEventHandler

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. Wherever 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 organized in a model that depends on the type of renderer.

Field Summary

protected AreaTreeModel
model
The AreaTreeModel in use

Fields inherited from class org.apache.fop.fo.FOEventHandler

foUserAgent, fontInfo, propertyListMaker, whiteSpaceHandler

Constructor Summary

AreaTreeHandler(FOUserAgent userAgent, String outputFormat, OutputStream stream)
Constructor.

Method Summary

void
addUnresolvedIDRef(String idref, Resolvable res)
Deprecated. use getIdTracker().addUnresolvedIDRef(idref, res) instead
boolean
alreadyResolvedID(String id)
Deprecated. use getIdTracker().alreadyResolvedID(id) instead
void
associateIDWithPageViewport(String id, PageViewport pv)
Deprecated. use getIdTracker().associateIDWithPageViewport(id, pv) instead
void
endDocument()
End the document.
void
endExternalDocument(ExternalDocument document)
void
endPageSequence(PageSequence pageSequence)
End the PageSequence.
String
generatePageViewportKey()
Generates and returns a unique key for a page viewport.
AreaTreeModel
getAreaTreeModel()
Get the area tree model for this area tree.
IDTracker
getIDTracker()
Get the IDTracker for this area tree.
LayoutManagerMaker
getLayoutManagerMaker()
Get the LayoutManager maker for this area tree.
List
getPageViewportsContainingID(String id)
Deprecated. use getIdTracker().getPageViewportsContainingID(id) instead
FormattingResults
getResults()
Get information about the rendered output, like number of pages created.
void
notifyPageSequenceFinished(AbstractPageSequence pageSequence, int pageCount)
Called by the PageSequenceLayoutManager when it is finished with a page-sequence.
protected void
setupModel(FOUserAgent userAgent, String outputFormat, OutputStream stream)
Sets up the AreaTreeModel instance for use by the AreaTreeHandler.
void
signalIDProcessed(String id)
Deprecated. use getIdTracker().signalIDProcessed(id) instead
void
signalPendingID(String id)
Deprecated. use getIdTracker().signalPendingID(id) instead
void
startDocument()
Prepare AreaTreeHandler for document processing This is called from FOTreeBuilder.startDocument()
void
startExternalDocument(ExternalDocument document)
void
startPageSequence(PageSequence pageSequence)
void
tryIDResolution(PageViewport pv)
Deprecated. use getIdTracker().tryIDResolution(pv) instead

Methods inherited from class org.apache.fop.fo.FOEventHandler

character, characters, endBlock, endBlockContainer, endBody, endCell, endColumn, endDocument, endExternalDocument, endFlow, endFooter, endFootnote, endFootnoteBody, endHeader, endInline, endLink, endList, endListBody, endListItem, endListLabel, endMarkup, endPageNumber, endPageNumberCitation, endPageNumberCitationLast, endPageSequence, endRow, endStatic, endTable, foreignObject, getFontInfo, getIDReferences, getPropertyListMaker, getUserAgent, getXMLWhiteSpaceHandler, image, inMarker, leader, pageRef, setPropertyListMaker, startBlock, startBlockContainer, startBody, startCell, startColumn, startDocument, startExternalDocument, startFlow, startFooter, startFootnote, startFootnoteBody, startHeader, startInline, startLink, startList, startListBody, startListItem, startListLabel, startMarkup, startPageNumber, startPageNumberCitation, startPageNumberCitationLast, startPageSequence, startRow, startStatic, startTable, switchMarkerContext

Field Details

model

protected AreaTreeModel model
The AreaTreeModel in use

Constructor Details

AreaTreeHandler

public AreaTreeHandler(FOUserAgent userAgent,
                       String outputFormat,
                       OutputStream stream)
            throws FOPException
Constructor.
Parameters:
userAgent - FOUserAgent object for process
outputFormat - the MIME type of the output format to use (ex. "application/pdf").
stream - OutputStream
Throws:
FOPException - if the RenderPagesModel cannot be created

Method Details

addUnresolvedIDRef

public void addUnresolvedIDRef(String idref,
                               Resolvable res)

Deprecated. use getIdTracker().addUnresolvedIDRef(idref, res) instead

Add an Resolvable object with an unresolved idref
Parameters:
idref - the idref whose target id has not yet been located
res - the Resolvable object needing the idref to be resolved

alreadyResolvedID

public boolean alreadyResolvedID(String id)

Deprecated. use getIdTracker().alreadyResolvedID(id) instead

Check if an ID has already been resolved
Parameters:
id - the id to check
Returns:
true if the ID has been resolved

associateIDWithPageViewport

public void associateIDWithPageViewport(String id,
                                        PageViewport pv)

Deprecated. use getIdTracker().associateIDWithPageViewport(id, pv) instead

Tie a PageViewport with an ID found on a child area of the PV. Note that an area with a given ID may be on more than one PV, hence an ID may have more than one PV associated with it.
Parameters:
id - the property ID of the area
pv - a page viewport that contains the area with this ID

endDocument

public void endDocument()
            throws SAXException
End the document.
Overrides:
endDocument in interface FOEventHandler

endExternalDocument

public void endExternalDocument(ExternalDocument document)
Overrides:
endExternalDocument in interface FOEventHandler

endPageSequence

public void endPageSequence(PageSequence pageSequence)
End the PageSequence. The PageSequence formats Pages and adds them to the AreaTree. The area tree then handles what happens with the pages.
Overrides:
endPageSequence in interface FOEventHandler
Parameters:
pageSequence - the page sequence ending

generatePageViewportKey

public String generatePageViewportKey()
Generates and returns a unique key for a page viewport.
Returns:
the generated key.

getAreaTreeModel

public AreaTreeModel getAreaTreeModel()
Get the area tree model for this area tree.
Returns:
AreaTreeModel the model being used for this area tree

getIDTracker

public IDTracker getIDTracker()
Get the IDTracker for this area tree.
Returns:
IDTracker used to track reference ids for items in this area tree

getLayoutManagerMaker

public LayoutManagerMaker getLayoutManagerMaker()
Get the LayoutManager maker for this area tree.
Returns:
LayoutManagerMaker the LayoutManager maker being used for this area tree

getPageViewportsContainingID

public List getPageViewportsContainingID(String id)

Deprecated. use getIdTracker().getPageViewportsContainingID(id) instead

Get the list of page viewports that have an area with a given id.
Parameters:
id - the id to lookup
Returns:
the list of PageViewports

getResults

public FormattingResults getResults()
Get information about the rendered output, like number of pages created.
Returns:
the results structure

notifyPageSequenceFinished

public void notifyPageSequenceFinished(AbstractPageSequence pageSequence,
                                       int pageCount)
Called by the PageSequenceLayoutManager when it is finished with a page-sequence.
Parameters:
pageSequence - the page-sequence just finished
pageCount - The number of pages generated for the page-sequence

setupModel

protected void setupModel(FOUserAgent userAgent,
                          String outputFormat,
                          OutputStream stream)
            throws FOPException
Sets up the AreaTreeModel instance for use by the AreaTreeHandler.
Parameters:
userAgent - FOUserAgent object for process
outputFormat - the MIME type of the output format to use (ex. "application/pdf").
stream - OutputStream
Throws:
FOPException - if the RenderPagesModel cannot be created

signalIDProcessed

public void signalIDProcessed(String id)

Deprecated. use getIdTracker().signalIDProcessed(id) instead

Signals that all areas for the formatting object with the given ID have been generated. This is used to determine when page-number-citation-last ref-ids can be resolved.
Parameters:
id - the id of the formatting object which was just finished

signalPendingID

public void signalPendingID(String id)

Deprecated. use getIdTracker().signalPendingID(id) instead

This method tie an ID to the areaTreeHandler until this one is ready to be processed. This is used in page-number-citation-last processing so we know when an id can be resolved.
Parameters:
id - the id of the object being processed

startDocument

public void startDocument()
            throws SAXException
Prepare AreaTreeHandler for document processing This is called from FOTreeBuilder.startDocument()
Overrides:
startDocument in interface FOEventHandler

startExternalDocument

public void startExternalDocument(ExternalDocument document)
Overrides:
startExternalDocument in interface FOEventHandler

startPageSequence

public void startPageSequence(PageSequence pageSequence)
Overrides:
startPageSequence in interface FOEventHandler

tryIDResolution

public void tryIDResolution(PageViewport pv)

Deprecated. use getIdTracker().tryIDResolution(pv) instead

Tries to resolve all unresolved ID references on the given page.
Parameters:
pv - page viewport whose ID refs to resolve

Copyright 1999-2008 The Apache Software Foundation. All Rights Reserved.