fop 2.2

org.apache.fop.layoutmgr
Class BlockLayoutManager

java.lang.Object
  extended by org.apache.fop.layoutmgr.AbstractBaseLayoutManager
      extended by org.apache.fop.layoutmgr.AbstractLayoutManager
          extended by org.apache.fop.layoutmgr.BlockStackingLayoutManager
              extended by org.apache.fop.layoutmgr.SpacedBorderedPaddedBlockLayoutManager
                  extended by org.apache.fop.layoutmgr.BlockLayoutManager
All Implemented Interfaces:
PercentBaseContext, Constants, BlockLevelLayoutManager, BreakOpportunity, ConditionalElementListener, LayoutManager

public class BlockLayoutManager
extends SpacedBorderedPaddedBlockLayoutManager
implements BreakOpportunity

LayoutManager for a block FO.


Nested Class Summary
protected  class BlockLayoutManager.ProxyLMiter
          Proxy iterator for Block LM.
 
Nested classes/interfaces inherited from class org.apache.fop.layoutmgr.BlockStackingLayoutManager
BlockStackingLayoutManager.MappingPosition
 
Field Summary
protected  java.util.ListIterator<LayoutManager> proxyLMiter
          Iterator over the child layout managers.
 
Fields inherited from class org.apache.fop.layoutmgr.SpacedBorderedPaddedBlockLayoutManager
discardBorderAfter, discardBorderBefore, discardPaddingAfter, discardPaddingBefore, effSpaceAfter, effSpaceBefore
 
Fields inherited from class org.apache.fop.layoutmgr.BlockStackingLayoutManager
adjustedSpaceAfter, adjustedSpaceBefore, bpUnit, breakBeforeServed, endIndent, firstVisibleMarkServed, foSpaceAfter, foSpaceBefore, parentArea, referenceIPD, startIndent, storedList
 
Fields inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager
childLMiter, childLMs, curChildLM, fobjIter, parentLayoutManager
 
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_BT, 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_INCLUDING_CARRYOVER, 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, 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, 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_SELECT_FIRST_FITTING, 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, EN_TB_LR, 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, 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_ABBREVIATION, PR_X_ALT_TEXT, PR_X_AUTO_TOGGLE, PR_X_BACKGROUND_IMAGE_HEIGHT, PR_X_BACKGROUND_IMAGE_WIDTH, PR_X_BORDER_AFTER_END_RADIUS, PR_X_BORDER_AFTER_RADIUS_END, PR_X_BORDER_AFTER_RADIUS_START, PR_X_BORDER_AFTER_START_RADIUS, PR_X_BORDER_BEFORE_END_RADIUS, PR_X_BORDER_BEFORE_RADIUS_END, PR_X_BORDER_BEFORE_RADIUS_START, PR_X_BORDER_BEFORE_START_RADIUS, PR_X_BORDER_END_RADIUS_AFTER, PR_X_BORDER_END_RADIUS_BEFORE, PR_X_BORDER_RADIUS, PR_X_BORDER_START_RADIUS_AFTER, PR_X_BORDER_START_RADIUS_BEFORE, PR_X_DISABLE_COLUMN_BALANCING, PR_X_HEADER_COLUMN, PR_X_LAYER, PR_X_NUMBER_CONVERSION_FEATURES, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_X_XML_BASE, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK
 
Constructor Summary
BlockLayoutManager(Block inBlock)
          Creates a new BlockLayoutManager.
 
Method Summary
 void addAreas(PositionIterator parentIter, LayoutContext layoutContext)
          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 the childArea to the current area.
 boolean createNextChildLMs(int pos)
          Create more child LMs of the parent, up to child LM index pos
protected  void flush()
          Force current area to be added to parent area.
protected  Block getBlockFO()
          convenience method that returns the Block node
protected  CommonBorderPaddingBackground getCommonBorderPaddingBackground()
          Returns the CommonBorderPaddingBackground instance from the FO handled by this layout manager.
 int getContentAreaBPD()
          Returns the BPD of the content area
 int getContentAreaIPD()
          Returns the IPD of the content area
 boolean getGeneratesBlockArea()
          Returns an indication if the layout manager generates a block area.
 KeepProperty getKeepTogetherProperty()
          Returns the keep-together property specified on the FObj.
 KeepProperty getKeepWithNextProperty()
          Returns the keep-with-next property specified on the FObj.
 KeepProperty getKeepWithPreviousProperty()
          Returns the keep-with-previous property specified on the FObj.
protected  java.util.List<ListElement> getNextChildElements(LayoutManager childLM, LayoutContext context, LayoutContext childLC, int alignment, java.util.Stack lmStack, Position restartPosition, LayoutManager restartAtLM)
          Overridden to take into account that the childLM may be the block's LineLayoutManager.
 java.util.List getNextKnuthElements(LayoutContext context, int alignment)
          Get a sequence of KnuthElements representing the content of the node assigned to the LM.
 java.util.List getNextKnuthElements(LayoutContext context, int alignment, java.util.Stack lmStack, Position restartPosition, LayoutManager restartAtLM)
          Returns an updated list of Knuth elements corresponding to this layout manager, after a change of IPD has been detected.
 Area getParentArea(Area childArea)
          Return an Area which can contain the passed childArea.
 void initialize()
          initialize the layout manager.
 boolean isRestartable()
          Returns true if this layout manager is able to re-generate its Knuth elements after an IPD change.
 
Methods inherited from class org.apache.fop.layoutmgr.SpacedBorderedPaddedBlockLayoutManager
getBaselineOffset, notifyBorder, notifyPadding, notifySpace
 
Methods inherited from class org.apache.fop.layoutmgr.BlockStackingLayoutManager
addBlockSpacing, addChildToArea, addFirstVisibleMarks, addInBetweenBreak, addKnuthElementsForBorderPaddingAfter, addKnuthElementsForBorderPaddingBefore, addKnuthElementsForBreakAfter, addKnuthElementsForBreakBefore, addKnuthElementsForSpaceAfter, addKnuthElementsForSpaceBefore, addLastVisibleMarks, addPendingMarks, breakBeforeServed, discardSpace, getAuxiliaryPosition, getBreakBefore, getChangedKnuthElements, getCurrentArea, getIPIndents, getKeepTogether, getKeepWithNext, getKeepWithPrevious, getParentKeepTogether, getSpaceAfterProperty, getSpaceBeforeProperty, handleOverflow, makeChildLayoutContext, mustKeepTogether, mustKeepWithNext, mustKeepWithPrevious, neededUnits, negotiateBPDAdjustment, reset, setContentAreaIPD, setCurrentArea, updateContentAreaIPDwithOverconstrainedAdjust, updateContentAreaIPDwithOverconstrainedAdjust, wrapPositionElement, wrapPositionElements, wrapPositionElements
 
Methods inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager
addChildLM, addChildLMs, addId, checkEndOfLayout, createChildLMs, getChildLM, getChildLMs, getCurrentPage, getCurrentPV, getParent, getPSLM, handlingFloat, hasLineAreaDescendant, hasNextChildLM, isFinished, isFirst, isLast, newNoLineAreaDescendantException, notifyEndOfLayout, notifyPos, possiblyRegisterMarkersForTables, preserveChildrenAtEndOfLayout, recreateChildrenLMs, registerMarkers, setCurrentChildLM, setFinished, setParent, toString, transferExtensionAttachments, transferExtensions, transferForeignAttributes
 
Methods inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager
getAncestorBlockAreaBPD, getAncestorBlockAreaIPD, getBaseLength, getFObj, getGeneratesLineArea, getGeneratesReferenceArea, getParentAreaBPD, getParentAreaIPD, getReferenceAreaBPD, getReferenceAreaIPD, setGeneratesBlockArea, setGeneratesReferenceArea
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.fop.layoutmgr.BreakOpportunity
getBreakBefore
 
Methods inherited from interface org.apache.fop.layoutmgr.LayoutManager
addChildLM, addChildLMs, getChildLMs, getFObj, getGeneratesLineArea, getGeneratesReferenceArea, getParent, getPSLM, hasLineAreaDescendant, isFinished, notifyPos, setFinished, setParent
 
Methods inherited from interface org.apache.fop.datatypes.PercentBaseContext
getBaseLength
 

Field Detail

proxyLMiter

protected java.util.ListIterator<LayoutManager> proxyLMiter
Iterator over the child layout managers.

Constructor Detail

BlockLayoutManager

public BlockLayoutManager(Block inBlock)
Creates a new BlockLayoutManager.

Parameters:
inBlock - the block FO object to create the layout manager for.
Method Detail

initialize

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

Specified by:
initialize in interface LayoutManager
Overrides:
initialize in class AbstractLayoutManager

getCommonBorderPaddingBackground

protected CommonBorderPaddingBackground getCommonBorderPaddingBackground()
Description copied from class: SpacedBorderedPaddedBlockLayoutManager
Returns the CommonBorderPaddingBackground instance from the FO handled by this layout manager.

Specified by:
getCommonBorderPaddingBackground in class SpacedBorderedPaddedBlockLayoutManager

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
Overrides:
getNextKnuthElements in class BlockStackingLayoutManager
Parameters:
context - the LayoutContext used to store layout information
alignment - the desired text alignment
Returns:
the list of KnuthElements

getNextKnuthElements

public java.util.List getNextKnuthElements(LayoutContext context,
                                           int alignment,
                                           java.util.Stack lmStack,
                                           Position restartPosition,
                                           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
Overrides:
getNextKnuthElements in class BlockStackingLayoutManager
Parameters:
context - the layout context
alignment - the alignment
lmStack - the stack of LMs that are active at the IPD change
restartPosition - 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

getNextChildElements

protected java.util.List<ListElement> getNextChildElements(LayoutManager childLM,
                                                           LayoutContext context,
                                                           LayoutContext childLC,
                                                           int alignment,
                                                           java.util.Stack lmStack,
                                                           Position restartPosition,
                                                           LayoutManager restartAtLM)
Overridden to take into account that the childLM may be the block's LineLayoutManager. Gets the next set of child elements for the given childLM. The default implementation basically copies the pending marks to the child layout context, and subsequently calls the appropriate variant of childLM.getNextKnuthElements(), passing it all relevant parameters.

Overrides:
getNextChildElements in class BlockStackingLayoutManager
Parameters:
childLM - the current child LM
context - the layout context
childLC - the child layout context
alignment - the vertical alignment
lmStack - the stack of currently active LMs (if any)
restartPosition - the position to restart from (if any)
restartAtLM - the LM to restart from (if any)
Returns:
list of elements corresponding to the content generated by childLM

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
Overrides:
createNextChildLMs in class AbstractLayoutManager
Parameters:
pos - index up to which child LMs are requested
Returns:
true if requested index does exist

getKeepTogetherProperty

public KeepProperty getKeepTogetherProperty()
Returns the keep-together property specified on the FObj. Default implementation throws a IllegalStateException. Must be implemented by the subclass, if applicable.

Specified by:
getKeepTogetherProperty in interface BlockLevelLayoutManager
Overrides:
getKeepTogetherProperty in class BlockStackingLayoutManager
Returns:
the keep-together property

getKeepWithPreviousProperty

public KeepProperty getKeepWithPreviousProperty()
Returns the keep-with-previous property specified on the FObj. Default implementation throws a IllegalStateException. Must be implemented by the subclass, if applicable.

Specified by:
getKeepWithPreviousProperty in interface BlockLevelLayoutManager
Overrides:
getKeepWithPreviousProperty in class BlockStackingLayoutManager
Returns:
the keep-together property

getKeepWithNextProperty

public KeepProperty getKeepWithNextProperty()
Returns the keep-with-next property specified on the FObj. Default implementation throws a IllegalStateException. Must be implemented by the subclass, if applicable.

Specified by:
getKeepWithNextProperty in interface BlockLevelLayoutManager
Overrides:
getKeepWithNextProperty in class BlockStackingLayoutManager
Returns:
the keep-together property

addAreas

public void addAreas(PositionIterator parentIter,
                     LayoutContext layoutContext)
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
Overrides:
addAreas in class AbstractLayoutManager
Parameters:
parentIter - the position iterator
layoutContext - the context

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
Overrides:
getParentArea in class AbstractLayoutManager
Parameters:
childArea - area to get the parent area for
Returns:
the parent area

addChildArea

public void addChildArea(Area childArea)
Add the childArea to the current area. Called by child LayoutManager when it has filled one of its areas. The LM should already have an Area in which to put the child. See if the area will fit in the current area. If so, add it. Otherwise initiate breaking.

Specified by:
addChildArea in interface LayoutManager
Overrides:
addChildArea in class BlockStackingLayoutManager
Parameters:
childArea - the area to add: will be some block-stacked Area.

flush

protected void flush()
Force current area to be added to parent area. Force current area to be added to parent area.

Overrides:
flush in class BlockStackingLayoutManager

getBlockFO

protected Block getBlockFO()
convenience method that returns the Block node

Returns:
the block node

getContentAreaIPD

public int getContentAreaIPD()
Returns the IPD of the content area

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

getContentAreaBPD

public int getContentAreaBPD()
Returns the BPD of the content area

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

getGeneratesBlockArea

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

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

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
Overrides:
isRestartable in class AbstractBaseLayoutManager
Returns:
true if this layout manager can be restarted after an IPD change

fop 2.2

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