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 java.lang.Object implements LayoutManager, PercentBaseContext
The base class for nearly all LayoutManagers. Provides the functionality for merging theLayoutManagerand thePercentBaseContextinterfaces into a common base class for all higher LayoutManagers.
-
-
Field Summary
Fields Modifier and Type Field Description protected FObjfobjThe formatting object for this LM.protected booleangeneratesBlockAreaIndicator if this LM generates block areas.protected booleangeneratesReferenceAreaIndicator if this LM generates reference areas.
-
Constructor Summary
Constructors Constructor Description AbstractBaseLayoutManager()Abstract base layout manager.AbstractBaseLayoutManager(FObj fo)Abstract base layout manager.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intgetAncestorBlockAreaBPD()Find the first ancestor area that is a block area and returns its BPD.protected intgetAncestorBlockAreaIPD()Find the first ancestor area that is a block area and returns its IPD.intgetBaseLength(int lengthBase, FObj fobjx)Returns the base length for the given length base.java.util.List<ChangeBar>getChangeBarList()Returns the active change bar list.intgetContentAreaBPD()Returns the BPD of the content areaintgetContentAreaIPD()Returns the IPD of the content areaFObjgetFObj()Returns the fo this layout manager is associated with.booleangetGeneratesBlockArea()Returns an indication if the layout manager generates a block area.booleangetGeneratesLineArea()Returns an indication if the layout manager generates a line area.booleangetGeneratesReferenceArea()Returns an indication if the layout manager generates a reference area.java.util.ListgetNextKnuthElements(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 intgetParentAreaBPD()Find the parent area and returns its BPD.protected intgetParentAreaIPD()Find the parent area and returns its IPD.protected intgetReferenceAreaBPD()Find the first ancestor area that is a reference area and returns its BPD.intgetReferenceAreaIPD()Find the first ancestor area that is a reference area and returns its IPD.booleanisRestartable()Returnstrueif this layout manager is able to re-generate its Knuth elements after an IPD change.voidpreserveChildrenAtEndOfLayout()voidrecreateChildrenLMs()voidreset()Re-initializes this layout manager in order to re-generate its Knuth elements according to a new IPD value.protected voidsetGeneratesBlockArea(boolean generatesBlockArea)Lets implementing LM set the flag indicating if they generate block areas.protected voidsetGeneratesReferenceArea(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 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 inLengthBase.- Specified by:
getBaseLengthin 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:
getContentAreaIPDin 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:
getContentAreaBPDin 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:
getGeneratesReferenceAreain 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:
getGeneratesBlockAreain 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:
getGeneratesLineAreain interfaceLayoutManager- 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:
getFObjin interfaceLayoutManager- Returns:
- The fo for this layout manager or null.
-
getChangeBarList
public java.util.List<ChangeBar> 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:
resetin interfaceLayoutManager
-
isRestartable
public boolean isRestartable()
Returnstrueif this layout manager is able to re-generate its Knuth elements after an IPD change.- Specified by:
isRestartablein interfaceLayoutManager- Returns:
trueif 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:
getNextKnuthElementsin 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()
-
-