org.apache.fop.layoutmgr
Class BlockStackingLayoutManager
java.lang.Object
org.apache.fop.layoutmgr.AbstractBaseLayoutManager
org.apache.fop.layoutmgr.AbstractLayoutManager
org.apache.fop.layoutmgr.BlockStackingLayoutManager
- All Implemented Interfaces:
- PercentBaseContext, Constants, BlockLevelLayoutManager, LayoutManager
- Direct Known 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.
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 java.util.LinkedList |
storedList
Only used to store the original list when createUnitElements is called |
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_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_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_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_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_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_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, 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_END_INDENT, PR_ENDS_ROW, 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_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_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_REF_ID, PR_REFERENCE_ORIENTATION, 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_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_BLOCK_PROGRESSION_UNIT, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK |
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(java.util.LinkedList returnList,
boolean isLast)
Creates Knuth elements for after border padding and adds them to the return list. |
protected void |
addKnuthElementsForBorderPaddingBefore(java.util.LinkedList returnList,
boolean isFirst)
Creates Knuth elements for before border padding and adds them to the return list. |
protected boolean |
addKnuthElementsForBreakAfter(java.util.LinkedList returnList,
LayoutContext context)
Creates Knuth elements for break-after and adds them to the return list. |
protected boolean |
addKnuthElementsForBreakBefore(java.util.LinkedList returnList,
LayoutContext context)
Creates Knuth elements for break-before and adds them to the return list. |
protected void |
addKnuthElementsForSpaceAfter(java.util.LinkedList returnList,
int alignment)
Creates Knuth elements for space-after and adds them to the return list. |
protected void |
addKnuthElementsForSpaceBefore(java.util.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 java.util.LinkedList |
createUnitElements(java.util.LinkedList oldList)
|
void |
discardSpace(KnuthGlue spaceGlue)
|
protected void |
flush()
Force current area to be added to parent area. |
protected Position |
getAuxiliaryPosition()
|
java.util.LinkedList |
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 possibile hyphenation points. |
int |
getContentAreaBPD()
Returns the BPD of the content area |
int |
getContentAreaIPD()
Returns the IPD of the content area |
protected BlockParent |
getCurrentArea()
|
protected int |
getIPIndents()
|
java.util.LinkedList |
getNextKnuthElements(LayoutContext context,
int alignment)
Get a sequence of KnuthElements representing the content
of the node assigned to the LM |
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,
java.util.List targetList,
boolean force)
"wrap" the Position inside the given element and add it to the target list. |
protected void |
wrapPositionElements(java.util.List sourceList,
java.util.List targetList)
"wrap" the Position inside each element moving the elements from
SourceList to targetList |
protected void |
wrapPositionElements(java.util.List sourceList,
java.util.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, addChildLM, addChildLMs, addMarkersToPage, createChildLMs, createNextChildLMs, getChildLM, getChildLMs, getCurrentPage, getCurrentPV, getParent, getParentArea, getPSLM, hasNextChildLM, initialize, isFinished, isFirst, isLast, notifyPos, setFinished, setParent, toString, transferForeignAttributes |
Methods inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager |
getAncestorBlockAreaBPD, getAncestorBlockAreaIPD, getBaseLength, getFObj, getGeneratesBlockArea, 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.LayoutManager |
addAreas, addChildLM, addChildLMs, createNextChildLMs, getChildLMs, getFObj, getGeneratesBlockArea, getGeneratesLineArea, getGeneratesReferenceArea, getParent, getParentArea, getPSLM, initialize, isFinished, notifyPos, setFinished, setParent |
parentArea
protected BlockParent parentArea
- Reference to FO whose areas it's managing or to the traits
of the FO.
bpUnit
protected int bpUnit
- Value of the block-progression-unit (non-standard property)
adjustedSpaceBefore
protected int adjustedSpaceBefore
- space-before value adjusted for block-progression-unit handling
adjustedSpaceAfter
protected int adjustedSpaceAfter
- space-after value adjusted for block-progression-unit handling
storedList
protected java.util.LinkedList storedList
- Only used to store the original list when createUnitElements is called
breakBeforeServed
protected boolean breakBeforeServed
- Indicates whether break before has been served or not
firstVisibleMarkServed
protected boolean firstVisibleMarkServed
- Indicates whether the first visible mark has been returned by this LM, yet
referenceIPD
protected int referenceIPD
- Reference IPD available
startIndent
protected int startIndent
- the effective start-indent value
endIndent
protected int endIndent
- the effective end-indent value
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.
foSpaceAfter
protected MinOptMax foSpaceAfter
- see foSpaceBefore
BlockStackingLayoutManager
public BlockStackingLayoutManager(FObj node)
- Parameters:
node
- the fo this LM deals with
getCurrentArea
protected BlockParent getCurrentArea()
- Returns:
- current area being filled
setCurrentArea
protected void setCurrentArea(BlockParent parentArea)
- Set the current area being filled.
- Parameters:
parentArea
- the current area to be filled
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 valueminoptmax
- the min/opt/max value of the spacing
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
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 AbstractLayoutManager
- 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.
getAuxiliaryPosition
protected Position getAuxiliaryPosition()
- Returns:
- a cached auxiliary Position instance used for things like spaces.
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
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
getNextKnuthElements
public java.util.LinkedList 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 AbstractLayoutManager
- Parameters:
context
- the LayoutContext used to store layout informationalignment
- the desired text alignement
- Returns:
- the list of KnuthElements
negotiateBPDAdjustment
public int negotiateBPDAdjustment(int adj,
KnuthElement lastElement)
-
- Specified by:
negotiateBPDAdjustment
in interface BlockLevelLayoutManager
discardSpace
public void discardSpace(KnuthGlue spaceGlue)
-
- Specified by:
discardSpace
in interface BlockLevelLayoutManager
getChangedKnuthElements
public java.util.LinkedList 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 possibile 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
- Overrides:
getChangedKnuthElements
in class AbstractLayoutManager
- Parameters:
oldList
- the elements to replacealignment
- the desired text alignment
- Returns:
- the updated list of KnuthElements
mustKeepTogether
public boolean mustKeepTogether()
-
- Specified by:
mustKeepTogether
in interface BlockLevelLayoutManager
- Returns:
- true if this element must be kept together
mustKeepWithPrevious
public boolean mustKeepWithPrevious()
-
- Specified by:
mustKeepWithPrevious
in interface BlockLevelLayoutManager
- Returns:
- true if this element must be kept with the previous element.
mustKeepWithNext
public boolean mustKeepWithNext()
-
- Specified by:
mustKeepWithNext
in interface BlockLevelLayoutManager
- Returns:
- true if this element must be kept with the next element.
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
addKnuthElementsForBorderPaddingBefore
protected void addKnuthElementsForBorderPaddingBefore(java.util.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 toisFirst
- true if this is the first time a layout manager instance needs to generate
border and padding
addKnuthElementsForBorderPaddingAfter
protected void addKnuthElementsForBorderPaddingAfter(java.util.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 toisLast
- true if this is the last time a layout manager instance needs to generate
border and padding
addKnuthElementsForBreakBefore
protected boolean addKnuthElementsForBreakBefore(java.util.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 tocontext
- the layout context
- Returns:
- true if an element has been added due to a break-before.
addKnuthElementsForBreakAfter
protected boolean addKnuthElementsForBreakAfter(java.util.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 tocontext
- the layout context
- Returns:
- true if an element has been added due to a break-after.
addKnuthElementsForSpaceBefore
protected void addKnuthElementsForSpaceBefore(java.util.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 toalignment
- vertical alignment
addKnuthElementsForSpaceAfter
protected void addKnuthElementsForSpaceAfter(java.util.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 toalignment
- vertical alignment
createUnitElements
protected java.util.LinkedList createUnitElements(java.util.LinkedList oldList)
wrapPositionElements
protected void wrapPositionElements(java.util.List sourceList,
java.util.List targetList)
- "wrap" the Position inside each element moving the elements from
SourceList to targetList
- Parameters:
sourceList
- source listtargetList
- target list receiving the wrapped position elements
wrapPositionElements
protected void wrapPositionElements(java.util.List sourceList,
java.util.List targetList,
boolean force)
- "wrap" the Position inside each element moving the elements from
SourceList to targetList
- Parameters:
sourceList
- source listtargetList
- target list receiving the wrapped position elementsforce
- if true, every Position is wrapped regardless of its LM of origin
wrapPositionElement
protected void wrapPositionElement(ListElement el,
java.util.List targetList,
boolean force)
- "wrap" the Position inside the given element and add it to the target list.
- Parameters:
el
- the list elementtargetList
- target list receiving the wrapped position elementsforce
- if true, every Position is wrapped regardless of its LM of origin
getIPIndents
protected int getIPIndents()
- Returns:
- the sum of start-indent and end-indent
getContentAreaIPD
public int getContentAreaIPD()
- Returns the IPD of the content area
- Specified by:
getContentAreaIPD
in interface LayoutManager
- Overrides:
getContentAreaIPD
in class AbstractBaseLayoutManager
- Returns:
- the IPD of the content area
setContentAreaIPD
protected void setContentAreaIPD(int contentAreaIPD)
- Sets the IPD of the content area
- Parameters:
contentAreaIPD
- 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 AbstractBaseLayoutManager
- Returns:
- the BPD of the content area
Copyright 1999-2008 The Apache Software Foundation. All Rights Reserved.