Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 2.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.fop.layoutmgr
Class PageBreaker

    java.lang.Object
      org.apache.fop.layoutmgr.AbstractBreaker
          org.apache.fop.layoutmgr.PageBreaker

    public class PageBreaker

extends AbstractBreaker

Handles the breaking of pages in an fo:flow

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.fop.layoutmgr.AbstractBreaker
`AbstractBreaker.BlockSequence, AbstractBreaker.FloatPosition, AbstractBreaker.PageBreakPosition`

Field Summary

Fields inherited from class org.apache.fop.layoutmgr.AbstractBreaker
`alignment, blockListIndex, blockLists, footnoteSeparatorLength, log`

Constructor Summary
`PageBreaker(PageSequenceLayoutManager pslm)` Construct page breaker.

Method Summary
`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 void` | `observeElementList(java.util.List elementList)` Used for debugging purposes.
`void` | `retrieveFootones(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg)`
`protected void` | `startPart(AbstractBreaker.BlockSequence list, int breakClass)` Start part.
`protected void` | `updateLayoutContext(LayoutContext context)` Used to update the LayoutContext in subclasses prior to starting a new element list.

Methods inherited from class org.apache.fop.layoutmgr.AbstractBreaker
`addAreas, addAreas, addAreas, createLayoutContext, doLayout, isEmpty, isPartOverflowRecoveryActivated, isSinglePartFavored`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PageBreaker

    public PageBreaker(PageSequenceLayoutManager pslm)

  Construct page breaker.

  Parameters:
    `pslm` - the page sequence layout manager

Method Detail

### updateLayoutContext

    protected void updateLayoutContext(LayoutContext context)

  Used to update the LayoutContext in subclasses prior to starting a new element list.

  Overrides:
    `updateLayoutContext` in class `AbstractBreaker`
  Parameters:
    `context` - the LayoutContext to update

### getTopLevelLM

    protected LayoutManager getTopLevelLM()

  Specified by:
    `getTopLevelLM` in class `AbstractBreaker`
  Returns:
    top level layout manager

### 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.

  Overrides:
    `getPageProvider` in class `AbstractBreaker`
  Returns:
    the applicable PageProvider, or null if not applicable

### createLayoutListener

    protected PageBreakingAlgorithm.PageBreakingLayoutListener createLayoutListener()

  Creates and returns a PageBreakingLayoutListener for the PageBreakingAlgorithm to notify about layout problems.

  Overrides:
    `createLayoutListener` in class `AbstractBreaker`
  Returns:
    the listener instance or null if no notifications are needed

### handleSpanChange

    protected int handleSpanChange(LayoutContext childLC,
                                   int nextSequenceStartsOn)

  Handles span changes reported through the `LayoutContext`. Only used by the PSLM and called by `getNextBlockList()`.

  Overrides:
    `handleSpanChange` in class `AbstractBreaker`
  Parameters:
    `childLC` - the LayoutContext
    `nextSequenceStartsOn` - previous value for break handling
  Returns:
    effective value for break handling

### 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.

  Overrides:
    `getNextBlockList` in class `AbstractBreaker`
  Parameters:
    `childLC` - LayoutContext to use
    `nextSequenceStartsOn` - indicates on what page the next sequence should start
  Returns:
    the page on which the next content should appear after a hard break

### getNextBlockList

    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.

  Overrides:
    `getNextBlockList` in class `AbstractBreaker`
  Parameters:
    `childLC` - LayoutContext to use
    `nextSequenceStartsOn` - indicates on what page the next sequence should start
    `positionAtIPDChange` - last element on the part before an IPD change
    `restartLM` - the layout manager from which to restart, if IPD change occurs between two LMs
    `firstElements` - elements from non-restartable LMs on the new page
  Returns:
    the page on which the next content should appear after a hard break

### getFootnoteKnuthElements

    public static java.util.List<java.util.List<KnuthElement>> getFootnoteKnuthElements(FlowLayoutManager flowLM,
                                                                                        LayoutContext context,
                                                                                        java.util.List<FootnoteBodyLayoutManager> footnoteBodyLMs)

### getNextKnuthElements

    protected java.util.List getNextKnuthElements(LayoutContext context,
                                                  int alignment)

  Get a sequence of KnuthElements representing the content of the node assigned to the LM

  Specified by:
    `getNextKnuthElements` in class `AbstractBreaker`
  Parameters:
    `context` - the LayoutContext used to store layout information
    `alignment` - the desired text alignment
  Returns:
    the list of KnuthElements

### getNextKnuthElements

    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

  Overrides:
    `getNextKnuthElements` in class `AbstractBreaker`
  Parameters:
    `context` - the LayoutContext used to store layout information
    `alignment` - the desired text alignment
    `positionAtIPDChange` - last element on the part before an IPD change
    `restartAtLM` - the layout manager from which to restart, if IPD change occurs between two LMs
  Returns:
    the list of KnuthElements

### getCurrentDisplayAlign

    protected int getCurrentDisplayAlign()

  Specified by:
    `getCurrentDisplayAlign` in class `AbstractBreaker`
  Returns:
    current display alignment

### hasMoreContent

    protected boolean hasMoreContent()

  Specified by:
    `hasMoreContent` in class `AbstractBreaker`
  Returns:
    whether or not this flow has more page break opportunities

### addAreas

    protected void addAreas(PositionIterator posIter,
                            LayoutContext context)

  Adds an area to the flow layout manager

  Specified by:
    `addAreas` in class `AbstractBreaker`
  Parameters:
    `posIter` - the position iterator
    `context` - the layout context

### doPhase3

    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 This implementation checks whether to trigger column-balancing, or whether to take into account a 'last-page' condition.

  Specified by:
    `doPhase3` in class `AbstractBreaker`
  Parameters:
    `alg` - PageBreakingAlgorithm instance which determined the breaks
    `partCount` - number of parts (pages) to be rendered
    `originalList` - original Knuth element list
    `effectiveList` - effective Knuth element list (after adjustments)

### startPart

    protected void startPart(AbstractBreaker.BlockSequence list,
                             int breakClass)

  Start part.

  Overrides:
    `startPart` in class `AbstractBreaker`
  Parameters:
    `list` - a block sequence
    `breakClass` - a break class

### handleEmptyContent

    protected void handleEmptyContent()

  This method is called when no content is available for a part. Used to force empty pages.

  Overrides:
    `handleEmptyContent` in class `AbstractBreaker`

### finishPart

    protected void finishPart(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
                              AbstractBreaker.PageBreakPosition pbp)

  Finish part.

  Specified by:
    `finishPart` in class `AbstractBreaker`
  Parameters:
    `alg` - a page breaking algorithm
    `pbp` - a page break posittion

### getCurrentChildLM

    protected FlowLayoutManager getCurrentChildLM()

  Specified by:
    `getCurrentChildLM` in class `AbstractBreaker`
  Returns:
    current child layout manager

### observeElementList

    protected void observeElementList(java.util.List elementList)

  Used for debugging purposes. Notifies all registered observers about the element list. Override to set different parameters.

  Overrides:
    `observeElementList` in class `AbstractBreaker`
  Parameters:
    `elementList` - the Knuth element list

### handlingStartOfFloat

    protected boolean handlingStartOfFloat()

### handleStartOfFloat

    protected void handleStartOfFloat(int fHeight,
                                      int fYOffset)

### getFloatHeight

    protected int getFloatHeight()

### getFloatYOffset

    protected int getFloatYOffset()

### handlingEndOfFloat

    protected boolean handlingEndOfFloat()

### handleEndOfFloat

    protected void handleEndOfFloat(int fHeight)

### handlingFloat

    protected boolean handlingFloat()

### getOffsetDueToFloat

    public int getOffsetDueToFloat()

### handleFloatLayout

    protected int handleFloatLayout(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg,
                                    int optimalPageCount,
                                    AbstractBreaker.BlockSequence blockList,
                                    LayoutContext childLC)

  Overrides:
    `handleFloatLayout` in class `AbstractBreaker`

### addAreasForFloats

    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)

  Overrides:
    `addAreasForFloats` in class `AbstractBreaker`

### holdFootnotes

    public 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)

### retrieveFootones

    public void retrieveFootones(org.apache.fop.layoutmgr.PageBreakingAlgorithm alg)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 2.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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