fop 1.0

org.apache.fop.layoutmgr
Class AbstractBaseLayoutManager

java.lang.Object
  extended by org.apache.fop.layoutmgr.AbstractBaseLayoutManager
All Implemented Interfaces:
PercentBaseContext, LayoutManager
Direct Known Subclasses:
AbstractLayoutManager, ContentLayoutManager

public abstract class AbstractBaseLayoutManager
extends java.lang.Object
implements LayoutManager, PercentBaseContext

The base class for nearly all LayoutManagers. Provides the functionality for merging the LayoutManager and the PercentBaseContext interfaces into a common base class for all higher LayoutManagers.


Field Summary
protected  FObj fobj
          The formatting object for this LM.
protected  boolean generatesBlockArea
          Indicator if this LM generates block areas.
protected  boolean generatesReferenceArea
          Indicator if this LM generates reference areas.
 
Constructor Summary
AbstractBaseLayoutManager()
          Abstract base layout manager.
AbstractBaseLayoutManager(FObj fo)
          Abstract base layout manager.
 
Method Summary
protected  int getAncestorBlockAreaBPD()
          Find the first ancestor area that is a block area and returns its BPD.
protected  int getAncestorBlockAreaIPD()
          Find the first ancestor area that is a block area and returns its IPD.
 int getBaseLength(int lengthBase, FObj fobjx)
          Returns the base length for the given length base.
 int getContentAreaBPD()
          Returns the BPD of the content area
 int getContentAreaIPD()
          Returns the IPD of the content area
 FObj getFObj()
          Returns the fo this layout manager is associated with.
 boolean getGeneratesBlockArea()
          Returns an indication if the layout manager generates a block area.
 boolean getGeneratesLineArea()
          Returns an indication if the layout manager generates a line area.
 boolean getGeneratesReferenceArea()
          Returns an indication if the layout manager generates a reference area.
 java.util.List getNextKnuthElements(LayoutContext context, int alignment, java.util.Stack lmStack, Position positionAtIPDChange, LayoutManager restartAtLM)
          Returns an updated list of Knuth elements corresponding to this layout manager, after a change of IPD has been detected.
protected  int getParentAreaBPD()
          Find the parent area and returns its BPD.
protected  int getParentAreaIPD()
          Find the parent area and returns its IPD.
protected  int getReferenceAreaBPD()
          Find the first ancestor area that is a reference area and returns its BPD.
 int getReferenceAreaIPD()
          Find the first ancestor area that is a reference area and returns its IPD.
 boolean isRestartable()
          Returns true if this layout manager is able to re-generate its Knuth elements after an IPD change.
 void reset()
          Re-initializes this layout manager in order to re-generate its Knuth elements according to a new IPD value.
protected  void setGeneratesBlockArea(boolean generatesBlockArea)
          Lets implementing LM set the flag indicating if they generate block areas.
protected  void setGeneratesReferenceArea(boolean generatesReferenceArea)
          Lets implementing LM set the flag indicating if they generate reference areas.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.fop.layoutmgr.LayoutManager
addAreas, addChildArea, addChildLM, addChildLMs, createNextChildLMs, getChangedKnuthElements, getChildLMs, getNextKnuthElements, getParent, getParentArea, getPSLM, initialize, isFinished, notifyPos, setFinished, setParent
 

Field Detail

generatesReferenceArea

protected boolean generatesReferenceArea
Indicator if this LM generates reference areas.


generatesBlockArea

protected boolean generatesBlockArea
Indicator if this LM generates block areas.


fobj

protected final FObj fobj
The formatting object for this LM.

Constructor Detail

AbstractBaseLayoutManager

public AbstractBaseLayoutManager()
Abstract base layout manager.


AbstractBaseLayoutManager

public AbstractBaseLayoutManager(FObj fo)
Abstract base layout manager.

Parameters:
fo - the formatting object for this layout manager
Method Detail

getBaseLength

public int getBaseLength(int lengthBase,
                         FObj fobjx)
Returns the base length for the given length base. Length base should be one of the constants defined in LengthBase.

Specified by:
getBaseLength in interface PercentBaseContext
Parameters:
lengthBase - Indicates which type of the base length value is to be returned
fobjx - The FO object against which the percentage should be evaluated
Returns:
The base length value of the given kind

getAncestorBlockAreaIPD

protected int getAncestorBlockAreaIPD()
Find the first ancestor area that is a block area and returns its IPD.

Returns:
the ipd of the ancestor block area

getAncestorBlockAreaBPD

protected int getAncestorBlockAreaBPD()
Find the first ancestor area that is a block area and returns its BPD.

Returns:
the bpd of the ancestor block area

getParentAreaIPD

protected int getParentAreaIPD()
Find the parent area and returns its IPD.

Returns:
the ipd of the parent area

getParentAreaBPD

protected int getParentAreaBPD()
Find the parent area and returns its BPD.

Returns:
the bpd of the parent area

getReferenceAreaIPD

public int getReferenceAreaIPD()
Find the first ancestor area that is a reference area and returns its IPD.

Returns:
the ipd of the ancestor reference area

getReferenceAreaBPD

protected int getReferenceAreaBPD()
Find the first ancestor area that is a reference area and returns its BPD.

Returns:
the bpd of the ancestor reference area

getContentAreaIPD

public int getContentAreaIPD()
Returns the IPD of the content area NOTE: Should be overridden by subclasses. Default implementation throws an UnsupportedOperationException.

Specified by:
getContentAreaIPD in interface LayoutManager
Returns:
the IPD of the content area

getContentAreaBPD

public int getContentAreaBPD()
Returns the BPD of the content area NOTE: Should be overridden by subclasses. Default implementation throws an UnsupportedOperationException.

Specified by:
getContentAreaBPD in interface LayoutManager
Returns:
the BPD of the content area

getGeneratesReferenceArea

public boolean getGeneratesReferenceArea()
Returns an indication if the layout manager generates a reference area.

Specified by:
getGeneratesReferenceArea in interface LayoutManager
Returns:
True if the layout manager generates a reference area

setGeneratesReferenceArea

protected void setGeneratesReferenceArea(boolean generatesReferenceArea)
Lets implementing LM set the flag indicating if they generate reference areas.

Parameters:
generatesReferenceArea - if true the areas generates by this LM are reference areas.

getGeneratesBlockArea

public boolean getGeneratesBlockArea()
Returns an indication if the layout manager generates a block area.

Specified by:
getGeneratesBlockArea in interface LayoutManager
Returns:
True if the layout manager generates a block area

setGeneratesBlockArea

protected void setGeneratesBlockArea(boolean generatesBlockArea)
Lets implementing LM set the flag indicating if they generate block areas.

Parameters:
generatesBlockArea - if true the areas generates by this LM are block areas.

getGeneratesLineArea

public boolean getGeneratesLineArea()
Returns an indication if the layout manager generates a line area.

Specified by:
getGeneratesLineArea in interface LayoutManager
Returns:
True if the layout manager generates a line area

getFObj

public FObj getFObj()
Returns the fo this layout manager is associated with.

Specified by:
getFObj in interface LayoutManager
Returns:
The fo for this layout manager or null.

reset

public void reset()
Re-initializes this layout manager in order to re-generate its Knuth elements according to a new IPD value.

Specified by:
reset in interface LayoutManager

isRestartable

public boolean isRestartable()
Returns true if this layout manager is able to re-generate its Knuth elements after an IPD change.

Specified by:
isRestartable in interface LayoutManager
Returns:
true if this layout manager can be restarted after an IPD change

getNextKnuthElements

public java.util.List getNextKnuthElements(LayoutContext context,
                                           int alignment,
                                           java.util.Stack lmStack,
                                           Position positionAtIPDChange,
                                           LayoutManager restartAtLM)
Returns an updated list of Knuth elements corresponding to this layout manager, after a change of IPD has been detected.

Specified by:
getNextKnuthElements in interface LayoutManager
Parameters:
context - the layout context
alignment - the alignment
lmStack - the stack of LMs that are active at the IPD change
positionAtIPDChange - the position corresponding to the element finishing the page before the IPD change
restartAtLM - if not null, the layout manager from which to restart. That is, the IPD change occurs between two block elements and not inside a paragraph
Returns:
an updated list of elements, taking the new IPD into account

fop 1.0

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