Page viewport that specifies the viewport area and holds the page contents.
This is the top level object for a page and remains valid for the life
of the document and the area tree.
This object may be used as a key to reference a page.
This is the level that creates the page.
The page (reference area) is then rendered inside the page object
PageViewport
public PageViewport(Rectangle2D viewArea,
int pageNumber,
String pageStr,
String simplePageMasterName,
boolean blank)
Constructor used by the area tree parser.
viewArea
- the view areapageNumber
- the page numberpageStr
- String representation of the page numbersimplePageMasterName
- name of the original simple-page-master that generated this pageblank
- true if this is a blank page
PageViewport
public PageViewport(PageViewport original)
Copy constructor.
original
- the original PageViewport to copy from
PageViewport
public PageViewport(SimplePageMaster spm,
int pageNumber,
String pageStr,
boolean blank)
Create a page viewport.
spm
- SimplePageMaster indicating the page and region dimensionspageNumber
- the page numberpageStr
- String representation of the page numberblank
- true if this is a blank page
addExtensionAttachment
public void addExtensionAttachment(ExtensionAttachment attachment)
Adds a new ExtensionAttachment instance to this page.
attachment
- the ExtensionAttachment
addMarkers
public void addMarkers(Map marks,
boolean starting,
boolean isfirst,
boolean islast)
Add the markers for this page.
Only the required markers are kept.
For "first-starting-within-page" it adds the markers
that are starting only if the marker class name is not
already added.
For "first-including-carryover" it adds any starting marker
if the marker class name is not already added.
For "last-starting-within-page" it adds all marks that
are starting, replacing earlier markers.
For "last-ending-within-page" it adds all markers that
are ending, replacing earlier markers.
Should this logic be placed in the Page layout manager.
marks
- the map of markers to addstarting
- if the area being added is starting or endingisfirst
- if the area being added has is-first traitislast
- if the area being added has is-last trait
addUnresolvedIDRef
public void addUnresolvedIDRef(String idref,
Resolvable res)
Add an idref to this page.
All idrefs found for child areas of this PageViewport are added
to unresolvedIDRefs, for subsequent resolution by AreaTreeHandler
calls to this object's resolveIDRef().
idref
- the idrefres
- the child element of this page that needs this
idref resolved
clear
public void clear()
Clear the page contents to save memory.
This object is kept for the life of the area tree since
it holds id and marker information and is used as a key.
clone
public Object clone()
Clone this page.
Used by the page master to create a copy of an original page.
- a copy of this page and associated viewports
createSpan
public Span createSpan(boolean spanAll)
Convenience method to create a new Span for this
this PageViewport.
spanAll
- whether this is a single-column span
dumpMarkers
public void dumpMarkers()
Dumps the current marker data to the logger.
getBodyRegion
public BodyRegion getBodyRegion()
Convenience method to get BodyRegion of this PageViewport
getCurrentFlow
public NormalFlow getCurrentFlow()
Convenience method to get the normal-flow-reference-area
currently being processed
- span currently being processed.
getCurrentSpan
public Span getCurrentSpan()
Convenience method to get the span-reference-area currently
being processed
- span currently being processed.
getExtensionAttachments
public List getExtensionAttachments()
- the list of extension attachments for this page
getIDRefs
public String[] getIDRefs()
Get the unresolved idrefs for this page.
- getIDRefs in interface Resolvable
- String array of idref's that still have not been resolved
getKey
public String getKey()
Get the key for this page viewport.
This is used so that a serializable key can be used to
lookup the page or some other reference.
- a unique page viewport key for this area tree
getMarker
public Object getMarker(String name,
int pos)
Get a marker from this page.
This will retrieve a marker with the class name
and position.
name
- The class name of the marker to retrievepos
- the position to retrieve
- Object the marker found or null
getPage
public Page getPage()
Get the page reference area with the contents.
getPageIndex
public int getPageIndex()
- the overall page index of the page in this rendering run (zero-based,
-1 if it is undetermined).
getPageNumber
public int getPageNumber()
Get the page number of this page.
- the integer value that represents this page
getPageNumberString
public String getPageNumberString()
Get the page number of this page.
- the string that represents this page
getPageSequence
public PageSequence getPageSequence()
- the page sequence this page belongs to
getRegionReference
public RegionReference getRegionReference(int id)
Convenience method to return a given region-reference-area,
keyed by the Constants class identifier for the corresponding
formatting object (ie. Constants.FO_REGION_BODY, FO_REGION_START,
etc.)
id
- the Constants class identifier for the region.
- the corresponding region-reference-area for this page.
getSimplePageMasterName
public String getSimplePageMasterName()
- the name of the simple-page-master that created this page
getViewArea
public Rectangle2D getViewArea()
Get the view area rectangle of this viewport.
- the rectangle for this viewport
hasExtensionAttachments
public boolean hasExtensionAttachments()
- whether this page viewport has any extension attachments
isBlank
public boolean isBlank()
- True if this is a blank page.
isFirstWithID
public boolean isFirstWithID(String id)
Check whether a certain id first appears on this page
id
- the id to be checked
- true if this page is the first where the id appears
isResolved
public boolean isResolved()
Check if this page has been fully resolved.
- isResolved in interface Resolvable
- true if the page is resolved and can be rendered
loadPage
public void loadPage(ObjectInputStream in)
throws Exception
Load the page contents from an object stream.
This loads the page contents from the stream and
if there are any unresolved references that were resolved
while saved they will be resolved on the page contents.
in
- the object input stream to read the page from
moveToNextFlow
public NormalFlow moveToNextFlow()
Convenience method to increment the Span to the
next NormalFlow to be processed, and to return that flow.
- the next NormalFlow in the Span.
savePage
public void savePage(ObjectOutputStream out)
throws Exception
Save the page contents to an object stream.
The map of unresolved references are set on the page so that
the resolvers can be properly serialized and reloaded.
out
- the object output stream to write the contents
setFirstWithID
public void setFirstWithID(String id)
Add an "ID-first" to this page.
This is typically called by the AreaTreeHandler when associating
an ID with a PageViewport.
id
- the id to be registered as first appearing on this page
setKey
public void setKey(String key)
Sets the unique key for this PageViewport that will be used to reference this page.
setPage
public void setPage(Page page)
Sets the page object for this PageViewport.
setPageIndex
public void setPageIndex(int index)
Sets the page index of the page in this rendering run.
(This is not the same as the page number!)
index
- the page index (zero-based), -1 if it is undetermined
setPageSequence
public void setPageSequence(PageSequence seq)
Sets the page sequence this page belongs to
toString
public String toString()