public class PageBreaker extends AbstractBreaker
AbstractBreaker.BlockSequence, AbstractBreaker.FloatPosition, AbstractBreaker.PageBreakPositionalignment, blockListIndex, blockLists, firstElementsForRestart, footnoteSeparatorLength, log, originalRestartAtLM, positionAtBreak, pslm| Constructor and Description |
|---|
PageBreaker(PageSequenceLayoutManager pslm)
Construct page breaker.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addAreas(PositionIterator posIter,
LayoutContext context)
Adds an area to the flow layout manager
|
protected void |
addAreasForFloats(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int startPart,
int partCount,
AbstractBreaker.BlockSequence originalList,
AbstractBreaker.BlockSequence effectiveList,
LayoutContext childLC,
int lastBreak,
int startElementIndex,
int endElementIndex) |
protected PageBreakingAlgorithm.PageBreakingLayoutListener |
createLayoutListener()
Creates and returns a PageBreakingLayoutListener for the PageBreakingAlgorithm to
notify about layout problems.
|
protected void |
doPhase3(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int partCount,
AbstractBreaker.BlockSequence originalList,
AbstractBreaker.BlockSequence effectiveList)
Phase 3 of Knuth algorithm: Adds the areas
|
protected void |
finishPart(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
AbstractBreaker.PageBreakPosition pbp)
Finish part.
|
protected FlowLayoutManager |
getCurrentChildLM() |
protected int |
getCurrentDisplayAlign() |
protected int |
getFloatHeight() |
protected int |
getFloatYOffset() |
static java.util.List<java.util.List<KnuthElement>> |
getFootnoteKnuthElements(FlowLayoutManager flowLM,
LayoutContext context,
java.util.List<FootnoteBodyLayoutManager> footnoteBodyLMs) |
protected int |
getNextBlockList(LayoutContext childLC,
int nextSequenceStartsOn)
Gets the next block list (sequence) and adds it to a list of block lists if it's not empty.
|
protected int |
getNextBlockList(LayoutContext childLC,
int nextSequenceStartsOn,
Position positionAtIPDChange,
LayoutManager restartLM,
java.util.List firstElements)
Gets the next block list (sequence) and adds it to a list of block lists
if it's not empty.
|
protected java.util.List |
getNextKnuthElements(LayoutContext context,
int alignment)
Get a sequence of KnuthElements representing the content
of the node assigned to the LM
|
protected java.util.List |
getNextKnuthElements(LayoutContext context,
int alignment,
Position positionAtIPDChange,
LayoutManager restartAtLM)
Get a sequence of KnuthElements representing the content
of the node assigned to the LM
|
int |
getOffsetDueToFloat() |
protected PageProvider |
getPageProvider()
Returns the PageProvider if any.
|
protected LayoutManager |
getTopLevelLM() |
protected void |
handleEmptyContent()
This method is called when no content is available for a part.
|
protected void |
handleEndOfFloat(int fHeight) |
protected int |
handleFloatLayout(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int optimalPageCount,
AbstractBreaker.BlockSequence blockList,
LayoutContext childLC) |
protected int |
handleSpanChange(LayoutContext childLC,
int nextSequenceStartsOn)
Handles span changes reported through the
LayoutContext. |
protected void |
handleStartOfFloat(int fHeight,
int fYOffset) |
protected boolean |
handlingEndOfFloat() |
protected boolean |
handlingFloat() |
protected boolean |
handlingStartOfFloat() |
protected boolean |
hasMoreContent() |
void |
holdFootnotes(java.util.List fl,
java.util.List ll,
int tfl,
int ifl,
boolean fp,
boolean nf,
int fnfi,
int fli,
int fei,
MinOptMax fsl,
int pfli,
int pfei) |
protected boolean |
lastPageHasIPDChange(int optimalPageCount) |
protected void |
observeElementList(java.util.List elementList)
Used for debugging purposes.
|
protected void |
prepareToRedoLayout(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int partCount,
AbstractBreaker.BlockSequence originalList,
AbstractBreaker.BlockSequence effectiveList) |
void |
retrieveFootones(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg) |
protected boolean |
shouldRedoLayout() |
protected boolean |
shouldRedoLayout(int partCount) |
protected void |
startPart(AbstractBreaker.BlockSequence list,
int breakClass,
boolean emptyContent)
Start part.
|
protected void |
updateLayoutContext(LayoutContext context)
Used to update the LayoutContext in subclasses prior to starting a new element list.
|
protected boolean |
wasLayoutRedone() |
addAreas, addAreas, addAreas, containsNonRestartableLM, createLayoutContext, doLayout, isEmpty, isPartOverflowRecoveryActivated, isSinglePartFavoredpublic PageBreaker(PageSequenceLayoutManager pslm)
pslm - the page sequence layout managerprotected void updateLayoutContext(LayoutContext context)
updateLayoutContext in class AbstractBreakercontext - the LayoutContext to updateprotected LayoutManager getTopLevelLM()
getTopLevelLM in class AbstractBreakerprotected PageProvider getPageProvider()
getPageProvider in class AbstractBreakerprotected PageBreakingAlgorithm.PageBreakingLayoutListener createLayoutListener()
createLayoutListener in class AbstractBreakerprotected int handleSpanChange(LayoutContext childLC, int nextSequenceStartsOn)
LayoutContext.
Only used by the PSLM and called by getNextBlockList().handleSpanChange in class AbstractBreakerchildLC - the LayoutContextnextSequenceStartsOn - previous value for break handlingprotected int getNextBlockList(LayoutContext childLC, int nextSequenceStartsOn)
getNextBlockList in class AbstractBreakerchildLC - LayoutContext to usenextSequenceStartsOn - indicates on what page the next sequence should startprotected int getNextBlockList(LayoutContext childLC, int nextSequenceStartsOn, Position positionAtIPDChange, LayoutManager restartLM, java.util.List firstElements)
getNextBlockList in class AbstractBreakerchildLC - LayoutContext to usenextSequenceStartsOn - indicates on what page the next sequence
should startpositionAtIPDChange - last element on the part before an IPD changerestartLM - the layout manager from which to restart, if IPD
change occurs between two LMsfirstElements - elements from non-restartable LMs on the new pagepublic static java.util.List<java.util.List<KnuthElement>> getFootnoteKnuthElements(FlowLayoutManager flowLM, LayoutContext context, java.util.List<FootnoteBodyLayoutManager> footnoteBodyLMs)
protected java.util.List getNextKnuthElements(LayoutContext context, int alignment)
getNextKnuthElements in class AbstractBreakercontext - the LayoutContext used to store layout informationalignment - the desired text alignmentprotected java.util.List getNextKnuthElements(LayoutContext context, int alignment, Position positionAtIPDChange, LayoutManager restartAtLM)
getNextKnuthElements in class AbstractBreakercontext - the LayoutContext used to store layout informationalignment - the desired text alignmentpositionAtIPDChange - last element on the part before an IPD changerestartAtLM - the layout manager from which to restart, if IPD
change occurs between two LMsprotected int getCurrentDisplayAlign()
getCurrentDisplayAlign in class AbstractBreakerprotected boolean hasMoreContent()
hasMoreContent in class AbstractBreakerprotected void addAreas(PositionIterator posIter, LayoutContext context)
addAreas in class AbstractBreakerposIter - the position iteratorcontext - the layout contextprotected void doPhase3(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int partCount,
AbstractBreaker.BlockSequence originalList,
AbstractBreaker.BlockSequence effectiveList)
doPhase3 in class AbstractBreakeralg - PageBreakingAlgorithm instance which determined the breakspartCount - number of parts (pages) to be renderedoriginalList - original Knuth element listeffectiveList - effective Knuth element list (after adjustments)protected void prepareToRedoLayout(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int partCount,
AbstractBreaker.BlockSequence originalList,
AbstractBreaker.BlockSequence effectiveList)
prepareToRedoLayout in class AbstractBreakerprotected void startPart(AbstractBreaker.BlockSequence list, int breakClass, boolean emptyContent)
startPart in class AbstractBreakerlist - a block sequencebreakClass - a break classprotected void handleEmptyContent()
handleEmptyContent in class AbstractBreakerprotected void finishPart(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
AbstractBreaker.PageBreakPosition pbp)
finishPart in class AbstractBreakeralg - a page breaking algorithmpbp - a page break posittionprotected FlowLayoutManager getCurrentChildLM()
getCurrentChildLM in class AbstractBreakerprotected void observeElementList(java.util.List elementList)
observeElementList in class AbstractBreakerelementList - the Knuth element listprotected boolean shouldRedoLayout()
shouldRedoLayout in class AbstractBreakerprotected boolean shouldRedoLayout(int partCount)
protected boolean wasLayoutRedone()
wasLayoutRedone in class AbstractBreakerprotected boolean lastPageHasIPDChange(int optimalPageCount)
lastPageHasIPDChange in class AbstractBreakerprotected boolean handlingStartOfFloat()
protected void handleStartOfFloat(int fHeight,
int fYOffset)
protected int getFloatHeight()
protected int getFloatYOffset()
protected boolean handlingEndOfFloat()
protected void handleEndOfFloat(int fHeight)
protected boolean handlingFloat()
public int getOffsetDueToFloat()
protected int handleFloatLayout(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int optimalPageCount,
AbstractBreaker.BlockSequence blockList,
LayoutContext childLC)
handleFloatLayout in class AbstractBreakerprotected void addAreasForFloats(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int startPart,
int partCount,
AbstractBreaker.BlockSequence originalList,
AbstractBreaker.BlockSequence effectiveList,
LayoutContext childLC,
int lastBreak,
int startElementIndex,
int endElementIndex)
addAreasForFloats in class AbstractBreakerpublic void holdFootnotes(java.util.List fl,
java.util.List ll,
int tfl,
int ifl,
boolean fp,
boolean nf,
int fnfi,
int fli,
int fei,
MinOptMax fsl,
int pfli,
int pfei)
public void retrieveFootones(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg)
Copyright 1999-2022 The Apache Software Foundation. All Rights Reserved.