Package org.apache.fop.layoutmgr
Class AbstractLayoutManager
java.lang.Object
org.apache.fop.layoutmgr.AbstractBaseLayoutManager
org.apache.fop.layoutmgr.AbstractLayoutManager
- All Implemented Interfaces:
PercentBaseContext
,Constants
,LayoutManager
- Direct Known Subclasses:
AbstractPageSequenceLayoutManager
,BlockStackingLayoutManager
,InlineContainerLayoutManager
,InlineStackingLayoutManager
,LeafNodeLayoutManager
The base class for most LayoutManagers.
-
Field Summary
Modifier and TypeFieldDescriptionprotected ListIterator<LayoutManager>
child LM iterator during getNextKnuthElement phaseprotected List<LayoutManager>
List of child LayoutManagersprotected LayoutManager
child LM during getNextKnuthElement phaseprotected ListIterator
Iterator for child LayoutManagersprotected LayoutManager
Parent LayoutManager for this LayoutManagerFields 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
ConstructorDescriptionAbstract layout manager.Abstract layout manager. -
Method Summary
Modifier and TypeMethodDescriptionvoid
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
Add the LM in the argument to the list of child LMs; set this LM as the parent; initialize the LM.void
addChildLMs
(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 PageViewportprotected void
checkEndOfLayout
(Position pos) Checks to see if the incomingPosition
is the last one for this LM, and if so, callsnotifyEndOfLayout()
and cleans up.protected List<LayoutManager>
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 posint
Returns the position of the dominant-baseline of this FO's first descendant line-area.getChangedKnuthElements
(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
Return currently active child LayoutManager or null if all children have finished layout.getNextKnuthElements
(LayoutContext context, int alignment) Get a sequence of KnuthElements representing the content of the node assigned to the LM.Get the parent layout manager.getParentArea
(Area childArea) Return an Area which can contain the passed childArea.getPSLM()
Get the active PageSequenceLayoutManager instance for this layout process.boolean
boolean
Whether the FO handled by this layout manager has a descendant (including itself) that will generate a line-area.protected boolean
Return indication if getChildLM will return another LM.void
initialize the layout manager.boolean
Tell whether this LayoutManager has handled all of its content.boolean
Indicates whether the given Position is the first area-generating Position of this LM.boolean
Indicates whether the given Position is the last area-generating Position of this LM.protected IllegalStateException
protected void
Notifies thePageSequenceLayoutManager
that layout for this LM has ended.Adds a Position to the Position participating in the first|last determination by assigning it a unique position index.protected void
possiblyRegisterMarkersForTables
(Map<String, Marker> markers, boolean isStarting, boolean isFirst, boolean isLast) void
void
protected void
registerMarkers
(boolean isStarting, boolean isFirst, boolean isLast) Registers the FO's markers on the current PageViewport, and if applicable on the parent TableLM.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) Set currently active child layout manager.void
setFinished
(boolean fin) Set the flag indicating the LayoutManager has handled all of its content.void
Set the parent layout manager.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, getChangeBarList, getContentAreaBPD, getContentAreaIPD, getFObj, getGeneratesBlockArea, getGeneratesLineArea, getGeneratesReferenceArea, getNextKnuthElements, getParentAreaBPD, getParentAreaIPD, getReferenceAreaBPD, getReferenceAreaIPD, isRestartable, setGeneratesBlockArea, setGeneratesReferenceArea
-
Field Details
-
parentLayoutManager
Parent LayoutManager for this LayoutManager -
childLMs
List of child LayoutManagers -
fobjIter
Iterator for child LayoutManagers -
curChildLM
child LM during getNextKnuthElement phase -
childLMiter
child LM iterator during getNextKnuthElement phase
-
-
Constructor Details
-
AbstractLayoutManager
public AbstractLayoutManager()Abstract layout manager. -
AbstractLayoutManager
Abstract layout manager.- Parameters:
fo
- the formatting object for this layout manager
-
-
Method Details
-
setParent
Set the parent layout manager. The parent layout manager is required for adding areas.- Specified by:
setParent
in interfaceLayoutManager
- Parameters:
lm
- the parent layout manager
-
getParent
Get the parent layout manager.- Specified by:
getParent
in interfaceLayoutManager
- 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 interfaceLayoutManager
-
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
Set currently active child layout manager.- Parameters:
childLM
- the child layout manager
-
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 interfaceLayoutManager
- 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 interfaceLayoutManager
- Parameters:
fin
- the flag value to be set
-
addAreas
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 interfaceLayoutManager
- Parameters:
posIter
- the position iteratorcontext
- the context
-
getNextKnuthElements
Get a sequence of KnuthElements representing the content of the node assigned to the LM.- Specified by:
getNextKnuthElements
in interfaceLayoutManager
- Parameters:
context
- the LayoutContext used to store layout informationalignment
- the desired text alignment- Returns:
- the list of KnuthElements
-
getChangedKnuthElements
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 interfaceLayoutManager
- Parameters:
oldList
- the elements to replacealignment
- the desired text alignment- Returns:
- the updated list of KnuthElements
-
getParentArea
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 interfaceLayoutManager
- Parameters:
childArea
- the child area for which the parent area is wanted- Returns:
- the parent area for the given child
-
addChildArea
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 interfaceLayoutManager
- Parameters:
childArea
- the child area to be added
-
createChildLMs
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
Get the active PageSequenceLayoutManager instance for this layout process.- Specified by:
getPSLM
in interfaceLayoutManager
- Returns:
- the PageSequenceLayoutManager
-
getCurrentPage
- Returns:
- the
Page
instance corresponding to the current page - See Also:
-
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 interfaceLayoutManager
- Parameters:
pos
- index up to which child LMs are requested- Returns:
- true if requested index does exist
-
getChildLMs
- Specified by:
getChildLMs
in interfaceLayoutManager
- Returns:
- the list of child LMs
-
addChildLM
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 interfaceLayoutManager
- Parameters:
lm
- the LM to be added
-
addChildLMs
Add the LMs in the argument to the list of child LMs;- Specified by:
addChildLMs
in interfaceLayoutManager
- Parameters:
newLMs
- the list of LMs to be added
-
notifyPos
Adds a Position to the Position participating in the first|last determination by assigning it a unique position index.- Specified by:
notifyPos
in interfaceLayoutManager
- Parameters:
pos
- the Position- Returns:
- the same Position but with a position index
-
isFirst
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
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
-
hasLineAreaDescendant
public boolean hasLineAreaDescendant()Description copied from interface:LayoutManager
Whether the FO handled by this layout manager has a descendant (including itself) that will generate a line-area.- Specified by:
hasLineAreaDescendant
in interfaceLayoutManager
- Returns:
true
if a descendant line-area will be generated,false
otherwise
-
getBaselineOffset
public int getBaselineOffset()Description copied from interface:LayoutManager
Returns the position of the dominant-baseline of this FO's first descendant line-area.The behavior of this method is undefined if this FO has no descendant line-area, and an exception may be thrown. See
LayoutManager.hasLineAreaDescendant()
- Specified by:
getBaselineOffset
in interfaceLayoutManager
- Returns:
- this FO's space-before plus the distance from the before-edge of its allocation-rectangle to the dominant-baseline of the first line-area descendant
- See Also:
-
newNoLineAreaDescendantException
-
transferForeignAttributes
Transfers foreign attributes from the formatting object to the area.- Parameters:
targetArea
- the area to set the attributes on
-
transferExtensionAttachments
Transfers extension attachments from the formatting object to the area.- Parameters:
targetArea
- the area to set the extensions on
-
transferExtensions
Transfers extensions (foreign attributes and extension attachments) from the formatting object to the area.- Parameters:
targetArea
- the area to set the extensions on
-
registerMarkers
protected void registerMarkers(boolean isStarting, boolean isFirst, boolean isLast) Registers the FO's markers on the current PageViewport, and if applicable on the parent TableLM.- 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 thePageSequenceLayoutManager
that layout for this LM has ended. -
checkEndOfLayout
Checks to see if the incomingPosition
is the last one for this LM, and if so, callsnotifyEndOfLayout()
and cleans up.- Parameters:
pos
- thePosition
to check
-
preserveChildrenAtEndOfLayout
public void preserveChildrenAtEndOfLayout()- Overrides:
preserveChildrenAtEndOfLayout
in classAbstractBaseLayoutManager
-
toString
-
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 interfaceLayoutManager
- Overrides:
reset
in classAbstractBaseLayoutManager
-
recreateChildrenLMs
public void recreateChildrenLMs()- Overrides:
recreateChildrenLMs
in classAbstractBaseLayoutManager
-
possiblyRegisterMarkersForTables
-
handlingFloat
public boolean handlingFloat()
-