org.apache.fop.layoutmgr

Class BlockStackingLayoutManager

Implemented Interfaces:
BlockLevelLayoutManager, Constants, LayoutManager, PercentBaseContext
Known Direct Subclasses:
BlockContainerLayoutManager, BlockLayoutManager, FlowLayoutManager, FootnoteBodyLayoutManager, ListBlockLayoutManager, ListItemContentLayoutManager, ListItemLayoutManager, StaticContentLayoutManager, TableAndCaptionLayoutManager, TableCaptionLayoutManager, TableCellLayoutManager, TableLayoutManager

public abstract class BlockStackingLayoutManager
extends AbstractLayoutManager
implements BlockLevelLayoutManager

Base LayoutManager class for all areas which stack their child areas in the block-progression direction, such as Flow, Block, ListBlock.

Nested Class Summary

protected static class
BlockStackingLayoutManager.MappingPosition
protected static class
BlockStackingLayoutManager.StackingIter

Field Summary

protected int
adjustedSpaceAfter
space-after value adjusted for block-progression-unit handling
protected int
adjustedSpaceBefore
space-before value adjusted for block-progression-unit handling
protected int
bpUnit
Value of the block-progression-unit (non-standard property)
protected boolean
breakBeforeServed
Indicates whether break before has been served or not
protected int
endIndent
the effective end-indent value
protected boolean
firstVisibleMarkServed
Indicates whether the first visible mark has been returned by this LM, yet
protected MinOptMax
foSpaceAfter
see foSpaceBefore
protected MinOptMax
foSpaceBefore
Holds the (one-time use) fo:block space-before and -after properties.
protected BlockParent
parentArea
Reference to FO whose areas it's managing or to the traits of the FO.
protected int
referenceIPD
Reference IPD available
protected int
startIndent
the effective start-indent value
protected LinkedList
storedList
Only used to store the original list when createUnitElements is called

Fields inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager

childLMiter, childLMs, curChildLM, fobjIter, parentLM

Fields inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager

fobj, generatesBlockArea, generatesReferenceArea

Fields inherited from interface org.apache.fop.layoutmgr.BlockLevelLayoutManager

LINE_HEIGHT_ADJUSTMENT, LINE_NUMBER_ADJUSTMENT, NO_ADJUSTMENT, SPACE_AFTER_ADJUSTMENT, SPACE_BEFORE_ADJUSTMENT

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, ENUM_COUNT, 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_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_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_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LOWERCASE, EN_LR_TB, EN_LSWP, EN_LTR, EN_MATHEMATICAL, EN_MAX_HEIGHT, EN_MENU, EN_MESSAGE_BOX, EN_MIDDLE, EN_NARROWER, EN_NONE, EN_NON_UNIFORM, EN_NOREPEAT, EN_NORMAL, EN_NOT_BLANK, EN_NO_BLINK, EN_NO_CHANGE, EN_NO_FORCE, EN_NO_LIMIT, EN_NO_LINE_THROUGH, EN_NO_OVERLINE, EN_NO_UNDERLINE, EN_NO_WRAP, 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_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_SMALLER, EN_SMALL_CAPS, EN_SMALL_CAPTION, EN_SOLID, EN_SPACE, EN_START, EN_STATIC, EN_STATUS_BAR, EN_SUB, EN_SUPER, EN_SUPPRESS, 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_USECONTENT, EN_USE_FONT_METRICS, EN_USE_SCRIPT, EN_VISIBLE, EN_WIDER, EN_WRAP, EN_X_DISTRIBUTE, EN_X_FILL, FO_BASIC_LINK, FO_BIDI_OVERRIDE, FO_BLOCK, FO_BLOCK_CONTAINER, FO_BOOKMARK, FO_BOOKMARK_TITLE, FO_BOOKMARK_TREE, FO_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FOOTNOTE, FO_FOOTNOTE_BODY, 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_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_ROOT, 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, PROPERTY_COUNT, PROPERTY_MASK, 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_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_ENDS_ROW, PR_END_INDENT, PR_EXTENT, PR_EXTERNAL_DESTINATION, PR_FLOAT, PR_FLOW_NAME, 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_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_LINEFEED_TREATMENT, PR_LINE_HEIGHT, PR_LINE_HEIGHT_SHIFT_ADJUSTMENT, PR_LINE_STACKING_STRATEGY, 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_MAXIMUM_REPEATS, PR_MAX_HEIGHT, PR_MAX_WIDTH, PR_MEDIA_USAGE, 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_HEIGHT, 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_REFERENCE_ORIENTATION, PR_REF_ID, PR_REGION_NAME, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, 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_STARTING_STATE, PR_STARTS_ROW, PR_START_INDENT, 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_XML_LANG, PR_X_BLOCK_PROGRESSION_UNIT, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_Z_INDEX

Constructor Summary

BlockStackingLayoutManager(FObj node)

Method Summary

void
addBlockSpacing(double adjust, MinOptMax minoptmax)
Add a block spacer for space before and space after a block.
void
addChildArea(Area childArea)
Add the childArea to the current area.
protected void
addChildToArea(Area childArea, BlockParent parentArea)
Add the childArea to the passed area.
protected void
addKnuthElementsForBorderPaddingAfter(LinkedList returnList, boolean isLast)
Creates Knuth elements for after border padding and adds them to the return list.
protected void
addKnuthElementsForBorderPaddingBefore(LinkedList returnList, boolean isFirst)
Creates Knuth elements for before border padding and adds them to the return list.
protected boolean
addKnuthElementsForBreakAfter(LinkedList returnList, LayoutContext context)
Creates Knuth elements for break-after and adds them to the return list.
protected boolean
addKnuthElementsForBreakBefore(LinkedList returnList, LayoutContext context)
Creates Knuth elements for break-before and adds them to the return list.
protected void
addKnuthElementsForSpaceAfter(LinkedList returnList, int alignment)
Creates Knuth elements for space-after and adds them to the return list.
protected void
addKnuthElementsForSpaceBefore(LinkedList returnList, int alignment)
Creates Knuth elements for space-before and adds them to the return list.
protected void
addPendingMarks(LayoutContext context)
Adds the unresolved elements for border and padding to a layout context so break possibilities can be properly constructed.
protected LinkedList
createUnitElements(LinkedList oldList)
void
discardSpace(KnuthGlue spaceGlue)
protected void
flush()
Force current area to be added to parent area.
protected Position
getAuxiliaryPosition()
LinkedList
getChangedKnuthElements(List oldList, int alignment)
int
getContentAreaBPD()
Returns the BPD of the content area
int
getContentAreaIPD()
Returns the IPD of the content area
protected BlockParent
getCurrentArea()
protected int
getIPIndents()
LinkedList
getNextKnuthElements(LayoutContext context, int alignment)
boolean
mustKeepTogether()
boolean
mustKeepWithNext()
boolean
mustKeepWithPrevious()
protected int
neededUnits(int len)
int
negotiateBPDAdjustment(int adj, KnuthElement lastElement)
protected void
setContentAreaIPD(int contentAreaIPD)
Sets the IPD of the content area
protected void
setCurrentArea(BlockParent parentArea)
Set the current area being filled.
protected int
updateContentAreaIPDwithOverconstrainedAdjust()
Determines and sets the content area IPD based on available reference area IPD, start- and end-indent properties.
protected int
updateContentAreaIPDwithOverconstrainedAdjust(int contentIPD)
Sets the content area IPD by directly supplying the value.
protected void
wrapPositionElement(ListElement el, List targetList, boolean force)
"wrap" the Position inside the given element and add it to the target list.
protected void
wrapPositionElements(List sourceList, List targetList)
"wrap" the Position inside each element moving the elements from SourceList to targetList
protected void
wrapPositionElements(List sourceList, List targetList, boolean force)
"wrap" the Position inside each element moving the elements from SourceList to targetList

Methods inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager

addAreas, addChildArea, addChildLM, addChildLMs, addMarkersToPage, createChildLMs, createNextChildLMs, getChangedKnuthElements, getChildLM, getChildLMs, getCurrentPV, getCurrentPage, getNextKnuthElements, getPSLM, getParent, getParentArea, hasNextChildLM, initialize, isFinished, isFirst, isLast, notifyPos, setFinished, setParent, toString, transferForeignAttributes

Methods inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager

getAncestorBlockAreaBPD, getAncestorBlockAreaIPD, getBaseLength, getContentAreaBPD, getContentAreaIPD, getFObj, getGeneratesBlockArea, getGeneratesLineArea, getGeneratesReferenceArea, getParentAreaBPD, getParentAreaIPD, getReferenceAreaBPD, getReferenceAreaIPD, setGeneratesBlockArea, setGeneratesReferenceArea

Field Details

adjustedSpaceAfter

protected int adjustedSpaceAfter
space-after value adjusted for block-progression-unit handling

adjustedSpaceBefore

protected int adjustedSpaceBefore
space-before value adjusted for block-progression-unit handling

bpUnit

protected int bpUnit
Value of the block-progression-unit (non-standard property)

breakBeforeServed

protected boolean breakBeforeServed
Indicates whether break before has been served or not

endIndent

protected int endIndent
the effective end-indent value

firstVisibleMarkServed

protected boolean firstVisibleMarkServed
Indicates whether the first visible mark has been returned by this LM, yet

foSpaceAfter

protected MinOptMax foSpaceAfter
see foSpaceBefore

foSpaceBefore

protected MinOptMax foSpaceBefore
Holds the (one-time use) fo:block space-before and -after properties. Large fo:blocks are split into multiple Area. Blocks to accomodate the subsequent regions (pages) they are placed on. space-before is applied at the beginning of the first Block and space-after at the end of the last Block used in rendering the fo:block.

parentArea

protected BlockParent parentArea
Reference to FO whose areas it's managing or to the traits of the FO.

referenceIPD

protected int referenceIPD
Reference IPD available

startIndent

protected int startIndent
the effective start-indent value

storedList

protected LinkedList storedList
Only used to store the original list when createUnitElements is called

Constructor Details

BlockStackingLayoutManager

public BlockStackingLayoutManager(FObj node)
Parameters:
node - the fo this LM deals with

Method Details

addBlockSpacing

public void addBlockSpacing(double adjust,
                            MinOptMax minoptmax)
Add a block spacer for space before and space after a block. This adds an empty Block area that acts as a block space.
Parameters:
adjust - the adjustment value
minoptmax - the min/opt/max value of the spacing

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 interface AbstractLayoutManager
Parameters:
childArea - the area to add: will be some block-stacked Area.

addChildToArea

protected void addChildToArea(Area childArea,
                              BlockParent parentArea)
Add the childArea to the passed 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.
Parameters:
childArea - the area to add: will be some block-stacked Area.
parentArea - the area in which to add the childArea

addKnuthElementsForBorderPaddingAfter

protected void addKnuthElementsForBorderPaddingAfter(LinkedList returnList,
                                                     boolean isLast)
Creates Knuth elements for after border padding and adds them to the return list.
Parameters:
returnList - return list to add the additional elements to
isLast - true if this is the last time a layout manager instance needs to generate border and padding

addKnuthElementsForBorderPaddingBefore

protected void addKnuthElementsForBorderPaddingBefore(LinkedList returnList,
                                                      boolean isFirst)
Creates Knuth elements for before border padding and adds them to the return list.
Parameters:
returnList - return list to add the additional elements to
isFirst - true if this is the first time a layout manager instance needs to generate border and padding

addKnuthElementsForBreakAfter

protected boolean addKnuthElementsForBreakAfter(LinkedList returnList,
                                                LayoutContext context)
Creates Knuth elements for break-after and adds them to the return list.
Parameters:
returnList - return list to add the additional elements to
context - the layout context
Returns:
true if an element has been added due to a break-after.

addKnuthElementsForBreakBefore

protected boolean addKnuthElementsForBreakBefore(LinkedList returnList,
                                                 LayoutContext context)
Creates Knuth elements for break-before and adds them to the return list.
Parameters:
returnList - return list to add the additional elements to
context - the layout context
Returns:
true if an element has been added due to a break-before.

addKnuthElementsForSpaceAfter

protected void addKnuthElementsForSpaceAfter(LinkedList returnList,
                                             int alignment)
Creates Knuth elements for space-after and adds them to the return list.
Parameters:
returnList - return list to add the additional elements to
alignment - vertical alignment

addKnuthElementsForSpaceBefore

protected void addKnuthElementsForSpaceBefore(LinkedList returnList,
                                              int alignment)
Creates Knuth elements for space-before and adds them to the return list.
Parameters:
returnList - return list to add the additional elements to
alignment - vertical alignment

addPendingMarks

protected void addPendingMarks(LayoutContext context)
Adds the unresolved elements for border and padding to a layout context so break possibilities can be properly constructed.
Parameters:
context - the layout context

createUnitElements

protected LinkedList createUnitElements(LinkedList oldList)

discardSpace

public void discardSpace(KnuthGlue spaceGlue)
Specified by:
discardSpace in interface BlockLevelLayoutManager

flush

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

getAuxiliaryPosition

protected Position getAuxiliaryPosition()
Returns:
a cached auxiliary Position instance used for things like spaces.

getChangedKnuthElements

public LinkedList getChangedKnuthElements(List oldList,
                                          int alignment)
Specified by:
getChangedKnuthElements in interface LayoutManager
Overrides:
getChangedKnuthElements in interface AbstractLayoutManager

getContentAreaBPD

public int getContentAreaBPD()
Returns the BPD of the content area
Specified by:
getContentAreaBPD in interface LayoutManager
Overrides:
getContentAreaBPD in interface AbstractBaseLayoutManager
Returns:
the BPD of the content area

getContentAreaIPD

public int getContentAreaIPD()
Returns the IPD of the content area
Specified by:
getContentAreaIPD in interface LayoutManager
Overrides:
getContentAreaIPD in interface AbstractBaseLayoutManager
Returns:
the IPD of the content area

getCurrentArea

protected BlockParent getCurrentArea()
Returns:
current area being filled

getIPIndents

protected int getIPIndents()
Returns:
the sum of start-indent and end-indent

getNextKnuthElements

public LinkedList getNextKnuthElements(LayoutContext context,
                                       int alignment)
Specified by:
getNextKnuthElements in interface LayoutManager
Overrides:
getNextKnuthElements in interface AbstractLayoutManager

mustKeepTogether

public boolean mustKeepTogether()
Specified by:
mustKeepTogether in interface BlockLevelLayoutManager

mustKeepWithNext

public boolean mustKeepWithNext()
Specified by:
mustKeepWithNext in interface BlockLevelLayoutManager

mustKeepWithPrevious

public boolean mustKeepWithPrevious()
Specified by:
mustKeepWithPrevious in interface BlockLevelLayoutManager

neededUnits

protected int neededUnits(int len)
Parameters:
len - length in millipoints to span with bp units
Returns:
the minimum integer n such that n * bpUnit >= len

negotiateBPDAdjustment

public int negotiateBPDAdjustment(int adj,
                                  KnuthElement lastElement)
Specified by:
negotiateBPDAdjustment in interface BlockLevelLayoutManager

setContentAreaIPD

protected void setContentAreaIPD(int contentAreaIPD)
Sets the IPD of the content area
Parameters:
contentAreaIPD - the IPD of the content area

setCurrentArea

protected void setCurrentArea(BlockParent parentArea)
Set the current area being filled.
Parameters:
parentArea - the current area to be filled

updateContentAreaIPDwithOverconstrainedAdjust

protected int updateContentAreaIPDwithOverconstrainedAdjust()
Determines and sets the content area IPD based on available reference area IPD, start- and end-indent properties. end-indent is adjusted based on overconstrained geometry rules, if necessary.
Returns:
the resulting content area IPD

updateContentAreaIPDwithOverconstrainedAdjust

protected int updateContentAreaIPDwithOverconstrainedAdjust(int contentIPD)
Sets the content area IPD by directly supplying the value. end-indent is adjusted based on overconstrained geometry rules, if necessary.
Returns:
the resulting content area IPD

wrapPositionElement

protected void wrapPositionElement(ListElement el,
                                   List targetList,
                                   boolean force)
"wrap" the Position inside the given element and add it to the target list.
Parameters:
el - the list element
targetList - target list receiving the wrapped position elements
force - if true, every Position is wrapped regardless of its LM of origin

wrapPositionElements

protected void wrapPositionElements(List sourceList,
                                    List targetList)
"wrap" the Position inside each element moving the elements from SourceList to targetList
Parameters:
sourceList - source list
targetList - target list receiving the wrapped position elements

wrapPositionElements

protected void wrapPositionElements(List sourceList,
                                    List targetList,
                                    boolean force)
"wrap" the Position inside each element moving the elements from SourceList to targetList
Parameters:
sourceList - source list
targetList - target list receiving the wrapped position elements
force - if true, every Position is wrapped regardless of its LM of origin

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