fop 1.0

org.apache.fop.layoutmgr
Class AbstractLayoutManager

java.lang.Object
  extended by org.apache.fop.layoutmgr.AbstractBaseLayoutManager
      extended by org.apache.fop.layoutmgr.AbstractLayoutManager
All Implemented Interfaces:
PercentBaseContext, Constants, LayoutManager
Direct Known Subclasses:
AbstractPageSequenceLayoutManager, BlockStackingLayoutManager, InlineStackingLayoutManager, LeafNodeLayoutManager

public abstract class AbstractLayoutManager
extends AbstractBaseLayoutManager
implements Constants

The base class for most LayoutManagers.


Field Summary
protected  java.util.ListIterator childLMiter
          child LM iterator during getNextKnuthElement phase
protected  java.util.List childLMs
          List of child LayoutManagers
protected  LayoutManager curChildLM
          child LM during getNextKnuthElement phase
protected  java.util.ListIterator fobjIter
          Iterator for child LayoutManagers
protected  LayoutManager parentLayoutManager
          Parent LayoutManager for this LayoutManager
 
Fields inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager
fobj, generatesBlockArea, generatesReferenceArea
 
Fields inherited from interface org.apache.fop.fo.Constants
COMPOUND_COUNT, COMPOUND_MASK, COMPOUND_SHIFT, CP_BLOCK_PROGRESSION_DIRECTION, CP_CONDITIONALITY, CP_INLINE_PROGRESSION_DIRECTION, CP_LENGTH, CP_MAXIMUM, CP_MINIMUM, CP_OPTIMUM, CP_PRECEDENCE, CP_WITHIN_COLUMN, CP_WITHIN_LINE, CP_WITHIN_PAGE, EN_100, EN_200, EN_300, EN_400, EN_500, EN_600, EN_700, EN_800, EN_900, EN_ABSOLUTE, EN_ABSOLUTE_COLORMETRIC, EN_AFTER, EN_AFTER_EDGE, EN_ALL, EN_ALPHABETIC, EN_ALTERNATE, EN_ALWAYS, EN_ANY, EN_AUTO, EN_AUTO_EVEN, EN_AUTO_ODD, EN_AVOID, EN_BACKSLANT, EN_BASELINE, EN_BEFORE, EN_BEFORE_EDGE, EN_BIDI_OVERRIDE, EN_BLANK, EN_BLINK, EN_BLOCK, EN_BOLDER, EN_BOTH, EN_BOTTOM, EN_BOUNDED_IN_ONE_DIMENSION, EN_CAPITALIZE, EN_CAPTION, EN_CENTER, EN_CENTRAL, EN_CHARACTER_BY_CHARACTER, EN_COLLAPSE, EN_COLLAPSE_WITH_PRECEDENCE, EN_COLUMN, EN_CONDENSED, EN_CONSIDER_SHIFTS, EN_DASHED, EN_DISCARD, EN_DISREGARD_SHIFTS, EN_DOCUMENT, EN_DOTS, EN_DOTTED, EN_DOUBLE, EN_EMBED, EN_END, EN_END_ON_EVEN, EN_END_ON_ODD, EN_ERROR_IF_OVERFLOW, EN_EVEN, EN_EVEN_PAGE, EN_EXPANDED, EN_EXTRA_CONDENSED, EN_EXTRA_EXPANDED, EN_FALSE, EN_FIC, EN_FIRST, EN_FIRST_STARTING, EN_FIXED, EN_FONT_HEIGHT, EN_FORCE, EN_FSWP, EN_GROOVE, EN_HANGING, EN_HIDDEN, EN_HIDE, EN_ICON, EN_IDEOGRAPHIC, EN_IGNORE, EN_IGNORE_IF_AFTER_LINEFEED, EN_IGNORE_IF_BEFORE_LINEFEED, EN_IGNORE_IF_SURROUNDING_LINEFEED, EN_INDEFINITE, EN_INDENT, EN_INHERIT, EN_INSET, EN_INSIDE, EN_INTEGER_PIXELS, EN_ITALIC, EN_JUSTIFY, EN_LARGER, EN_LAST, EN_LAST_ENDING, EN_LAST_STARTING, EN_LEAVE_SEPARATE, EN_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LINK, EN_LOWERCASE, EN_LR_TB, EN_LSWP, EN_LTR, EN_MATHEMATICAL, EN_MAX_HEIGHT, EN_MENU, EN_MERGE, EN_MESSAGE_BOX, EN_MIDDLE, EN_NARROWER, EN_NEW, EN_NO_BLINK, EN_NO_CHANGE, EN_NO_FORCE, EN_NO_LIMIT, EN_NO_LINE_THROUGH, EN_NO_LINK, EN_NO_OVERLINE, EN_NO_UNDERLINE, EN_NO_WRAP, EN_NON_UNIFORM, EN_NONE, EN_NOREPEAT, EN_NORMAL, EN_NOT_BLANK, EN_OBLIQUE, EN_ODD, EN_ODD_PAGE, EN_ONLY, EN_OUTSET, EN_OUTSIDE, EN_OVERLINE, EN_PAGE, EN_PAGE_SEQUENCE, EN_PAGINATE, EN_PERCEPTUAL, EN_PRE, EN_PRESERVE, EN_REFERENCE_AREA, EN_RELATIVE, EN_RELATIVE_COLOMETRIC, EN_REPEAT, EN_REPEATX, EN_REPEATY, EN_REPLACE, EN_RESAMPLE_ANY_METHOD, EN_RESET_SIZE, EN_REST, EN_RETAIN, EN_RIDGE, EN_RIGHT, EN_RL_TB, EN_RTL, EN_RULE, EN_SATURATION, EN_SCALE_DOWN_TO_FIT, EN_SCALE_TO_FIT, EN_SCALE_UP_TO_FIT, EN_SCROLL, EN_SEMI_CONDENSED, EN_SEMI_EXPANDED, EN_SEPARATE, EN_SHOW, EN_SMALL_CAPS, EN_SMALL_CAPTION, EN_SMALLER, EN_SOLID, EN_SPACE, EN_START, EN_STATIC, EN_STATUS_BAR, EN_SUB, EN_SUPER, EN_SUPPRESS, EN_TABLE, EN_TABLE_FRAGMENT, EN_TB_RL, EN_TEXT_AFTER_EDGE, EN_TEXT_BEFORE_EDGE, EN_TEXT_BOTTOM, EN_TEXT_TOP, EN_TOP, EN_TRADITIONAL, EN_TREAT_AS_SPACE, EN_TREAT_AS_ZERO_WIDTH_SPACE, EN_TRUE, EN_ULTRA_CONDENSED, EN_ULTRA_EXPANDED, EN_UNBOUNDED, EN_UNDERLINE, EN_UNIFORM, EN_UPPERCASE, EN_USE_FONT_METRICS, EN_USE_SCRIPT, EN_USECONTENT, EN_VISIBLE, EN_WIDER, EN_WRAP, EN_X_DISTRIBUTE, EN_X_FILL, ENUM_COUNT, FO_BASIC_LINK, FO_BIDI_OVERRIDE, FO_BLOCK, FO_BLOCK_CONTAINER, FO_BOOKMARK, FO_BOOKMARK_TITLE, FO_BOOKMARK_TREE, FO_CHANGE_BAR_BEGIN, FO_CHANGE_BAR_END, FO_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FLOW_ASSIGNMENT, FO_FLOW_MAP, FO_FLOW_NAME_SPECIFIER, FO_FLOW_SOURCE_LIST, FO_FLOW_TARGET_LIST, FO_FOLIO_PREFIX, FO_FOLIO_SUFFIX, FO_FOOTNOTE, FO_FOOTNOTE_BODY, FO_INDEX_KEY_REFERENCE, FO_INDEX_PAGE_CITATION_LIST, FO_INDEX_PAGE_CITATION_LIST_SEPARATOR, FO_INDEX_PAGE_CITATION_RANGE_SEPARATOR, FO_INDEX_PAGE_NUMBER_PREFIX, FO_INDEX_PAGE_NUMBER_SUFFIX, FO_INDEX_RANGE_BEGIN, FO_INDEX_RANGE_END, FO_INITIAL_PROPERTY_SET, FO_INLINE, FO_INLINE_CONTAINER, FO_INSTREAM_FOREIGN_OBJECT, FO_LAYOUT_MASTER_SET, FO_LEADER, FO_LIST_BLOCK, FO_LIST_ITEM, FO_LIST_ITEM_BODY, FO_LIST_ITEM_LABEL, FO_MARKER, FO_MULTI_CASE, FO_MULTI_PROPERTIES, FO_MULTI_PROPERTY_SET, FO_MULTI_SWITCH, FO_MULTI_TOGGLE, FO_PAGE_NUMBER, FO_PAGE_NUMBER_CITATION, FO_PAGE_NUMBER_CITATION_LAST, FO_PAGE_SEQUENCE, FO_PAGE_SEQUENCE_MASTER, FO_PAGE_SEQUENCE_WRAPPER, FO_REGION_AFTER, FO_REGION_BEFORE, FO_REGION_BODY, FO_REGION_END, FO_REGION_NAME_SPECIFIER, FO_REGION_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_RETRIEVE_TABLE_MARKER, FO_ROOT, FO_SCALING_VALUE_CITATION, FO_SIMPLE_PAGE_MASTER, FO_SINGLE_PAGE_MASTER_REFERENCE, FO_STATIC_CONTENT, FO_TABLE, FO_TABLE_AND_CAPTION, FO_TABLE_BODY, FO_TABLE_CAPTION, FO_TABLE_CELL, FO_TABLE_COLUMN, FO_TABLE_FOOTER, FO_TABLE_HEADER, FO_TABLE_ROW, FO_TITLE, FO_UNKNOWN_NODE, FO_WRAPPER, FRM_OBJ_COUNT, NOT_SET, PR_ABSOLUTE_POSITION, PR_ACTIVE_STATE, PR_ALIGNMENT_ADJUST, PR_ALIGNMENT_BASELINE, PR_AUTO_RESTORE, PR_AZIMUTH, PR_BACKGROUND, PR_BACKGROUND_ATTACHMENT, PR_BACKGROUND_COLOR, PR_BACKGROUND_IMAGE, PR_BACKGROUND_POSITION, PR_BACKGROUND_POSITION_HORIZONTAL, PR_BACKGROUND_POSITION_VERTICAL, PR_BACKGROUND_REPEAT, PR_BASELINE_SHIFT, PR_BLANK_OR_NOT_BLANK, PR_BLOCK_PROGRESSION_DIMENSION, PR_BORDER, PR_BORDER_AFTER_COLOR, PR_BORDER_AFTER_PRECEDENCE, PR_BORDER_AFTER_STYLE, PR_BORDER_AFTER_WIDTH, PR_BORDER_BEFORE_COLOR, PR_BORDER_BEFORE_PRECEDENCE, PR_BORDER_BEFORE_STYLE, PR_BORDER_BEFORE_WIDTH, PR_BORDER_BOTTOM, PR_BORDER_BOTTOM_COLOR, PR_BORDER_BOTTOM_STYLE, PR_BORDER_BOTTOM_WIDTH, PR_BORDER_COLLAPSE, PR_BORDER_COLOR, PR_BORDER_END_COLOR, PR_BORDER_END_PRECEDENCE, PR_BORDER_END_STYLE, PR_BORDER_END_WIDTH, PR_BORDER_LEFT, PR_BORDER_LEFT_COLOR, PR_BORDER_LEFT_STYLE, PR_BORDER_LEFT_WIDTH, PR_BORDER_RIGHT, PR_BORDER_RIGHT_COLOR, PR_BORDER_RIGHT_STYLE, PR_BORDER_RIGHT_WIDTH, PR_BORDER_SEPARATION, PR_BORDER_SPACING, PR_BORDER_START_COLOR, PR_BORDER_START_PRECEDENCE, PR_BORDER_START_STYLE, PR_BORDER_START_WIDTH, PR_BORDER_STYLE, PR_BORDER_TOP, PR_BORDER_TOP_COLOR, PR_BORDER_TOP_STYLE, PR_BORDER_TOP_WIDTH, PR_BORDER_WIDTH, PR_BOTTOM, PR_BREAK_AFTER, PR_BREAK_BEFORE, PR_CAPTION_SIDE, PR_CASE_NAME, PR_CASE_TITLE, PR_CHANGE_BAR_CLASS, PR_CHANGE_BAR_COLOR, PR_CHANGE_BAR_OFFSET, PR_CHANGE_BAR_PLACEMENT, PR_CHANGE_BAR_STYLE, PR_CHANGE_BAR_WIDTH, PR_CHARACTER, PR_CLEAR, PR_CLIP, PR_COLOR, PR_COLOR_PROFILE_NAME, PR_COLUMN_COUNT, PR_COLUMN_GAP, PR_COLUMN_NUMBER, PR_COLUMN_WIDTH, PR_CONTENT_HEIGHT, PR_CONTENT_TYPE, PR_CONTENT_WIDTH, PR_COUNTRY, PR_CUE, PR_CUE_AFTER, PR_CUE_BEFORE, PR_DESTINATION_PLACEMENT_OFFSET, PR_DIRECTION, PR_DISPLAY_ALIGN, PR_DOMINANT_BASELINE, PR_ELEVATION, PR_EMPTY_CELLS, PR_END_INDENT, PR_ENDS_ROW, PR_EXTENT, PR_EXTERNAL_DESTINATION, PR_FLOAT, PR_FLOW_MAP_NAME, PR_FLOW_MAP_REFERENCE, PR_FLOW_NAME, PR_FLOW_NAME_REFERENCE, PR_FONT, PR_FONT_FAMILY, PR_FONT_SELECTION_STRATEGY, PR_FONT_SIZE, PR_FONT_SIZE_ADJUST, PR_FONT_STRETCH, PR_FONT_STYLE, PR_FONT_VARIANT, PR_FONT_WEIGHT, PR_FORCE_PAGE_COUNT, PR_FORMAT, PR_GLYPH_ORIENTATION_HORIZONTAL, PR_GLYPH_ORIENTATION_VERTICAL, PR_GROUPING_SEPARATOR, PR_GROUPING_SIZE, PR_HEIGHT, PR_HYPHENATE, PR_HYPHENATION_CHARACTER, PR_HYPHENATION_KEEP, PR_HYPHENATION_LADDER_COUNT, PR_HYPHENATION_PUSH_CHARACTER_COUNT, PR_HYPHENATION_REMAIN_CHARACTER_COUNT, PR_ID, PR_INDEX_CLASS, PR_INDEX_KEY, PR_INDICATE_DESTINATION, PR_INITIAL_PAGE_NUMBER, PR_INLINE_PROGRESSION_DIMENSION, PR_INTERNAL_DESTINATION, PR_INTRINSIC_SCALE_VALUE, PR_INTRUSION_DISPLACE, PR_KEEP_TOGETHER, PR_KEEP_WITH_NEXT, PR_KEEP_WITH_PREVIOUS, PR_LANGUAGE, PR_LAST_LINE_END_INDENT, PR_LEADER_ALIGNMENT, PR_LEADER_LENGTH, PR_LEADER_PATTERN, PR_LEADER_PATTERN_WIDTH, PR_LEFT, PR_LETTER_SPACING, PR_LETTER_VALUE, PR_LINE_HEIGHT, PR_LINE_HEIGHT_SHIFT_ADJUSTMENT, PR_LINE_STACKING_STRATEGY, PR_LINEFEED_TREATMENT, PR_MARGIN, PR_MARGIN_BOTTOM, PR_MARGIN_LEFT, PR_MARGIN_RIGHT, PR_MARGIN_TOP, PR_MARKER_CLASS_NAME, PR_MASTER_NAME, PR_MASTER_REFERENCE, PR_MAX_HEIGHT, PR_MAX_WIDTH, PR_MAXIMUM_REPEATS, PR_MEDIA_USAGE, PR_MERGE_PAGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_RANGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_SEQUENTIAL_PAGE_NUMBERS, PR_MIN_HEIGHT, PR_MIN_WIDTH, PR_NUMBER_COLUMNS_REPEATED, PR_NUMBER_COLUMNS_SPANNED, PR_NUMBER_ROWS_SPANNED, PR_ODD_OR_EVEN, PR_ORPHANS, PR_OVERFLOW, PR_PADDING, PR_PADDING_AFTER, PR_PADDING_BEFORE, PR_PADDING_BOTTOM, PR_PADDING_END, PR_PADDING_LEFT, PR_PADDING_RIGHT, PR_PADDING_START, PR_PADDING_TOP, PR_PAGE_BREAK_AFTER, PR_PAGE_BREAK_BEFORE, PR_PAGE_BREAK_INSIDE, PR_PAGE_CITATION_STRATEGY, PR_PAGE_HEIGHT, PR_PAGE_NUMBER_TREATMENT, PR_PAGE_POSITION, PR_PAGE_WIDTH, PR_PAUSE, PR_PAUSE_AFTER, PR_PAUSE_BEFORE, PR_PITCH, PR_PITCH_RANGE, PR_PLAY_DURING, PR_POSITION, PR_PRECEDENCE, PR_PROVISIONAL_DISTANCE_BETWEEN_STARTS, PR_PROVISIONAL_LABEL_SEPARATION, PR_REF_ID, PR_REF_INDEX_KEY, PR_REFERENCE_ORIENTATION, PR_REGION_NAME, PR_REGION_NAME_REFERENCE, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_BOUNDARY_WITHIN_TABLE, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, PR_RETRIEVE_POSITION_WITHIN_TABLE, PR_RICHNESS, PR_RIGHT, PR_ROLE, PR_RULE_STYLE, PR_RULE_THICKNESS, PR_SCALING, PR_SCALING_METHOD, PR_SCORE_SPACES, PR_SCRIPT, PR_SHOW_DESTINATION, PR_SIZE, PR_SOURCE_DOCUMENT, PR_SPACE_AFTER, PR_SPACE_BEFORE, PR_SPACE_END, PR_SPACE_START, PR_SPAN, PR_SPEAK, PR_SPEAK_HEADER, PR_SPEAK_NUMERAL, PR_SPEAK_PUNCTUATION, PR_SPEECH_RATE, PR_SRC, PR_START_INDENT, PR_STARTING_STATE, PR_STARTS_ROW, PR_STRESS, PR_SUPPRESS_AT_LINE_BREAK, PR_SWITCH_TO, PR_TABLE_LAYOUT, PR_TABLE_OMIT_FOOTER_AT_BREAK, PR_TABLE_OMIT_HEADER_AT_BREAK, PR_TARGET_PRESENTATION_CONTEXT, PR_TARGET_PROCESSING_CONTEXT, PR_TARGET_STYLESHEET, PR_TEXT_ALIGN, PR_TEXT_ALIGN_LAST, PR_TEXT_ALTITUDE, PR_TEXT_DECORATION, PR_TEXT_DEPTH, PR_TEXT_INDENT, PR_TEXT_SHADOW, PR_TEXT_TRANSFORM, PR_TOP, PR_TREAT_AS_WORD_SPACE, PR_UNICODE_BIDI, PR_VERTICAL_ALIGN, PR_VISIBILITY, PR_VOICE_FAMILY, PR_VOLUME, PR_WHITE_SPACE, PR_WHITE_SPACE_COLLAPSE, PR_WHITE_SPACE_TREATMENT, PR_WIDOWS, PR_WIDTH, PR_WORD_SPACING, PR_WRAP_OPTION, PR_WRITING_MODE, PR_X_ALT_TEXT, PR_X_BLOCK_PROGRESSION_UNIT, PR_X_DISABLE_COLUMN_BALANCING, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_PTR, PR_X_WIDOW_CONTENT_LIMIT, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK
 
Constructor Summary
AbstractLayoutManager()
          Abstract layout manager.
AbstractLayoutManager(FObj fo)
          Abstract layout manager.
 
Method Summary
 void addAreas(PositionIterator posIter, LayoutContext context)
          Tell the layout manager to add all the child areas implied by Position objects which will be returned by the Iterator.
 void addChildArea(Area childArea)
          Add a child area to the current area.
 void addChildLM(LayoutManager lm)
          Add the LM in the argument to the list of child LMs; set this LM as the parent; initialize the LM.
 void addChildLMs(java.util.List newLMs)
          Add the LMs in the argument to the list of child LMs;
protected  void addId()
          Registers the FO's id on the current PageViewport
protected  void addMarkersToPage(boolean isStarting, boolean isFirst, boolean isLast)
          Registers the FO's markers on the current PageViewport
protected  void checkEndOfLayout(Position pos)
          Checks to see if the incoming Position is the last one for this LM, and if so, calls notifyEndOfLayout() and cleans up.
protected  java.util.List createChildLMs(int size)
          Create the LM instances for the children of the formatting object being handled by this LM.
 boolean createNextChildLMs(int pos)
          Create more child LMs of the parent, up to child LM index pos
 java.util.List getChangedKnuthElements(java.util.List oldList, int alignment)
          Get a sequence of KnuthElements representing the content of the node assigned to the LM, after changes have been applied In the context of line breaking, this method is called after hyphenation has been performed, in order to receive the sequence of elements representing the text together with all possible hyphenation points.
protected  LayoutManager getChildLM()
          Return currently active child LayoutManager or null if all children have finished layout.
 java.util.List getChildLMs()
          
 Page getCurrentPage()
           
 PageViewport getCurrentPV()
           
 java.util.List getNextKnuthElements(LayoutContext context, int alignment)
          Get a sequence of KnuthElements representing the content of the node assigned to the LM
 LayoutManager getParent()
          Get the parent layout manager.
 Area getParentArea(Area childArea)
          Return an Area which can contain the passed childArea.
 PageSequenceLayoutManager getPSLM()
          Get the active PageSequenceLayoutManager instance for this layout process.
protected  boolean hasNextChildLM()
          Return indication if getChildLM will return another LM.
 void initialize()
          initialize the layout manager.
 boolean isFinished()
          Tell whether this LayoutManager has handled all of its content.
 boolean isFirst(Position pos)
          Indicates whether the given Position is the first area-generating Position of this LM.
 boolean isLast(Position pos)
          Indicates whether the given Position is the last area-generating Position of this LM.
protected  void notifyEndOfLayout()
          Notifies the PageSequenceLayoutManager that layout for this LM has ended.
 Position notifyPos(Position pos)
          Adds a Position to the Position participating in the first|last determination by assigning it a unique position index.
 void reset()
          Re-initializes this layout manager in order to re-generate its Knuth elements according to a new IPD value.
protected  void setCurrentChildLM(LayoutManager childLM)
           
 void setFinished(boolean fin)
          Set the flag indicating the LayoutManager has handled all of its content.
 void setParent(LayoutManager lm)
          Set the parent layout manager.
 java.lang.String toString()
          
protected  void transferExtensionAttachments(AreaTreeObject targetArea)
          Transfers extension attachments from the formatting object to the area.
protected  void transferExtensions(AreaTreeObject targetArea)
          Transfers extensions (foreign attributes and extension attachments) from the formatting object to the area.
protected  void transferForeignAttributes(AreaTreeObject targetArea)
          Transfers foreign attributes from the formatting object to the area.
 
Methods inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager
getAncestorBlockAreaBPD, getAncestorBlockAreaIPD, getBaseLength, getContentAreaBPD, getContentAreaIPD, getFObj, getGeneratesBlockArea, getGeneratesLineArea, getGeneratesReferenceArea, getNextKnuthElements, getParentAreaBPD, getParentAreaIPD, getReferenceAreaBPD, getReferenceAreaIPD, isRestartable, setGeneratesBlockArea, setGeneratesReferenceArea
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

parentLayoutManager

protected LayoutManager parentLayoutManager
Parent LayoutManager for this LayoutManager


childLMs

protected java.util.List childLMs
List of child LayoutManagers


fobjIter

protected java.util.ListIterator fobjIter
Iterator for child LayoutManagers


curChildLM

protected LayoutManager curChildLM
child LM during getNextKnuthElement phase


childLMiter

protected java.util.ListIterator childLMiter
child LM iterator during getNextKnuthElement phase

Constructor Detail

AbstractLayoutManager

public AbstractLayoutManager()
Abstract layout manager.


AbstractLayoutManager

public AbstractLayoutManager(FObj fo)
Abstract layout manager.

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

setParent

public void setParent(LayoutManager lm)
Set the parent layout manager. The parent layout manager is required for adding areas.

Specified by:
setParent in interface LayoutManager
Parameters:
lm - the parent layout manager

getParent

public LayoutManager getParent()
Get the parent layout manager.

Specified by:
getParent in interface LayoutManager
Returns:
the parent layout manager.

initialize

public void initialize()
initialize the layout manager. Allows each layout manager to calculate often used values.

Specified by:
initialize in interface LayoutManager

getChildLM

protected LayoutManager getChildLM()
Return currently active child LayoutManager or null if all children have finished layout. Note: child must implement LayoutManager! If it doesn't, skip it and print a warning.

Returns:
the current child LayoutManager

setCurrentChildLM

protected void setCurrentChildLM(LayoutManager childLM)

hasNextChildLM

protected boolean hasNextChildLM()
Return indication if getChildLM will return another LM.

Returns:
true if another child LM is still available

isFinished

public boolean isFinished()
Tell whether this LayoutManager has handled all of its content.

Specified by:
isFinished in interface LayoutManager
Returns:
True if there are no more break possibilities, ie. the last one returned represents the end of the content.

setFinished

public void setFinished(boolean fin)
Set the flag indicating the LayoutManager has handled all of its content.

Specified by:
setFinished in interface LayoutManager
Parameters:
fin - the flag value to be set

addAreas

public void addAreas(PositionIterator posIter,
                     LayoutContext context)
Tell the layout manager to add all the child areas implied by Position objects which will be returned by the Iterator.

Specified by:
addAreas in interface LayoutManager
Parameters:
posIter - the position iterator
context - the context

getNextKnuthElements

public 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 interface LayoutManager
Parameters:
context - the LayoutContext used to store layout information
alignment - the desired text alignment
Returns:
the list of KnuthElements

getChangedKnuthElements

public java.util.List getChangedKnuthElements(java.util.List oldList,
                                              int alignment)
Get a sequence of KnuthElements representing the content of the node assigned to the LM, after changes have been applied In the context of line breaking, this method is called after hyphenation has been performed, in order to receive the sequence of elements representing the text together with all possible hyphenation points. For example, if the text "representation" originates a single box element when getNextKnuthElements() is called, it will be now split in syllables (rep-re-sen-ta-tion) each one originating a box and divided by additional elements allowing a line break. In the context of page breaking, this method is called only if the pages need to be "vertically justified" modifying (also) the quantity of lines created by the paragraphs, and after a first page breaking has been performed. According to the result of the first page breaking, each paragraph now knows how many lines it must create (among the existing layout possibilities) and has to create a sequence of elements representing this layout; in particular, each box, representing a line, will contain a LineBreakPositions that will be used in the addAreas() phase. LMs having children look at the old list of elements in order to know which ones they must get the new elements from, as break conditions of preserved linefeeds can divide children into smaller groups (page sequences or paragraphs). LMs having no children can simply return the old elements if they have nothing to change. Inline LMs need to know the text alignment because it affects the elements representing feasible breaks between syllables.

Specified by:
getChangedKnuthElements in interface LayoutManager
Parameters:
oldList - the elements to replace
alignment - the desired text alignment
Returns:
the updated list of KnuthElements

getParentArea

public Area getParentArea(Area childArea)
Return an Area which can contain the passed childArea. The childArea may not yet have any content, but it has essential traits set. In general, if the LayoutManager already has an Area it simply returns it. Otherwise, it makes a new Area of the appropriate class. It gets a parent area for its area by calling its parent LM. Finally, based on the dimensions of the parent area, it initializes its own area. This includes setting the content IPD and the maximum BPD.

Specified by:
getParentArea in interface LayoutManager
Parameters:
childArea - the child area for which the parent area is wanted
Returns:
the parent area for the given child

addChildArea

public void addChildArea(Area childArea)
Add a child area to the current area. If this causes the maximum dimension of the current area to be exceeded, the parent LM is called to add it.

Specified by:
addChildArea in interface LayoutManager
Parameters:
childArea - the child area to be added

createChildLMs

protected java.util.List createChildLMs(int size)
Create the LM instances for the children of the formatting object being handled by this LM.

Parameters:
size - the requested number of child LMs
Returns:
the list with the preloaded child LMs

getPSLM

public PageSequenceLayoutManager getPSLM()
Get the active PageSequenceLayoutManager instance for this layout process.

Specified by:
getPSLM in interface LayoutManager
Returns:
the PageSequenceLayoutManager

getCurrentPage

public Page getCurrentPage()
Returns:
the Page instance corresponding to the current page
See Also:
AbstractPageSequenceLayoutManager.getCurrentPage()

getCurrentPV

public PageViewport getCurrentPV()
Returns:
the current page viewport

createNextChildLMs

public boolean createNextChildLMs(int pos)
Create more child LMs of the parent, up to child LM index pos

Specified by:
createNextChildLMs in interface LayoutManager
Parameters:
pos - index up to which child LMs are requested
Returns:
true if requested index does exist

getChildLMs

public java.util.List getChildLMs()

Specified by:
getChildLMs in interface LayoutManager
Returns:
the list of child LMs

addChildLM

public void addChildLM(LayoutManager lm)
Add the LM in the argument to the list of child LMs; set this LM as the parent; initialize the LM.

Specified by:
addChildLM in interface LayoutManager
Parameters:
lm - the LM to be added

addChildLMs

public void addChildLMs(java.util.List newLMs)
Add the LMs in the argument to the list of child LMs;

Specified by:
addChildLMs in interface LayoutManager
Parameters:
newLMs - the list of LMs to be added

notifyPos

public Position notifyPos(Position pos)
Adds a Position to the Position participating in the first|last determination by assigning it a unique position index.

Specified by:
notifyPos in interface LayoutManager
Parameters:
pos - the Position
Returns:
the same Position but with a position index

isFirst

public boolean isFirst(Position pos)
Indicates whether the given Position is the first area-generating Position of this LM.

Parameters:
pos - the Position (must be one with a position index)
Returns:
True if it is the first Position

isLast

public boolean isLast(Position pos)
Indicates whether the given Position is the last area-generating Position of this LM.

Parameters:
pos - the Position (must be one with a position index)
Returns:
True if it is the last Position

transferForeignAttributes

protected void transferForeignAttributes(AreaTreeObject targetArea)
Transfers foreign attributes from the formatting object to the area.

Parameters:
targetArea - the area to set the attributes on

transferExtensionAttachments

protected void transferExtensionAttachments(AreaTreeObject targetArea)
Transfers extension attachments from the formatting object to the area.

Parameters:
targetArea - the area to set the extensions on

transferExtensions

protected void transferExtensions(AreaTreeObject targetArea)
Transfers extensions (foreign attributes and extension attachments) from the formatting object to the area.

Parameters:
targetArea - the area to set the extensions on

addMarkersToPage

protected void addMarkersToPage(boolean isStarting,
                                boolean isFirst,
                                boolean isLast)
Registers the FO's markers on the current PageViewport

Parameters:
isStarting - boolean indicating whether the markers qualify as 'starting'
isFirst - boolean indicating whether the markers qualify as 'first'
isLast - boolean indicating whether the markers qualify as 'last'

addId

protected void addId()
Registers the FO's id on the current PageViewport


notifyEndOfLayout

protected void notifyEndOfLayout()
Notifies the PageSequenceLayoutManager that layout for this LM has ended.


checkEndOfLayout

protected void checkEndOfLayout(Position pos)
Checks to see if the incoming Position is the last one for this LM, and if so, calls notifyEndOfLayout() and cleans up.

Parameters:
pos - the Position to check

toString

public java.lang.String toString()

Overrides:
toString in class java.lang.Object

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
Overrides:
reset in class AbstractBaseLayoutManager

fop 1.0

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