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
FieldsModifier and TypeFieldDescriptionprotected ListIterator<LayoutManager> child LM iterator during getNextKnuthElement phaseprotected List<LayoutManager> List of child LayoutManagersprotected LayoutManagerchild LM during getNextKnuthElement phaseprotected ListIteratorIterator for child LayoutManagersprotected LayoutManagerParent LayoutManager for this LayoutManagerFields inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager
fobj, generatesBlockArea, generatesReferenceAreaFields 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
ConstructorsConstructorDescriptionAbstract layout manager.Abstract layout manager. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAreas(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.voidaddChildArea(Area childArea) Add a child area to the current area.voidAdd the LM in the argument to the list of child LMs; set this LM as the parent; initialize the LM.voidaddChildLMs(List newLMs) Add the LMs in the argument to the list of child LMs;protected voidaddId()Registers the FO's id on the current PageViewportprotected voidcheckEndOfLayout(Position pos) Checks to see if the incomingPositionis 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.booleancreateNextChildLMs(int pos) Create more child LMs of the parent, up to child LM index posintReturns the position of the dominant-baseline of this FO's first descendant line-area.getChangedKnuthElements(List<ListElement> 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 LayoutManagerReturn 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.booleanbooleanWhether the FO handled by this layout manager has a descendant (including itself) that will generate a line-area.protected booleanReturn indication if getChildLM will return another LM.voidinitialize the layout manager.booleanTell whether this LayoutManager has handled all of its content.booleanIndicates whether the given Position is the first area-generating Position of this LM.booleanIndicates whether the given Position is the last area-generating Position of this LM.protected IllegalStateExceptionprotected voidNotifies thePageSequenceLayoutManagerthat 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 voidpossiblyRegisterMarkersForTables(Map<String, Marker> markers, boolean isStarting, boolean isFirst, boolean isLast) voidvoidprotected voidregisterMarkers(boolean isStarting, boolean isFirst, boolean isLast) Registers the FO's markers on the current PageViewport, and if applicable on the parent TableLM.voidreset()Re-initializes this layout manager in order to re-generate its Knuth elements according to a new IPD value.protected voidsetCurrentChildLM(LayoutManager childLM) Set currently active child layout manager.voidsetFinished(boolean fin) Set the flag indicating the LayoutManager has handled all of its content.voidSet the parent layout manager.toString()protected voidtransferExtensionAttachments(AreaTreeObject targetArea) Transfers extension attachments from the formatting object to the area.protected voidtransferExtensions(AreaTreeObject targetArea) Transfers extensions (foreign attributes and extension attachments) from the formatting object to the area.protected voidtransferForeignAttributes(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, isFromFootnote, isRestartable, setFromFootnote, 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:
setParentin interfaceLayoutManager- Parameters:
lm- the parent layout manager
-
getParent
Get the parent layout manager.- Specified by:
getParentin 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:
initializein 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:
isFinishedin 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:
setFinishedin 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:
addAreasin 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:
getNextKnuthElementsin 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:
getChangedKnuthElementsin 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:
getParentAreain 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:
addChildAreain 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:
getPSLMin interfaceLayoutManager- Returns:
- the PageSequenceLayoutManager
-
getCurrentPage
- Returns:
- the
Pageinstance 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:
createNextChildLMsin interfaceLayoutManager- Parameters:
pos- index up to which child LMs are requested- Returns:
- true if requested index does exist
-
getChildLMs
- Specified by:
getChildLMsin 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:
addChildLMin interfaceLayoutManager- Parameters:
lm- the LM to be added
-
addChildLMs
Add the LMs in the argument to the list of child LMs;- Specified by:
addChildLMsin 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:
notifyPosin 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:LayoutManagerWhether the FO handled by this layout manager has a descendant (including itself) that will generate a line-area.- Specified by:
hasLineAreaDescendantin interfaceLayoutManager- Returns:
trueif a descendant line-area will be generated,falseotherwise
-
getBaselineOffset
public int getBaselineOffset()Description copied from interface:LayoutManagerReturns 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:
getBaselineOffsetin 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 thePageSequenceLayoutManagerthat layout for this LM has ended. -
checkEndOfLayout
Checks to see if the incomingPositionis the last one for this LM, and if so, callsnotifyEndOfLayout()and cleans up.- Parameters:
pos- thePositionto check
-
preserveChildrenAtEndOfLayout
public void preserveChildrenAtEndOfLayout()- Overrides:
preserveChildrenAtEndOfLayoutin 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:
resetin interfaceLayoutManager- Overrides:
resetin classAbstractBaseLayoutManager
-
recreateChildrenLMs
public void recreateChildrenLMs()- Overrides:
recreateChildrenLMsin classAbstractBaseLayoutManager
-
possiblyRegisterMarkersForTables
-
handlingFloat
public boolean handlingFloat()
-