Package org.apache.fop.layoutmgr
Class AbstractBaseLayoutManager
java.lang.Object
org.apache.fop.layoutmgr.AbstractBaseLayoutManager
- All Implemented Interfaces:
PercentBaseContext
,LayoutManager
- Direct Known Subclasses:
AbstractLayoutManager
,ContentLayoutManager
public abstract class AbstractBaseLayoutManager
extends 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
Modifier and TypeFieldDescriptionprotected final FObj
The formatting object for this LM.protected boolean
Indicator if this LM generates block areas.protected boolean
Indicator if this LM generates reference areas. -
Constructor Summary
ConstructorDescriptionAbstract base layout manager.Abstract base layout manager. -
Method Summary
Modifier and TypeMethodDescriptionprotected int
Find the first ancestor area that is a block area and returns its BPD.protected int
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.Returns the active change bar list.int
Returns the BPD of the content areaint
Returns the IPD of the content areagetFObj()
Returns the fo this layout manager is associated with.boolean
Returns an indication if the layout manager generates a block area.boolean
Returns an indication if the layout manager generates a line area.boolean
Returns an indication if the layout manager generates a reference area.getNextKnuthElements
(LayoutContext context, int alignment, 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
Find the parent area and returns its BPD.protected int
Find the parent area and returns its IPD.protected int
Find the first ancestor area that is a reference area and returns its BPD.int
Find the first ancestor area that is a reference area and returns its IPD.boolean
Returnstrue
if this layout manager is able to re-generate its Knuth elements after an IPD change.void
void
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, getBaselineOffset, getChangedKnuthElements, getChildLMs, getNextKnuthElements, getParent, getParentArea, getPSLM, hasLineAreaDescendant, initialize, isFinished, notifyPos, setFinished, setParent
-
Field Details
-
generatesReferenceArea
protected boolean generatesReferenceAreaIndicator if this LM generates reference areas. -
generatesBlockArea
protected boolean generatesBlockAreaIndicator if this LM generates block areas. -
fobj
The formatting object for this LM.
-
-
Constructor Details
-
AbstractBaseLayoutManager
public AbstractBaseLayoutManager()Abstract base layout manager. -
AbstractBaseLayoutManager
Abstract base layout manager.- Parameters:
fo
- the formatting object for this layout manager
-
-
Method Details
-
getBaseLength
Returns the base length for the given length base. Length base should be one of the constants defined inLengthBase
.- Specified by:
getBaseLength
in interfacePercentBaseContext
- Parameters:
lengthBase
- Indicates which type of the base length value is to be returnedfobjx
- 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 anUnsupportedOperationException
.- Specified by:
getContentAreaIPD
in interfaceLayoutManager
- 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 anUnsupportedOperationException
.- Specified by:
getContentAreaBPD
in interfaceLayoutManager
- 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 interfaceLayoutManager
- 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 interfaceLayoutManager
- 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 interfaceLayoutManager
- Returns:
- True if the layout manager generates a line area
-
getFObj
Returns the fo this layout manager is associated with.- Specified by:
getFObj
in interfaceLayoutManager
- Returns:
- The fo for this layout manager or null.
-
getChangeBarList
Returns the active change bar list.- Returns:
- The active change bar list
-
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 interfaceLayoutManager
-
isRestartable
public boolean isRestartable()Returnstrue
if this layout manager is able to re-generate its Knuth elements after an IPD change.- Specified by:
isRestartable
in interfaceLayoutManager
- Returns:
true
if this layout manager can be restarted after an IPD change
-
getNextKnuthElements
public List getNextKnuthElements(LayoutContext context, int alignment, 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 interfaceLayoutManager
- Parameters:
context
- the layout contextalignment
- the alignmentlmStack
- the stack of LMs that are active at the IPD changepositionAtIPDChange
- the position corresponding to the element finishing the page before the IPD changerestartAtLM
- 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
-
preserveChildrenAtEndOfLayout
public void preserveChildrenAtEndOfLayout() -
recreateChildrenLMs
public void recreateChildrenLMs()
-