Class BlockBox
java.lang.Object
com.openhtmltopdf.render.Box
com.openhtmltopdf.render.BlockBox
- All Implemented Interfaces:
InlinePaintable, Styleable, DisplayListItem
- Direct Known Subclasses:
AnonymousBlockBox, FlowingColumnBox, FlowingColumnContainerBox, MarginBox, TableBox, TableCellBox, TableRowBox, TableSectionBox, ViewportBox
A block box as defined in the CSS spec. It also provides a base class for
other kinds of block content (for example table rows or cells).
See
BlockBox.ContentType-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumWhat type of direct child content this block box contains.static classNested classes/interfaces inherited from class Box
Box.ChildIteratorOfType<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final intstatic final intstatic final intstatic final intFields inherited from class Box
CHILDREN_FLUX, DONE, DUMP_LAYOUT, DUMP_RENDER, FLUX, LINE_SEPARATOR, NOTHING -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected voidappendPositioningInfo(StringBuilder result) intvoidvoidprotected voidcalcChildPaintingInfo(CssContext c, PaintingInfo result, boolean useCache) voidprotected voidcalcDimensions(LayoutContext c, int cssWidth) protected intvoidintprotected voidcalcLayoutHeight(LayoutContext c, BorderPropertySet border, RectPropertySet margin, RectPropertySet padding) Oh oh!voidbooleanprotected voidChecks if this box established a block formatting context and if so removes the last bfc from the stack.protected voidChecks if this box establishes a block formatting context and if so creates one and pushes it to the stack of bfcs.protected booleancheckPushLayer(LayoutContext c, CalculatedStyle style) protected voidcopyOf()voiddump(LayoutContext c, String indent, int which) voidfindLastNthLineBox(int count) intfindOffset(Box box) protected intintprotected intprotected intprotected intprotected intgetCSSWidth(CssContext c, boolean shrinkingToFit) protected Stringintintintprotected BlockBoxgetNextCollapsableSibling(BlockBox.MarginCollapseResult collapsedMargin) protected intgetPaintingClipEdge(CssContext cssCtx) voidinitStaticPos(LayoutContext c, BlockBox parent, int childOffset) protected booleanbooleanbooleanbooleanbooleanprotected booleanbooleanbooleanbooleanisInline()protected booleanbooleanbooleanprotected booleanprotected booleanbooleanbooleanbooleanbooleanUsing the css: -fs-page-break-min-height: 5cm; on a block element you can force a pagebreak before this block, if not enough space (e.g. 5cm in this case) is remaining on the current page for the block.booleanprotected booleanbooleanvoidvoidlayout(LayoutContext c, int contentStart) protected voidlayoutChildren(LayoutContext c, int contentStart) protected voidlayoutInlineChildren(LayoutContext c, int contentStart, int breakAtLine, boolean tryAgain) voidvoidvoidvoidpositionAbsolute(CssContext cssCtx, int direction) voidprotected voidpropagateExtraSpace(LayoutContext c, ContentLimitContainer parentContainer, ContentLimitContainer currentContainer, int extraTop, int extraBottom) voidResponsible for resetting the state of the box before a repeat call tolayout(LayoutContext)or other layout methods.protected voidresolveAutoMargins(LayoutContext c, int cssWidth, RectPropertySet padding, BorderPropertySet border) voidsetBottomMarginCalculated(boolean bottomMarginCalculated) voidsetChildrenContentType(BlockBox.ContentType contentType) protected voidsetChildrenHeight(int childrenHeight) protected voidsetDimensionsCalculated(boolean dimensionsCalculated) voidsetElement(Element element) voidsetFirstLetterStyle(CascadedStyle firstLetterStyle) voidsetFirstLineStyle(CascadedStyle firstLineStyle) voidsetFloatedBoxData(FloatedBoxData floatedBoxData) voidsetFromCaptionedTable(boolean fromTable) voidsetInlineContent(List<Styleable> inlineContent) Inline content is created by the box builder.voidsetListCounter(int listCounter) voidsetMarkerData(MarkerData markerData) protected voidsetMaxWidth(int maxWidth) protected voidsetMinMaxCalculated(boolean minMaxCalculated) protected voidsetMinWidth(int minWidth) voidsetNeedPageClear(boolean needPageClear) protected voidsetNeedShrinkToFitCalculatation(boolean needShrinkToFitCalculatation) voidsetPersistentBFC(PersistentBFC persistentBFC) voidsetReplacedElement(ReplacedElement replacedElement) voidsetStaticEquivalent(Box staticEquivalent) voidsetTopMarginCalculated(boolean topMarginCalculated) booleanvoidvoidstyleText(LayoutContext c, CalculatedStyle style) toString()Methods inherited from class Box
addAllChildren, addChild, addChildForLayout, analyzePageBreaks, ancestors, ancestorsWhile, calcPaintingInfo, collectText, connectChildrenToCurrentLayer, crossesPageBreak, detach, dumpBoxes, exportPageBoxText, exportText, find, findAncestor, findColumnBreakOpportunities, forcePageBreakAfter, forcePageBreakBefore, forcePageBreakBefore, getAbsoluteClipBox, getAbsX, getAbsY, getAccessibilityObject, getBorder, getBorderBox, getBorderBoxHeight, getBorderBoxWidth, getBorderEdge, getBorderSides, getBoxDimensions, getChild, getChildCount, getChildIterator, getChildIteratorOfType, getChildren, getChildrenClipEdge, getClipBox, getContainingBlock, getContainingBlockWidth, getContainingLayer, getContentAreaEdge, getContentWidth, getEffBackgroundColor, getEffectiveWidth, getElement, getElementBoxes, getHeight, getIndex, getLayer, getLeftMBP, getMargin, getMarginBorderPadding, getMarginEdge, getMarginEdge, getNext, getNextSibling, getPadding, getPaddingEdge, getPaddingWidth, getPaintingBorderEdge, getPaintingInfo, getPaintingPaddingEdge, getParent, getParentClipBox, getPrevious, getPreviousSibling, getPseudoElementOrClass, getRelativeOffset, getRightMBP, getState, getStyle, getStyleMargin, getStyleMargin, getTx, getTy, getWidth, getX, getY, hasNonTextContent, hasRootElementBackground, initContainingLayer, intersects, isAnonymous, isBody, isContainedInMarginBox, isFirstChild, isInDocumentFlow, isInitialContainingBlock, isMarginAreaRoot, isRoot, isStyled, isTerminalColumnBreak, moveIfGreater, paintBackground, paintBorder, paintRootElementBackground, positionRelative, removeAllChildren, removeChild, removeChild, resetChildren, resetChildren, resetTopMargin, rootBox, setAbsX, setAbsY, setAccessiblityObject, setAnonymous, setBorderBoxHeight, setBorderBoxWidth, setBoxDimensions, setContainingBlock, setContainingLayer, setContentWidth, setHeight, setIndex, setLayer, setLeftMBP, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setParent, setPseudoElementOrClass, setRelativeOffset, setRightMBP, setState, setStyle, setTx, setTy, setX, setY, stateToString
-
Field Details
-
POSITION_VERTICALLY
public static final int POSITION_VERTICALLY- See Also:
-
POSITION_HORIZONTALLY
public static final int POSITION_HORIZONTALLY- See Also:
-
POSITION_BOTH
public static final int POSITION_BOTH- See Also:
-
NO_BASELINE
protected static final int NO_BASELINE- See Also:
-
-
Constructor Details
-
BlockBox
public BlockBox()
-
-
Method Details
-
setElement
- Specified by:
setElementin interfaceStyleable- Overrides:
setElementin classBox
-
copyOf
-
getExtraBoxDescription
-
toString
-
appendPositioningInfo
-
dump
-
isListItem
public boolean isListItem() -
paintListMarker
-
getPaintingClipEdge
- Overrides:
getPaintingClipEdgein classBox
-
paintInline
- Specified by:
paintInlinein interfaceInlinePaintable
-
isInline
public boolean isInline() -
getLineBox
-
paintDebugOutline
-
getMarkerData
-
setMarkerData
-
createMarkerData
-
getListCounter
public int getListCounter() -
setListCounter
public void setListCounter(int listCounter) -
getPersistentBFC
-
setPersistentBFC
-
getStaticEquivalent
-
setStaticEquivalent
-
shouldBeReplaced
public boolean shouldBeReplaced() -
isReplaced
public boolean isReplaced() -
calcCanvasLocation
public void calcCanvasLocation()- Specified by:
calcCanvasLocationin classBox
-
calcInitialFloatedCanvasLocation
-
calcChildLocations
public void calcChildLocations()- Overrides:
calcChildLocationsin classBox
-
isNeedPageClear
public boolean isNeedPageClear() -
setNeedPageClear
public void setNeedPageClear(boolean needPageClear) -
positionAbsolute
-
isPageBreakNeededBecauseOfMinHeight
Using the css: -fs-page-break-min-height: 5cm; on a block element you can force a pagebreak before this block, if not enough space (e.g. 5cm in this case) is remaining on the current page for the block.- Returns:
- true if a pagebreak is needed before this block because there is not enough space left on the current page.
-
positionAbsoluteOnPage
-
getReplacedElement
-
setReplacedElement
-
reset
Description copied from class:BoxResponsible for resetting the state of the box before a repeat call tolayout(LayoutContext)or other layout methods.
Any layout operation that is not idempotent MUST be reset in this method. Layout may be called several times on the one box. -
resolveAutoMargins
protected void resolveAutoMargins(LayoutContext c, int cssWidth, RectPropertySet padding, BorderPropertySet border) -
calcDimensions
-
calcDimensions
-
addBoxID
-
layout
-
layout
-
checkPushLayer
-
checkPopBfc
Checks if this box established a block formatting context and if so removes the last bfc from the stack. See alsocheckPushBfc(LayoutContext) -
checkPushBfc
Checks if this box establishes a block formatting context and if so creates one and pushes it to the stack of bfcs. See alsocheckPopBfc(LayoutContext) -
isAllowHeightToShrink
protected boolean isAllowHeightToShrink() -
getPageClearance
protected int getPageClearance() -
calcLayoutHeight
protected void calcLayoutHeight(LayoutContext c, BorderPropertySet border, RectPropertySet margin, RectPropertySet padding) Oh oh! Up to this method height is used to track content height. After this method it is used to track total layout height! -
ensureChildren
-
layoutChildren
-
layoutInlineChildren
protected void layoutInlineChildren(LayoutContext c, int contentStart, int breakAtLine, boolean tryAgain) -
getChildrenContentType
-
setChildrenContentType
-
getInlineContent
-
setInlineContent
Inline content is created by the box builder. It is important to note that the inline content here is stored in the pre-layout state. Ie. It has not been flowed out intoLineBoxandInlineLayoutBoxobjects but is stored asInlineBoxand block boxes that are laid out inline such as inline-block and inline-table.
During layout inline-content is laid out into lines and so on but the inline content is left untouched so as to be able to run layout multiple times to satisfy constraints.
This method should be called withsetChildrenContentType(ContentType)set toBlockBox.ContentType.INLINEas block boxes can not contain mixed content. -
isSkipWhenCollapsingMargins
protected boolean isSkipWhenCollapsingMargins() -
isMayCollapseMarginsWithChildren
protected boolean isMayCollapseMarginsWithChildren() -
collapseMargins
-
getNextCollapsableSibling
-
isTopMarginCalculated
public boolean isTopMarginCalculated() -
setTopMarginCalculated
public void setTopMarginCalculated(boolean topMarginCalculated) -
isBottomMarginCalculated
public boolean isBottomMarginCalculated() -
setBottomMarginCalculated
public void setBottomMarginCalculated(boolean bottomMarginCalculated) -
getCSSWidth
-
getCSSWidth
-
getCSSFitToWidth
-
getCSSHeight
-
isAutoHeight
public boolean isAutoHeight() -
getAvailableWidth
-
isFixedWidthAdvisoryOnly
protected boolean isFixedWidthAdvisoryOnly() -
calcMinMaxWidth
-
getMaxWidth
public int getMaxWidth() -
setMaxWidth
protected void setMaxWidth(int maxWidth) -
getMinWidth
public int getMinWidth() -
setMinWidth
protected void setMinWidth(int minWidth) -
styleText
-
styleText
-
calcChildPaintingInfo
- Overrides:
calcChildPaintingInfoin classBox
-
getFirstLetterStyle
-
setFirstLetterStyle
-
getFirstLineStyle
-
setFirstLineStyle
-
isMinMaxCalculated
protected boolean isMinMaxCalculated() -
setMinMaxCalculated
protected void setMinMaxCalculated(boolean minMaxCalculated) -
setDimensionsCalculated
protected void setDimensionsCalculated(boolean dimensionsCalculated) -
setNeedShrinkToFitCalculatation
protected void setNeedShrinkToFitCalculatation(boolean needShrinkToFitCalculatation) -
initStaticPos
-
calcBaseline
-
calcInitialBreakAtLine
-
isCurrentBreakAtLineContext
-
calcBreakAtLineContext
-
calcInlineBaseline
-
findOffset
-
findLastNthLineBox
-
isNeedsKeepWithInline
-
isFloated
public boolean isFloated() -
getFloatedBoxData
-
setFloatedBoxData
-
getChildrenHeight
public int getChildrenHeight() -
setChildrenHeight
protected void setChildrenHeight(int childrenHeight) -
isFromCaptionedTable
public boolean isFromCaptionedTable() -
setFromCaptionedTable
public void setFromCaptionedTable(boolean fromTable) -
isInlineBlock
protected boolean isInlineBlock()- Overrides:
isInlineBlockin classBox
-
isInMainFlow
public boolean isInMainFlow() -
getDocumentParent
- Overrides:
getDocumentParentin classBox
-
isContainsInlineContent
-
checkPageContext
-
isNeedsClipOnPaint
-
propagateExtraSpace
protected void propagateExtraSpace(LayoutContext c, ContentLimitContainer parentContainer, ContentLimitContainer currentContainer, int extraTop, int extraBottom)
-