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
public abstract class AbstractLayoutManager
- extends AbstractBaseLayoutManager
- implements Constants
The base class for most LayoutManagers.
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 |
Method Summary |
void |
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 |
addChildLM(LayoutManager lm)
Add the LM in the argument to the list of child LMs;
set this LM as the parent;
initialize the LM. |
void |
addChildLMs(java.util.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 PageViewport |
protected void |
checkEndOfLayout(Position pos)
Checks to see if the incoming Position
is the last one for this LM, and if so, calls
notifyEndOfLayout() and cleans up. |
protected java.util.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 pos |
int |
getBaselineOffset()
Returns the position of the dominant-baseline of this FO's first descendant
line-area. |
java.util.List |
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 possible hyphenation points. |
protected LayoutManager |
getChildLM()
Return currently active child LayoutManager or null if
all children have finished layout. |
java.util.List<LayoutManager> |
getChildLMs()
|
Page |
getCurrentPage()
|
PageViewport |
getCurrentPV()
|
java.util.List |
getNextKnuthElements(LayoutContext context,
int alignment)
Get a sequence of KnuthElements representing the content
of the node assigned to the LM. |
LayoutManager |
getParent()
Get the parent layout manager. |
Area |
getParentArea(Area childArea)
Return an Area which can contain the passed childArea. |
PageSequenceLayoutManager |
getPSLM()
Get the active PageSequenceLayoutManager instance for this
layout process. |
boolean |
handlingFloat()
|
boolean |
hasLineAreaDescendant()
Whether the FO handled by this layout manager has a descendant (including itself)
that will generate a line-area. |
protected boolean |
hasNextChildLM()
Return indication if getChildLM will return another LM. |
void |
initialize()
initialize the layout manager. |
boolean |
isFinished()
Tell whether this LayoutManager has handled all of its content. |
boolean |
isFirst(Position pos)
Indicates whether the given Position is the first area-generating Position of this LM. |
boolean |
isLast(Position pos)
Indicates whether the given Position is the last area-generating Position of this LM. |
protected java.lang.IllegalStateException |
newNoLineAreaDescendantException()
|
protected void |
notifyEndOfLayout()
Notifies the PageSequenceLayoutManager that layout
for this LM has ended. |
Position |
notifyPos(Position pos)
Adds a Position to the Position participating in the first|last determination by assigning
it a unique position index. |
protected void |
possiblyRegisterMarkersForTables(java.util.Map<java.lang.String,Marker> markers,
boolean isStarting,
boolean isFirst,
boolean isLast)
|
void |
preserveChildrenAtEndOfLayout()
|
void |
recreateChildrenLMs()
|
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 |
setParent(LayoutManager lm)
Set the parent layout manager. |
java.lang.String |
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, getContentAreaBPD, getContentAreaIPD, getFObj, getGeneratesBlockArea, getGeneratesLineArea, getGeneratesReferenceArea, getNextKnuthElements, getParentAreaBPD, getParentAreaIPD, getReferenceAreaBPD, getReferenceAreaIPD, isRestartable, setGeneratesBlockArea, setGeneratesReferenceArea |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
parentLayoutManager
protected LayoutManager parentLayoutManager
- Parent LayoutManager for this LayoutManager
childLMs
protected java.util.List<LayoutManager> childLMs
- List of child LayoutManagers
fobjIter
protected java.util.ListIterator fobjIter
- Iterator for child LayoutManagers
curChildLM
protected LayoutManager curChildLM
- child LM during getNextKnuthElement phase
childLMiter
protected java.util.ListIterator<LayoutManager> childLMiter
- child LM iterator during getNextKnuthElement phase
AbstractLayoutManager
public AbstractLayoutManager()
- Abstract layout manager.
AbstractLayoutManager
public AbstractLayoutManager(FObj fo)
- Abstract layout manager.
- Parameters:
fo
- the formatting object for this layout manager
setParent
public void setParent(LayoutManager lm)
- Set the parent layout manager.
The parent layout manager is required for adding areas.
- Specified by:
setParent
in interface LayoutManager
- Parameters:
lm
- the parent layout manager
getParent
public LayoutManager getParent()
- Get the parent layout manager.
- Specified by:
getParent
in interface LayoutManager
- 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 interface LayoutManager
getChildLM
protected LayoutManager 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
protected void setCurrentChildLM(LayoutManager childLM)
- 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 interface LayoutManager
- 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 interface LayoutManager
- Parameters:
fin
- the flag value to be set
addAreas
public void 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.
- Specified by:
addAreas
in interface LayoutManager
- Parameters:
posIter
- the position iteratorcontext
- the context
getNextKnuthElements
public java.util.List getNextKnuthElements(LayoutContext context,
int alignment)
- Get a sequence of KnuthElements representing the content
of the node assigned to the LM.
- Specified by:
getNextKnuthElements
in interface LayoutManager
- Parameters:
context
- the LayoutContext used to store layout informationalignment
- the desired text alignment
- Returns:
- the list of KnuthElements
getChangedKnuthElements
public java.util.List 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 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 interface LayoutManager
- Parameters:
oldList
- the elements to replacealignment
- the desired text alignment
- Returns:
- the updated list of KnuthElements
getParentArea
public Area getParentArea(Area childArea)
- Return an Area which can contain the passed childArea. The childArea
may not yet have any content, but it has essential traits set.
In general, if the LayoutManager already has an Area it simply returns
it. Otherwise, it makes a new Area of the appropriate class.
It gets a parent area for its area by calling its parent LM.
Finally, based on the dimensions of the parent area, it initializes
its own area. This includes setting the content IPD and the maximum
BPD.
- Specified by:
getParentArea
in interface LayoutManager
- Parameters:
childArea
- the child area for which the parent area is wanted
- Returns:
- the parent area for the given child
addChildArea
public void addChildArea(Area childArea)
- 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 interface LayoutManager
- Parameters:
childArea
- the child area to be added
createChildLMs
protected java.util.List<LayoutManager> createChildLMs(int size)
- 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
public PageSequenceLayoutManager getPSLM()
- Get the active PageSequenceLayoutManager instance for this
layout process.
- Specified by:
getPSLM
in interface LayoutManager
- Returns:
- the PageSequenceLayoutManager
getCurrentPage
public Page getCurrentPage()
- Returns:
- the
Page
instance corresponding to the current page - See Also:
AbstractPageSequenceLayoutManager.getCurrentPage()
getCurrentPV
public PageViewport 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 interface LayoutManager
- Parameters:
pos
- index up to which child LMs are requested
- Returns:
- true if requested index does exist
getChildLMs
public java.util.List<LayoutManager> getChildLMs()
-
- Specified by:
getChildLMs
in interface LayoutManager
- Returns:
- the list of child LMs
addChildLM
public void addChildLM(LayoutManager lm)
- 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 interface LayoutManager
- Parameters:
lm
- the LM to be added
addChildLMs
public void addChildLMs(java.util.List newLMs)
- Add the LMs in the argument to the list of child LMs;
- Specified by:
addChildLMs
in interface LayoutManager
- Parameters:
newLMs
- the list of LMs to be added
notifyPos
public Position notifyPos(Position pos)
- Adds a Position to the Position participating in the first|last determination by assigning
it a unique position index.
- Specified by:
notifyPos
in interface LayoutManager
- Parameters:
pos
- the Position
- Returns:
- the same Position but with a position index
isFirst
public boolean isFirst(Position pos)
- 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
public boolean isLast(Position pos)
- 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 interface LayoutManager
- 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 interface LayoutManager
- 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:
LayoutManager.hasLineAreaDescendant()
newNoLineAreaDescendantException
protected java.lang.IllegalStateException newNoLineAreaDescendantException()
transferForeignAttributes
protected void transferForeignAttributes(AreaTreeObject targetArea)
- Transfers foreign attributes from the formatting object to the area.
- Parameters:
targetArea
- the area to set the attributes on
transferExtensionAttachments
protected void transferExtensionAttachments(AreaTreeObject targetArea)
- Transfers extension attachments from the formatting object to the area.
- Parameters:
targetArea
- the area to set the extensions on
transferExtensions
protected void transferExtensions(AreaTreeObject targetArea)
- 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 the
PageSequenceLayoutManager
that layout
for this LM has ended.
checkEndOfLayout
protected void checkEndOfLayout(Position pos)
- Checks to see if the incoming
Position
is the last one for this LM, and if so, calls
notifyEndOfLayout()
and cleans up.
- Parameters:
pos
- the Position
to check
preserveChildrenAtEndOfLayout
public void preserveChildrenAtEndOfLayout()
- Overrides:
preserveChildrenAtEndOfLayout
in class AbstractBaseLayoutManager
toString
public java.lang.String toString()
-
- Overrides:
toString
in class java.lang.Object
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 interface LayoutManager
- Overrides:
reset
in class AbstractBaseLayoutManager
recreateChildrenLMs
public void recreateChildrenLMs()
- Overrides:
recreateChildrenLMs
in class AbstractBaseLayoutManager
possiblyRegisterMarkersForTables
protected void possiblyRegisterMarkersForTables(java.util.Map<java.lang.String,Marker> markers,
boolean isStarting,
boolean isFirst,
boolean isLast)
handlingFloat
public boolean handlingFloat()
Copyright 1999-2016 The Apache Software Foundation. All Rights Reserved.