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
FieldsModifier and TypeFieldDescriptionprotected final FObjThe formatting object for this LM.protected booleanIndicator if this LM generates block areas.protected booleanIndicator if this LM generates reference areas. -
Constructor Summary
ConstructorsConstructorDescriptionAbstract base layout manager.Abstract base layout manager. -
Method Summary
Modifier and TypeMethodDescriptionprotected intFind the first ancestor area that is a block area and returns its BPD.protected intFind 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.Returns the active change bar list.intReturns the BPD of the content areaintReturns the IPD of the content areagetFObj()Returns the fo this layout manager is associated with.booleanReturns an indication if the layout manager generates a block area.booleanReturns an indication if the layout manager generates a line area.booleanReturns 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 intFind the parent area and returns its BPD.protected intFind the parent area and returns its IPD.protected intFind the first ancestor area that is a reference area and returns its BPD.intFind the first ancestor area that is a reference area and returns its IPD.booleanbooleanReturnstrueif this layout manager is able to re-generate its Knuth elements after an IPD change.voidvoidvoidreset()Re-initializes this layout manager in order to re-generate its Knuth elements according to a new IPD value.voidsetFromFootnote(boolean fromFootnote) 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, waitMethods 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:
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()Description copied from interface:LayoutManagerReturns the BPD of the content area- 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
Returns the fo this layout manager is associated with.- Specified by:
getFObjin 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:
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 List<ListElement> 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:
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() -
isFromFootnote
public boolean isFromFootnote()- Specified by:
isFromFootnotein interfaceLayoutManager
-
setFromFootnote
public void setFromFootnote(boolean fromFootnote) - Specified by:
setFromFootnotein interfaceLayoutManager
-