Abstract base class for breakers (page breakers, static region handlers etc.).
addAreas
protected void addAreas(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int startPart,
int partCount,
AbstractBreaker.BlockSequence originalList,
AbstractBreaker.BlockSequence effectiveList)
Phase 3 of Knuth algorithm: Adds the areas
alg
- PageBreakingAlgorithm instance which determined the breaksstartPart
- index of the first part (page) to be renderedpartCount
- number of parts (pages) to be renderedoriginalList
- original Knuth element listeffectiveList
- effective Knuth element list (after adjustments)
addAreas
protected void addAreas(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int partCount,
AbstractBreaker.BlockSequence originalList,
AbstractBreaker.BlockSequence effectiveList)
Phase 3 of Knuth algorithm: Adds the areas
alg
- PageBreakingAlgorithm instance which determined the breakspartCount
- number of parts (pages) to be renderedoriginalList
- original Knuth element listeffectiveList
- effective Knuth element list (after adjustments)
createLayoutContext
protected LayoutContext createLayoutContext()
Creates the top-level LayoutContext for the breaker operation.
- the top-level LayoutContext
doLayout
public void doLayout(int flowBPD)
Starts the page breaking process.
flowBPD
- the constant available block-progression-dimension (used for every part)
doLayout
public void doLayout(int flowBPD,
boolean autoHeight)
Starts the page breaking process.
flowBPD
- the constant available block-progression-dimension (used for every part)autoHeight
- true if warnings about overflows should be disabled because the
the BPD is really undefined (for footnote-separators, for example)
doPhase3
protected abstract void doPhase3(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
int partCount,
AbstractBreaker.BlockSequence originalList,
AbstractBreaker.BlockSequence effectiveList)
Phase 3 of Knuth algorithm: Adds the areas
alg
- PageBreakingAlgorithm instance which determined the breakspartCount
- number of parts (pages) to be renderedoriginalList
- original Knuth element listeffectiveList
- effective Knuth element list (after adjustments)
getCurrentChildLM
protected abstract LayoutManager getCurrentChildLM()
getCurrentDisplayAlign
protected abstract int getCurrentDisplayAlign()
getLayoutListener
protected PageBreakingAlgorithm.PageBreakingLayoutListener getLayoutListener()
Returns a PageBreakingLayoutListener for the PageBreakingAlgorithm to notify about layout
problems.
- the listener instance or null if no notifications are needed
getNextBlockList
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.
childLC
- LayoutContext to usenextSequenceStartsOn
- indicates on what page the next sequence should start
- the page on which the next content should appear after a hard break
getNextKnuthElements
protected abstract LinkedList getNextKnuthElements(LayoutContext context,
int alignment)
getPageProvider
protected PageProvider getPageProvider()
Returns the PageProvider if any. PageBreaker overrides this method because each
page may have a different available BPD which needs to be accessible to the breaking
algorithm.
- the applicable PageProvider, or null if not applicable
handleEmptyContent
protected void handleEmptyContent()
This method is called when no content is available for a part. Used to force empty pages.
handleSpanChange
protected int handleSpanChange(LayoutContext childLC,
int nextSequenceStartsOn)
Handles span changes reported through the LayoutContext
.
Only used by the PSLM and called by getNextBlockList()
.
childLC
- the LayoutContextnextSequenceStartsOn
- previous value for break handling
- effective value for break handling
hasMoreContent
protected abstract boolean hasMoreContent()
isEmpty
public boolean isEmpty()
- true if there's no content that could be handled.
isPartOverflowRecoveryActivated
protected boolean isPartOverflowRecoveryActivated()
Controls the behaviour of the algorithm in cases where the first element of a part
overflows a line/page.
- true if the algorithm should try to send the element to the next line/page.
isSinglePartFavored
protected boolean isSinglePartFavored()
- true if one a single part should be produced if possible (ex. for block-containers)
observeElementList
protected void observeElementList(List elementList)
Used for debugging purposes. Notifies all registered observers about the element list.
Override to set different parameters.
elementList
- the Knuth element list
updateLayoutContext
protected void updateLayoutContext(LayoutContext context)
Used to update the LayoutContext in subclasses prior to starting a new element list.
context
- the LayoutContext to update