Package org.apache.fop.layoutmgr.table
Class TableCellLayoutManager
- java.lang.Object
-
- org.apache.fop.layoutmgr.AbstractBaseLayoutManager
-
- org.apache.fop.layoutmgr.AbstractLayoutManager
-
- org.apache.fop.layoutmgr.BlockStackingLayoutManager
-
- org.apache.fop.layoutmgr.table.TableCellLayoutManager
-
- All Implemented Interfaces:
PercentBaseContext
,Constants
,BlockLevelLayoutManager
,LayoutManager
public class TableCellLayoutManager extends BlockStackingLayoutManager
LayoutManager for a table-cell FO. A cell contains blocks. These blocks fill the cell.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
TableCellLayoutManager.TableCellBreaker
-
Nested classes/interfaces inherited from class org.apache.fop.layoutmgr.BlockStackingLayoutManager
BlockStackingLayoutManager.MappingPosition
-
-
Field Summary
Fields Modifier and Type Field Description private int
cellIPD
private Block
curBlockArea
private boolean
emptyCell
private boolean
flushArea
private boolean
hasRepeatedHeader
private boolean
hasRetrieveTableMarker
private boolean
isDescendantOfTableFooter
private boolean
isDescendantOfTableHeader
private boolean
isLastTrait
private static org.apache.commons.logging.Log
log
logging instanceprivate PrimaryGridUnit
primaryGridUnit
private boolean
savedAddAreasArguments
private int
savedBorderAfterWhich
private int
savedBorderBeforeWhich
private int
savedEndRow
private boolean
savedFirstOnPage
private int
savedFirstRowHeight
private boolean
savedLastOnPage
private LayoutContext
savedLayoutContext
private RowPainter
savedPainter
private PositionIterator
savedParentIter
private int[]
savedSpannedGridRowHeights
private int
savedStartRow
private int
totalHeight
private int
usedBPD
private int
xoffset
private int
yoffset
-
Fields inherited from class org.apache.fop.layoutmgr.BlockStackingLayoutManager
adjustedSpaceAfter, adjustedSpaceBefore, bpUnit, breakBeforeServed, endIndent, firstVisibleMarkServed, foSpaceAfter, foSpaceBefore, parentArea, referenceIPD, startIndent, storedList
-
Fields inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager
childLMiter, childLMs, curChildLM, fobjIter, parentLayoutManager
-
Fields 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
Constructors Constructor Description TableCellLayoutManager(TableCell node, PrimaryGridUnit pgu)
Create a new Cell layout manager.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAreas(PositionIterator parentIter, LayoutContext layoutContext, int[] spannedGridRowHeights, int startRow, int endRow, int borderBeforeWhich, int borderAfterWhich, boolean firstOnPage, boolean lastOnPage, RowPainter painter, int firstRowHeight)
Add the areas for the break points.private void
addBackgroundAreas(RowPainter painter, int firstRowHeight, int borderBeforeWidth, int paddingRectBPD)
Adds background areas for the column, body and row, if any.private void
addBorder(Block[][] blocks, int i, int j, java.lang.Integer side, CommonBorderPaddingBackground.BorderInfo border, boolean outer, int level)
void
addChildArea(Area childArea)
Add the child to the cell block area.private static void
adjustBPD(Block block, int amount)
private static void
adjustIPD(Block block, int amount)
private static void
adjustXOffset(Block block, int amount)
private static void
adjustYOffset(Block block, int amount)
private void
clearRetrieveTableMarkerChildNodes(java.util.List<LayoutManager> childrenLMs)
void
discardSpace(KnuthGlue spaceGlue)
Discard space.private Block
getBackgroundArea(int bpd, int borderBeforeWidth)
int
getContentAreaBPD()
Returns the BPD of the content areaint
getContentAreaIPD()
Returns the IPD of the content areaboolean
getGeneratesBlockArea()
Returns an indication if the layout manager generates a block area.boolean
getGeneratesReferenceArea()
Returns an indication if the layout manager generates a reference area.protected int
getIPIndents()
Keep
getKeepTogether()
Returns the keep-together strength for this element.Keep
getKeepWithNext()
Returns the keep-with-next strength for this element.Keep
getKeepWithPrevious()
Returns the keep-with-previous strength for this element.java.util.List
getNextKnuthElements(LayoutContext context, int alignment)
Get a sequence of KnuthElements representing the content of the node assigned to the LM.Area
getParentArea(Area childArea)
Return an Area which can contain the passed childArea.Table
getTable()
TableCell
getTableCell()
private TableLayoutManager
getTableLayoutManager()
private boolean
isDescendantOfTableHeaderOrFooter()
Checks whether the associated table cell of this LM is in a table header or footer.private boolean
isSeparateBorderModel()
int
negotiateBPDAdjustment(int adj, KnuthElement lastElement)
Negotiate BPD adjustment.protected void
registerMarkers(boolean isStarting, boolean isFirst, boolean isLast)
Registers the FO's markers on the current PageViewport and parent Table.protected void
repeatAddAreas()
Calls the addAreas() using the original arguments.private void
saveAddAreasArguments(PositionIterator parentIter, LayoutContext layoutContext, int[] spannedGridRowHeights, int startRow, int endRow, int borderBeforeWhich, int borderAfterWhich, boolean firstOnPage, boolean lastOnPage, RowPainter painter, int firstRowHeight)
void
setContentHeight(int h)
Set the content height for this cell.void
setHasRepeatedHeader(boolean hasRepeatedHeader)
(package private) void
setLastTrait(boolean isLast)
void
setParent(LayoutManager lm)
Set the parent layout manager.void
setTotalHeight(int h)
Sets the total height of this cell on the current page.void
setXOffset(int off)
Set the x offset of this cell (usually the same as its parent row).void
setYOffset(int off)
Set the y offset of this cell.-
Methods inherited from class org.apache.fop.layoutmgr.BlockStackingLayoutManager
addBlockSpacing, addChildToArea, addFirstVisibleMarks, addInBetweenBreak, addKnuthElementsForBorderPaddingAfter, addKnuthElementsForBorderPaddingBefore, addKnuthElementsForBreakAfter, addKnuthElementsForBreakBefore, addKnuthElementsForSpaceAfter, addKnuthElementsForSpaceBefore, addLastVisibleMarks, addPendingMarks, breakBeforeServed, flush, getAuxiliaryPosition, getBreakBefore, getChangedKnuthElements, getCurrentArea, getKeepTogetherProperty, getKeepWithNextProperty, getKeepWithPreviousProperty, getNextChildElements, getNextKnuthElements, getParentKeepTogether, getSpaceAfterProperty, getSpaceBeforeProperty, handleOverflow, isRestartAtLM, makeChildLayoutContext, mustKeepTogether, mustKeepWithNext, mustKeepWithPrevious, neededUnits, reset, setContentAreaIPD, setCurrentArea, updateContentAreaIPDwithOverconstrainedAdjust, updateContentAreaIPDwithOverconstrainedAdjust, wrapPositionElement, wrapPositionElements, wrapPositionElements
-
Methods inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager
addAreas, addChildLM, addChildLMs, addId, checkEndOfLayout, createChildLMs, createNextChildLMs, getBaselineOffset, getChildLM, getChildLMs, getCurrentPage, getCurrentPV, getParent, getPSLM, handlingFloat, hasLineAreaDescendant, hasNextChildLM, initialize, isFinished, isFirst, isLast, newNoLineAreaDescendantException, notifyEndOfLayout, notifyPos, possiblyRegisterMarkersForTables, preserveChildrenAtEndOfLayout, recreateChildrenLMs, setCurrentChildLM, setFinished, toString, transferExtensionAttachments, transferExtensions, transferForeignAttributes
-
Methods inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager
getAncestorBlockAreaBPD, getAncestorBlockAreaIPD, getBaseLength, getChangeBarList, getFObj, getGeneratesLineArea, getParentAreaBPD, getParentAreaIPD, getReferenceAreaBPD, getReferenceAreaIPD, isRestartable, 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, getBaselineOffset, getChildLMs, getFObj, getGeneratesLineArea, getParent, getPSLM, hasLineAreaDescendant, initialize, isFinished, isRestartable, notifyPos, setFinished
-
Methods inherited from interface org.apache.fop.datatypes.PercentBaseContext
getBaseLength
-
-
-
-
Field Detail
-
log
private static org.apache.commons.logging.Log log
logging instance
-
primaryGridUnit
private PrimaryGridUnit primaryGridUnit
-
curBlockArea
private Block curBlockArea
-
xoffset
private int xoffset
-
yoffset
private int yoffset
-
cellIPD
private int cellIPD
-
totalHeight
private int totalHeight
-
usedBPD
private int usedBPD
-
emptyCell
private boolean emptyCell
-
isDescendantOfTableFooter
private boolean isDescendantOfTableFooter
-
isDescendantOfTableHeader
private boolean isDescendantOfTableHeader
-
hasRetrieveTableMarker
private boolean hasRetrieveTableMarker
-
hasRepeatedHeader
private boolean hasRepeatedHeader
-
savedAddAreasArguments
private boolean savedAddAreasArguments
-
savedParentIter
private PositionIterator savedParentIter
-
savedLayoutContext
private LayoutContext savedLayoutContext
-
savedSpannedGridRowHeights
private int[] savedSpannedGridRowHeights
-
savedStartRow
private int savedStartRow
-
savedEndRow
private int savedEndRow
-
savedBorderBeforeWhich
private int savedBorderBeforeWhich
-
savedBorderAfterWhich
private int savedBorderAfterWhich
-
savedFirstOnPage
private boolean savedFirstOnPage
-
savedLastOnPage
private boolean savedLastOnPage
-
savedPainter
private RowPainter savedPainter
-
savedFirstRowHeight
private int savedFirstRowHeight
-
flushArea
private boolean flushArea
-
isLastTrait
private boolean isLastTrait
-
-
Constructor Detail
-
TableCellLayoutManager
public TableCellLayoutManager(TableCell node, PrimaryGridUnit pgu)
Create a new Cell layout manager.- Parameters:
node
- table-cell FO for which to create the LMpgu
- primary grid unit for the cell
-
-
Method Detail
-
getTableCell
public TableCell getTableCell()
- Returns:
- the table-cell FO
-
isSeparateBorderModel
private boolean isSeparateBorderModel()
-
getTable
public Table getTable()
- Returns:
- the table owning this cell
-
setHasRepeatedHeader
public void setHasRepeatedHeader(boolean hasRepeatedHeader)
-
getIPIndents
protected int getIPIndents()
- Overrides:
getIPIndents
in classBlockStackingLayoutManager
- Returns:
- the sum of start-indent and end-indent
-
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 interfaceLayoutManager
- Overrides:
getNextKnuthElements
in classBlockStackingLayoutManager
- Parameters:
context
- the LayoutContext used to store layout informationalignment
- the desired text alignment- Returns:
- the list of KnuthElements
-
setYOffset
public void setYOffset(int off)
Set the y offset of this cell. This offset is used to set the absolute position of the cell.- Parameters:
off
- the y direction offset
-
setXOffset
public void setXOffset(int off)
Set the x offset of this cell (usually the same as its parent row). This offset is used to determine the absolute position of the cell.- Parameters:
off
- the x offset
-
setContentHeight
public void setContentHeight(int h)
Set the content height for this cell. This method is used during addAreas() stage.- Parameters:
h
- the height of the contents of this cell
-
setTotalHeight
public void setTotalHeight(int h)
Sets the total height of this cell on the current page. That is, the cell's bpd plus before and after borders and paddings, plus the table's border-separation.- Parameters:
h
- the height of cell
-
clearRetrieveTableMarkerChildNodes
private void clearRetrieveTableMarkerChildNodes(java.util.List<LayoutManager> childrenLMs)
-
isDescendantOfTableHeaderOrFooter
private boolean isDescendantOfTableHeaderOrFooter()
Checks whether the associated table cell of this LM is in a table header or footer.- Returns:
- true if descendant of table header or footer
-
saveAddAreasArguments
private void saveAddAreasArguments(PositionIterator parentIter, LayoutContext layoutContext, int[] spannedGridRowHeights, int startRow, int endRow, int borderBeforeWhich, int borderAfterWhich, boolean firstOnPage, boolean lastOnPage, RowPainter painter, int firstRowHeight)
-
getTableLayoutManager
private TableLayoutManager getTableLayoutManager()
-
repeatAddAreas
protected void repeatAddAreas()
Calls the addAreas() using the original arguments.
-
addAreas
public void addAreas(PositionIterator parentIter, LayoutContext layoutContext, int[] spannedGridRowHeights, int startRow, int endRow, int borderBeforeWhich, int borderAfterWhich, boolean firstOnPage, boolean lastOnPage, RowPainter painter, int firstRowHeight)
Add the areas for the break points. The cell contains block stacking layout managers that add block areas.In the collapsing-border model, the borders of a cell that spans over several rows or columns are drawn separately for each grid unit. Therefore we must know the height of each grid row spanned over by the cell. Also, if the cell is broken over two pages we must know which spanned grid rows are present on the current page.
- Parameters:
parentIter
- the iterator of the break positionslayoutContext
- the layout context for adding the areasspannedGridRowHeights
- in collapsing-border model for a spanning cell, height of each spanned grid rowstartRow
- first grid row on the current page spanned over by the cell, inclusiveendRow
- last grid row on the current page spanned over by the cell, inclusiveborderBeforeWhich
- one ofConditionalBorder.NORMAL
,ConditionalBorder.LEADING_TRAILING
orConditionalBorder.REST
borderAfterWhich
- one ofConditionalBorder.NORMAL
,ConditionalBorder.LEADING_TRAILING
orConditionalBorder.REST
firstOnPage
- true if the cell will be the very first one on the page, in which case collapsed before borders must be drawn in the outer modelastOnPage
- true if the cell will be the very last one on the page, in which case collapsed after borders must be drawn in the outer modepainter
- painterfirstRowHeight
- height of the first row spanned by this cell (may be zero if this row is placed on a previous page). Used to calculate the placement of the row's background image if any
-
addBackgroundAreas
private void addBackgroundAreas(RowPainter painter, int firstRowHeight, int borderBeforeWidth, int paddingRectBPD)
Adds background areas for the column, body and row, if any.
-
addBorder
private void addBorder(Block[][] blocks, int i, int j, java.lang.Integer side, CommonBorderPaddingBackground.BorderInfo border, boolean outer, int level)
-
adjustXOffset
private static void adjustXOffset(Block block, int amount)
-
adjustYOffset
private static void adjustYOffset(Block block, int amount)
-
adjustIPD
private static void adjustIPD(Block block, int amount)
-
adjustBPD
private static void adjustBPD(Block block, int amount)
-
getBackgroundArea
private Block getBackgroundArea(int bpd, int borderBeforeWidth)
-
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 interfaceLayoutManager
- Overrides:
getParentArea
in classAbstractLayoutManager
- Parameters:
childArea
- the child area to get the parent for- Returns:
- the parent area
-
addChildArea
public void addChildArea(Area childArea)
Add the child to the cell block area.- Specified by:
addChildArea
in interfaceLayoutManager
- Overrides:
addChildArea
in classBlockStackingLayoutManager
- Parameters:
childArea
- the child to add to the cell
-
negotiateBPDAdjustment
public int negotiateBPDAdjustment(int adj, KnuthElement lastElement)
Negotiate BPD adjustment.- Specified by:
negotiateBPDAdjustment
in interfaceBlockLevelLayoutManager
- Overrides:
negotiateBPDAdjustment
in classBlockStackingLayoutManager
- Parameters:
adj
- amount to adjustlastElement
- the last knuth element- Returns:
- the resulting adjusted BPD
-
discardSpace
public void discardSpace(KnuthGlue spaceGlue)
Discard space.- Specified by:
discardSpace
in interfaceBlockLevelLayoutManager
- Overrides:
discardSpace
in classBlockStackingLayoutManager
- Parameters:
spaceGlue
- the space
-
getKeepTogether
public Keep getKeepTogether()
Returns the keep-together strength for this element.- Specified by:
getKeepTogether
in interfaceBlockLevelLayoutManager
- Overrides:
getKeepTogether
in classBlockStackingLayoutManager
- Returns:
- the keep-together strength
-
getKeepWithNext
public Keep getKeepWithNext()
Returns the keep-with-next strength for this element.- Specified by:
getKeepWithNext
in interfaceBlockLevelLayoutManager
- Overrides:
getKeepWithNext
in classBlockStackingLayoutManager
- Returns:
- the keep-with-next strength
-
getKeepWithPrevious
public Keep getKeepWithPrevious()
Returns the keep-with-previous strength for this element.- Specified by:
getKeepWithPrevious
in interfaceBlockLevelLayoutManager
- Overrides:
getKeepWithPrevious
in classBlockStackingLayoutManager
- Returns:
- the keep-with-previous strength
-
getContentAreaIPD
public int getContentAreaIPD()
Returns the IPD of the content area- Specified by:
getContentAreaIPD
in interfaceLayoutManager
- Overrides:
getContentAreaIPD
in classBlockStackingLayoutManager
- Returns:
- the IPD of the content area
-
getContentAreaBPD
public int getContentAreaBPD()
Returns the BPD of the content area- Specified by:
getContentAreaBPD
in interfaceLayoutManager
- Overrides:
getContentAreaBPD
in classBlockStackingLayoutManager
- Returns:
- the BPD of the content area
-
getGeneratesReferenceArea
public boolean getGeneratesReferenceArea()
Returns an indication if the layout manager generates a reference area.- Specified by:
getGeneratesReferenceArea
in interfaceLayoutManager
- Overrides:
getGeneratesReferenceArea
in classAbstractBaseLayoutManager
- Returns:
- True if the layout manager generates a reference area
-
getGeneratesBlockArea
public boolean getGeneratesBlockArea()
Returns an indication if the layout manager generates a block area.- Specified by:
getGeneratesBlockArea
in interfaceLayoutManager
- Overrides:
getGeneratesBlockArea
in classAbstractBaseLayoutManager
- Returns:
- True if the layout manager generates a block area
-
registerMarkers
protected void registerMarkers(boolean isStarting, boolean isFirst, boolean isLast)
Registers the FO's markers on the current PageViewport and parent Table.- Overrides:
registerMarkers
in classAbstractLayoutManager
- 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'
-
setLastTrait
void setLastTrait(boolean isLast)
-
setParent
public void setParent(LayoutManager lm)
Set the parent layout manager. The parent layout manager is required for adding areas.- Specified by:
setParent
in interfaceLayoutManager
- Overrides:
setParent
in classAbstractLayoutManager
- Parameters:
lm
- the parent layout manager
-
-