org.jfree.layouting.renderer.model.page
Class LogicalPageBox
java.lang.Object
org.jfree.layouting.renderer.model.RenderNode
org.jfree.layouting.renderer.model.RenderBox
org.jfree.layouting.renderer.model.BlockRenderBox
org.jfree.layouting.renderer.model.page.LogicalPageBox
- All Implemented Interfaces:
- java.lang.Cloneable
public class LogicalPageBox
- extends BlockRenderBox
The logical page box does not have a layout at all. It has collection of
flows, one for each logical page area.
Each logical page has a header (for the repeating group headers, not to be
mistaken as PageHeader!), content and footer area. The footer area contains
the foot-notes at the very bottom, the repeatable footer area and finally the
flow:bottom area.
The flow- and repeatable areas behave like stacks, and are filled from the
content area (so for headers, new content goes after any previous content,
and for footers, new content goes before any previous content.)
The footNotes section is always filled in the normal-order, so new content
gets added at the bottom of that area.
The logical page also holds the absolutely and static positioned elements.
These elements may overlap the repeating headers, but will never overlap the
physical page header or footer.
The logical page is also the container for all physical pages. (The sizes of
the physical pages influence the available space on the logical pages.)
Layout notes: The logical page, as it is implemented now, consists of three
areas. The header and footer areas are plain banded areas and correspond to
the @top and @bottom page-areas. These areas are layouted zero-based. The
header's y=0 corresponds to the beginning of the page, while the footer's y=0
depends on the total height of the footer and must fullfill the following
constraint: Page_bottom_edge = (footer_y + footer_height).
The content window is positioned relative to the content-flow and is placed
between the header and the footer. The mapping of the content into the header
is defined by the pageOffset. The content-window's y=0 corresponds to the
normal-flow's y=pageOffset.
Repeatable headers and footers are *not* inserted into the content-flow.
- Author:
- Thomas Morgner
Methods inherited from class org.jfree.layouting.renderer.model.RenderBox |
addChild, addChilds, addGeneratedChild, clear, close, freeze, getBaselineInfo, getBorder, getBoxDefinition, getBoxLayoutProperties, getContentAreaX1, getContentAreaX2, getDominantBaseline, getEffectiveMarginBottom, getEffectiveMarginTop, getFirstChild, getLastChild, getLineCount, getNominalBaselineInfo, getOrphans, getOrphansSize, getPageContext, getStaticBoxLayoutProperties, getVisibleFirst, getVisibleLast, getWidows, getWidowsSize, insertAfter, insertBefore, isAppendable, isAvoidPagebreakInside, isDiscardable, isEmpty, isOpen, isPreserveSpace, remove, replaceChild, replaceChilds, setBaselineInfo, setContentAreaX1, setContentAreaX2, setFirstChild, setLastChild, setLineCount, setOrphansSize, setPageContext, setWidowsSize, split |
Methods inherited from class org.jfree.layouting.renderer.model.RenderNode |
getAlignmentAdjust, getAlignmentAdjustResolved, getAlignmentBaseline, getBaselineShift, getBaselineShiftResolved, getChangeTracker, getComputedLayoutProperties, getDimension, getHeight, getInstanceId, getLayoutContext, getMajorAxis, getMaximumBoxWidth, getMinimumChunkWidth, getMinorAxis, getNamespace, getNext, getNodeLayoutProperties, getParent, getParentBlockContext, getPosition, getPrev, getStickyMarker, getTagName, getVerticalAlignment, getVisibleNext, getVisiblePrev, getWidth, getX, getY, isDirectionLTR, isDirty, isFrozen, isHibernated, isIcmMetricsFinished, isIgnorableForRendering, normalizeAlignment, setComputedLayoutProperties, setDimension, setDirty, setHeight, setHibernated, setIcmMetricsFinished, setMajorAxis, setMaximumBoxWidth, setMinimumChunkWidth, setMinorAxis, setNext, setParent, setPosition, setPrev, setStickyMarker, setWidth, setX, setY, updateChangeTracker |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LogicalPageBox
public LogicalPageBox(PageGrid pageGrid)
appyStyle
public void appyStyle(LayoutContext context,
OutputProcessorMetaData metaData)
- Overrides:
appyStyle
in class RenderBox
updatePageArea
public void updatePageArea(PageGrid pageGrid)
getContentArea
public NormalFlowRenderBox getContentArea()
getFooterArea
public PageAreaRenderBox getFooterArea()
getHeaderArea
public PageAreaRenderBox getHeaderArea()
getLogicalPage
public LogicalPageBox getLogicalPage()
- Overrides:
getLogicalPage
in class RenderNode
getNormalFlow
public NormalFlowRenderBox getNormalFlow()
- Overrides:
getNormalFlow
in class RenderNode
getPageGrid
public PageGrid getPageGrid()
getInsertationPoint
public RenderBox getInsertationPoint()
- Overrides:
getInsertationPoint
in class RenderBox
getPhysicalBreaks
public long[] getPhysicalBreaks(int axis)
isOverflow
public boolean isOverflow()
deriveFrozen
public RenderNode deriveFrozen(boolean deepDerive)
- Derive creates a disconnected node that shares all the properties of the
original node. The derived node will no longer have any parent, silbling,
child or any other relationships with other nodes.
- Overrides:
deriveFrozen
in class RenderBox
- Returns:
derive
public RenderNode derive(boolean deepDerive)
- Derive creates a disconnected node that shares all the properties of the
original node. The derived node will no longer have any parent, silbling,
child or any other relationships with other nodes.
- Overrides:
derive
in class RenderBox
- Returns:
hibernate
public RenderNode hibernate()
- Derives an hibernation copy. The resulting object should get stripped of
all unnecessary caching information and all objects, which will be
regenerated when the layouting restarts. Size does matter here.
- Overrides:
hibernate
in class RenderBox
- Returns:
clone
public java.lang.Object clone()
- Clones this node. Be aware that cloning can get you into deep trouble, as
the relations this node has may no longer be valid.
- Overrides:
clone
in class RenderBox
- Returns:
isNormalFlowActive
public boolean isNormalFlowActive()
getPageHeight
public long getPageHeight()
getPageWidth
public long getPageWidth()
getPageOffset
public long getPageOffset()
setPageOffset
public void setPageOffset(long pageOffset)
setNormalFlowActive
public void setNormalFlowActive(boolean normalFlowActive)
insertFirst
public void insertFirst(RenderNode node)
insertLast
public void insertLast(RenderNode node)
findNodeById
public RenderNode findNodeById(java.lang.Object instanceId)
- Overrides:
findNodeById
in class RenderBox