Package com.itextpdf.forms.form.renderer
Class SelectFieldListBoxRenderer
- java.lang.Object
-
- com.itextpdf.layout.renderer.AbstractRenderer
-
- com.itextpdf.layout.renderer.BlockRenderer
-
- com.itextpdf.forms.form.renderer.AbstractSelectFieldRenderer
-
- com.itextpdf.forms.form.renderer.SelectFieldListBoxRenderer
-
- All Implemented Interfaces:
IPropertyContainer
,IRenderer
public class SelectFieldListBoxRenderer extends AbstractSelectFieldRenderer
TheSelectFieldListBoxRenderer
implementation for select field renderer.
-
-
Field Summary
-
Fields inherited from class com.itextpdf.layout.renderer.AbstractRenderer
childRenderers, EPS, flushed, INF, isLastRendererForModelElement, modelElement, occupiedArea, OVERLAP_EPSILON, parent, positionedRenderers, properties
-
-
Constructor Summary
Constructors Constructor Description SelectFieldListBoxRenderer(AbstractSelectField modelElement)
Creates a newSelectFieldListBoxRenderer
instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
allowLastYLineRecursiveExtraction()
protected void
applyAcroField(DrawContext drawContext)
Applies the AcroField widget.private void
applySelectedStyle(IRenderer selectedOption)
protected IRenderer
createFlatRenderer()
Creates the flat renderer instance.private float
getCalculatedHeight(IRenderer flatRenderer)
protected float
getFinalSelectFieldHeight(float availableHeight, float actualHeight, boolean isClippedHeight)
Returns final height of the select field.private float
getMaxOptionActualHeight(IRenderer flatRenderer)
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.private java.util.List<IRenderer>
getSelectedOptions(IRenderer rendererSubTree)
private boolean
isMultiple()
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 void
setFontColorRecursively(IRenderer selectedOption)
The `select` tag has default color css property, therefore it makes sense to explicitly override this property to all children, otherwise it will be not applied due to the css resolving mechanism.-
Methods inherited from class com.itextpdf.forms.form.renderer.AbstractSelectFieldRenderer
applyAccessibilityProperties, draw, drawChildren, getConformance, getLang, getModelId, getOptionsMarkedSelected, isFlatten, isOptGroupRenderer, isOptionRenderer, setupBuilderValues, writeAcroFormFieldLangAttribute
-
Methods inherited from class com.itextpdf.layout.renderer.BlockRenderer
applyRotationLayout, applyVerticalAlignment, beginRotationIfApplied, createOverflowRenderer, createRotationTransformInsideOccupiedArea, createSplitRenderer, endRotationIfApplied, getMinMaxWidth, getOccupiedAreaBBox, getResolvedFont
-
Methods inherited from class com.itextpdf.layout.renderer.AbstractRenderer
addAllProperties, addChild, alignChildHorizontally, applyAbsolutePosition, applyAction, applyBorderBox, applyBorderBox, applyDestination, applyDestinationsAndAnnotation, applyLinkAnnotation, applyMargins, applyMargins, applyPaddings, applyPaddings, applyRelativePositioningTranslation, beginElementOpacityApplying, beginTransformationIfApplied, calculateAbsolutePdfBBox, calculateBBox, calculateShiftToPositionBBoxOfPointsAt, clipBackgroundArea, clipBackgroundArea, clipBorderArea, createXObject, deleteOwnProperty, deleteProperty, drawBackground, drawBorder, endElementOpacityApplying, endTransformationIfApplied, getBackgroundArea, getBorderAreaBBox, getBorderRadii, getBorders, getChildRenderers, getDefaultProperty, getFirstYLineRecursively, getInnerAreaBBox, getLastYLineRecursively, getMargins, getModelElement, getOccupiedArea, getOwnProperties, getOwnProperty, getPaddings, getParent, getProperty, getProperty, getPropertyAsBoolean, getPropertyAsColor, getPropertyAsFloat, getPropertyAsFloat, getPropertyAsFont, getPropertyAsInteger, getPropertyAsTransparentColor, getPropertyAsUnitValue, hasAbsoluteUnitValue, hasOwnOrModelProperty, hasOwnProperty, hasProperty, hasRelativeUnitValue, initElementAreas, isAbsolutePosition, isBorderBoxSizing, isFirstOnRootArea, isFixedLayout, isFlushed, isKeepTogether, isNotFittingHeight, isNotFittingLayoutArea, isNotFittingWidth, isOverflowFit, isOverflowProperty, isOverflowProperty, isOverflowProperty, isPositioned, isRelativePosition, isStaticLayout, move, rectangleToPointsList, retrieveHeight, retrieveMaxHeight, retrieveMaxWidth, retrieveMinHeight, retrieveMinWidth, retrieveUnitValue, retrieveUnitValue, retrieveWidth, setBorders, setMinMaxWidthBasedOnFixedWidth, setParent, setProperty, toString, transformPoints, updateHeight, updateHeightsOnSplit, updateMaxHeight, updateMinHeight, updateWidth
-
-
-
-
Constructor Detail
-
SelectFieldListBoxRenderer
public SelectFieldListBoxRenderer(AbstractSelectField modelElement)
Creates a newSelectFieldListBoxRenderer
instance.- Parameters:
modelElement
- the model element
-
-
Method Detail
-
getNextRenderer
public IRenderer getNextRenderer()
Description copied from interface:IRenderer
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)
Description copied from class:AbstractSelectFieldRenderer
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 classAbstractSelectFieldRenderer
- Parameters:
layoutContext
- the description of layout area and any other additional information- Returns:
- result of the layout process
-
allowLastYLineRecursiveExtraction
protected boolean allowLastYLineRecursiveExtraction()
- Overrides:
allowLastYLineRecursiveExtraction
in classAbstractRenderer
-
createFlatRenderer
protected IRenderer createFlatRenderer()
Description copied from class:AbstractSelectFieldRenderer
Creates the flat renderer instance.- Specified by:
createFlatRenderer
in classAbstractSelectFieldRenderer
- Returns:
IRenderer
instance.
-
getFinalSelectFieldHeight
protected float getFinalSelectFieldHeight(float availableHeight, float actualHeight, boolean isClippedHeight)
Description copied from class:AbstractSelectFieldRenderer
Returns final height of the select field.- Overrides:
getFinalSelectFieldHeight
in classAbstractSelectFieldRenderer
- Parameters:
availableHeight
- available height of the layout areaactualHeight
- actual occupied height of the select fieldisClippedHeight
- indicates whether the layout area's height is clipped or not- Returns:
- final height of the select field.
-
applyAcroField
protected void applyAcroField(DrawContext drawContext)
Description copied from class:AbstractSelectFieldRenderer
Applies the AcroField widget.- Specified by:
applyAcroField
in classAbstractSelectFieldRenderer
- Parameters:
drawContext
- the draw context
-
getCalculatedHeight
private float getCalculatedHeight(IRenderer flatRenderer)
-
getMaxOptionActualHeight
private float getMaxOptionActualHeight(IRenderer flatRenderer)
-
isMultiple
private boolean isMultiple()
-
applySelectedStyle
private void applySelectedStyle(IRenderer selectedOption)
-
setFontColorRecursively
private void setFontColorRecursively(IRenderer selectedOption)
The `select` tag has default color css property, therefore it makes sense to explicitly override this property to all children, otherwise it will be not applied due to the css resolving mechanism.
-
-