Package com.itextpdf.layout.renderer
Class GridContainerRenderer
- java.lang.Object
-
- com.itextpdf.layout.renderer.AbstractRenderer
-
- com.itextpdf.layout.renderer.BlockRenderer
-
- com.itextpdf.layout.renderer.GridContainerRenderer
-
- All Implemented Interfaces:
IPropertyContainer
,IRenderer
public class GridContainerRenderer extends BlockRenderer
Represents a renderer for a grid.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
GridContainerRenderer.GridLayoutResult
-
Field Summary
Fields Modifier and Type Field Description private float
containerHeight
private float
containerWidth
private boolean
isFirstLayout
-
Fields inherited from class com.itextpdf.layout.renderer.AbstractRenderer
BOTTOM_SIDE, childRenderers, EPS, flushed, INF, isLastRendererForModelElement, LEFT_SIDE, modelElement, occupiedArea, OVERLAP_EPSILON, parent, positionedRenderers, properties, RIGHT_SIDE, TOP_SIDE
-
-
Constructor Summary
Constructors Constructor Description GridContainerRenderer(GridContainer modelElement)
Creates a Grid renderer from its corresponding layout object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChild(IRenderer renderer)
Adds a child to the current rendererprivate LayoutArea
calculateContainerOccupiedArea(LayoutContext layoutContext, boolean isFull)
private static Grid
constructGrid(GridContainerRenderer renderer, Rectangle actualBBox)
private AbstractRenderer
createOverflowRenderer(java.util.List<IRenderer> children)
private static java.lang.Boolean
determineCollapsingMargins(IRenderer renderer)
Calculates collapsing margins value.private static LayoutContext
getCellLayoutContext(LayoutContext layoutContext, Rectangle actualBBox, GridCell cell)
IRenderer
getNextRenderer()
Gets a new instance of this class to be used as a next renderer, after this renderer is used, ifIRenderer.layout(LayoutContext)
is called more than once.LayoutResult
layout(LayoutContext layoutContext)
This method simulates positioning of the renderer, including all of its children, and returns theLayoutResult
, representing the layout result, including occupied area, status, i.e.private GridContainerRenderer.GridLayoutResult
layoutGrid(LayoutContext layoutContext, Rectangle actualBBox, Grid grid)
private static int
processLayoutResult(GridContainerRenderer.GridLayoutResult layoutResult, GridCell cell, LayoutResult cellResult)
-
Methods inherited from class com.itextpdf.layout.renderer.BlockRenderer
applyMaxHeight, applyMinHeight, applyRotationLayout, applyVerticalAlignment, applyWidth, beginRotationIfApplied, correctFixedLayout, createOverflowRenderer, createRotationTransformInsideOccupiedArea, createSplitAndOverflowRenderers, createSplitRenderer, decreaseLayoutBoxAfterChildPlacement, draw, endRotationIfApplied, fixOccupiedAreaIfOverflowedX, fixOccupiedAreaIfOverflowedY, getMinMaxWidth, getOccupiedAreaBBox, getResolvedFont, handleForcedPlacement, processNotFullChildResult, recalculateLayoutBoxBeforeChildLayout, recalculateOccupiedAreaAfterChildLayout, startChildMarginsHandling, stopLayoutingChildrenIfChildResultNotFull
-
Methods inherited from class com.itextpdf.layout.renderer.AbstractRenderer
addAllChildRenderers, addAllChildRenderers, addAllProperties, addChildRenderer, alignChildHorizontally, allowLastYLineRecursiveExtraction, applyAbsolutePosition, applyAbsolutePositionIfNeeded, applyAction, applyBorderBox, applyBorderBox, applyDestination, applyDestinationsAndAnnotation, applyLinkAnnotation, applyMargins, applyMargins, applyMarginsBordersPaddings, applyPaddings, applyPaddings, applyRelativePositioningTranslation, beginElementOpacityApplying, beginTransformationIfApplied, calculateAbsolutePdfBBox, calculateAdditionalWidth, calculateBBox, calculatePaddingBorderHeight, calculatePaddingBorderWidth, calculateShiftToPositionBBoxOfPointsAt, clipBackgroundArea, clipBackgroundArea, clipBorderArea, createFontCharacteristics, createXObject, deleteOwnProperty, deleteProperty, drawBackground, drawBorder, drawChildren, drawPositionedChildren, endElementOpacityApplying, endTransformationIfApplied, getAspectRatio, getBackgroundArea, getBorderAreaBBox, getBorderRadii, getBorders, getBorders, getChildRenderers, getDefaultProperty, getFirstYLineRecursively, getInnerAreaBBox, getLastYLineRecursively, getMargins, getModelElement, getOccupiedArea, getOwnProperties, getOwnProperty, getPaddings, getParent, getPdfDocument, getProperty, getProperty, getPropertyAsBoolean, getPropertyAsColor, getPropertyAsFloat, getPropertyAsFloat, getPropertyAsFloat, getPropertyAsFont, getPropertyAsInteger, getPropertyAsTransparentColor, getPropertyAsUnitValue, getPropertyAsUnitValue, getRootRenderer, hasAbsoluteUnitValue, hasAspectRatio, hasOwnOrModelProperty, hasOwnProperty, hasProperty, hasRelativeUnitValue, initElementAreas, isAbsolutePosition, isBorderBoxSizing, isFirstOnRootArea, isFirstOnRootArea, isFixedLayout, isFlushed, isKeepTogether, isKeepTogether, isNotFittingHeight, isNotFittingLayoutArea, isNotFittingWidth, isOverflowFit, isOverflowProperty, isOverflowProperty, isOverflowProperty, isPositioned, isRelativePosition, isStaticLayout, logWarningIfGetNextRendererNotOverridden, move, noAbsolutePositionInfo, preparePositionedRendererAndAreaForLayout, processWaitingDrawing, rectangleToPointsList, removeAllChildRenderers, removeChildRenderer, replaceOwnProperty, resolveFirstPdfFont, resolveFirstPdfFont, retrieveHeight, retrieveMaxHeight, retrieveMaxWidth, retrieveMinHeight, retrieveMinWidth, retrieveUnitValue, retrieveUnitValue, retrieveWidth, returnBackOwnProperty, setBorders, setChildRenderer, setChildRenderers, setMinMaxWidthBasedOnFixedWidth, setParent, setProperty, setThisAsParent, shrinkOccupiedAreaForAbsolutePosition, toString, transformPoints, updateHeight, updateHeightsOnSplit, updateHeightsOnSplit, updateMaxHeight, updateMinHeight, updateWidth
-
-
-
-
Constructor Detail
-
GridContainerRenderer
public GridContainerRenderer(GridContainer modelElement)
Creates a Grid renderer from its corresponding layout object.- Parameters:
modelElement
- theGridContainer
which this object should manage
-
-
Method Detail
-
getNextRenderer
public IRenderer getNextRenderer()
Gets a new instance of this class to be used as a next renderer, after this renderer is used, ifIRenderer.layout(LayoutContext)
is called more than once.- Returns:
- new renderer instance
-
layout
public LayoutResult layout(LayoutContext layoutContext)
This method simulates positioning of the renderer, including all of its children, and returns theLayoutResult
, representing the layout result, including occupied area, status, i.e. if there was enough place to fit the renderer subtree, etc.LayoutResult
can be extended to return custom layout results for custom elements, e.g.TextRenderer
usesTextLayoutResult
as its result. This method can be called standalone to learn how much area the renderer subtree needs, or can be called beforeIRenderer.draw(DrawContext)
, to prepare the renderer to be flushed to the output stream.- Specified by:
layout
in interfaceIRenderer
- Overrides:
layout
in classBlockRenderer
- Parameters:
layoutContext
- the description of layout area and any other additional information- Returns:
- result of the layout process
-
addChild
public void addChild(IRenderer renderer)
Adds a child to the current renderer- Specified by:
addChild
in interfaceIRenderer
- Overrides:
addChild
in classAbstractRenderer
- Parameters:
renderer
- a child to be added
-
determineCollapsingMargins
private static java.lang.Boolean determineCollapsingMargins(IRenderer renderer)
Calculates collapsing margins value. It's based on browser behavior. Always returning true somehow also almost works.
-
createOverflowRenderer
private AbstractRenderer createOverflowRenderer(java.util.List<IRenderer> children)
-
layoutGrid
private GridContainerRenderer.GridLayoutResult layoutGrid(LayoutContext layoutContext, Rectangle actualBBox, Grid grid)
-
processLayoutResult
private static int processLayoutResult(GridContainerRenderer.GridLayoutResult layoutResult, GridCell cell, LayoutResult cellResult)
-
getCellLayoutContext
private static LayoutContext getCellLayoutContext(LayoutContext layoutContext, Rectangle actualBBox, GridCell cell)
-
calculateContainerOccupiedArea
private LayoutArea calculateContainerOccupiedArea(LayoutContext layoutContext, boolean isFull)
-
constructGrid
private static Grid constructGrid(GridContainerRenderer renderer, Rectangle actualBBox)
-
-