Package com.openhtmltopdf.css.style
Class CalculatedStyle
- java.lang.Object
-
- com.openhtmltopdf.css.style.CalculatedStyle
-
- Direct Known Subclasses:
EmptyStyle
public class CalculatedStyle extends Object
A set of properties that apply to a single Element, derived from all matched properties following the rules for CSS cascade, inheritance, importance, specificity and sequence. A property retrieved by name should always have exactly one value in this class (e.g. one-one map). Some methods to retrieve property values from an instance of this class require a validLayoutContextbe given to them.
This is the go to class for working with a resolved style. Generally, you can get a instance for a box by calling:Box.getStyle()after a box has been created by theBoxBuilderSharedContext.getStyle(org.w3c.dom.Element)for an elementStyleReference.getPseudoElementStyle(org.w3c.dom.Node, String)for a pseudo element. StyleReference is available fromLayoutContextderiveStyle(CascadedStyle) to create a child style (non-inherited
property values will not be available from the child style
EmptyStyleto start with nothing
- Author:
- Torbjoern Gannholm, Patrick Wright
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCalculatedStyle.BackgroundContainerstatic classCalculatedStyle.BackgroundImageType
-
Constructor Summary
Constructors Modifier Constructor Description protectedCalculatedStyle()Default constructor; as the instance is immutable after use, don't use this for class instantiation externally.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FSColorasColor(CSSName cssName)floatasFloat(CSSName cssName)LengthasLength(CssContext c, CSSName cssName)StringasString(CSSName cssName)String[]asStringArray(CSSName cssName)intcolumnCount()CalculatedStylecreateAnonymousStyle(IdentValue display)This method derives a style for an anonymous child box with an overriden value for the display property.CalculatedStylederiveStyle(CascadedStyle matched)Derives a child style from this style.booleanestablishesBFC()intfsMaxOverflowPages()FSColorgetBackgroundColor()Convenience property accessor; returns a Color initialized with the background color value; Uses the actual value (computed actual value) for this element.List<CalculatedStyle.BackgroundContainer>getBackgroundImages()Gets the values of the background properties and combines in a list of BackgroundContainer values.IdentValuegetBackgroundRepeat(PropertyValue value)BorderPropertySetgetBorder(CssContext ctx)intgetBorderHSpacing(CssContext c)intgetBorderVSpacing(CssContext c)RectPropertySetgetCachedMargin()RectPropertySetgetCachedPadding()FSColorgetColor()Convenience property accessor; returns a Color initialized with the foreground color Uses the actual value (computed actual value) for this element.intgetColSpan()List<CounterData>getCounterIncrement()List<CounterData>getCounterReset()static intgetCSSMaxHeight(CssContext c, Box box)Aims to get the correct resolved max-height for a box in dots unit.static intgetCSSMaxWidth(CssContext c, Box box)Aims to get the correct resolved max-width for a box in dots unit.CursorgetCursor()FSDerivedValue[]getderivedValuesById()IdentValuegetDirection()floatgetFloatPropertyProportionalHeight(CSSName cssName, float parentHeight, CssContext ctx)floatgetFloatPropertyProportionalTo(CSSName cssName, float baseValue, CssContext ctx)floatgetFloatPropertyProportionalWidth(CSSName cssName, float parentWidth, CssContext ctx)FontSpecificationgetFont(CssContext ctx)FontSpecificationgetFontSpecification()FSFontgetFSFont(CssContext cssContext)FSFontMetricsgetFSFontMetrics(CssContext c)floatgetFSPageBreakMinHeight(CssContext c)IdentValuegetIdent(CSSName cssName)Gets the ident attribute of the CalculatedStyle objectFSLinearGradientgetLinearGradient(PropertyValue value, CssContext cssContext, int boxWidth, int boxHeight)floatgetLineHeight(CssContext ctx)intgetMarginBorderPadding(CssContext cssCtx, int cbWidth, int which)RectPropertySetgetMarginRect(float cbWidth, CssContext ctx)Convenience property accessor; returns a Border initialized with the four-sided margin width.RectPropertySetgetMarginRect(float cbWidth, CssContext ctx, boolean useCache)intgetMaxHeight(CssContext c, int cbHeight)intgetMaxWidth(CssContext c, int cbWidth)intgetMinHeight(CssContext c, int cbHeight)intgetMinWidth(CssContext c, int cbWidth)RectPropertySetgetPaddingRect(float cbWidth, CssContext ctx)RectPropertySetgetPaddingRect(float cbWidth, CssContext ctx, boolean useCache)Convenience property accessor; returns a Border initialized with the four-sided padding width.CalculatedStylegetParent()Returns the parent style.intgetRowSpan()StringgetRunningName()StringgetStringProperty(CSSName cssName)List<IdentValue>getTextDecorations()IdentValuegetWhitespace()IdentValuegetWordWrap()booleanhasAbsoluteUnit(CSSName cssName)booleanhasColumns()booleanhasLetterSpacing()booleanisAbsFixedOrInlineBlockEquiv()booleanisAbsolute()booleanisAbsoluteWidth()booleanisAutoHeight()booleanisAutoLeftMargin()booleanisAutoRightMargin()booleanisAutoWidth()booleanisAutoZIndex()booleanisAvoidPageBreakInside()booleanisBlockEquivalent()booleanisBorderBox()booleanisBottomAuto()booleanisCanBeShrunkToFit()booleanisCleared()booleanisClearLeft()booleanisClearRight()booleanisCollapseBorders()booleanisColumnBreakAfter()booleanisColumnBreakBefore()booleanisDirectionAuto()booleanisDirectionLTR()booleanisDirectionRTL()booleanisDisplayNone()booleanisDynamicAutoWidth()booleanisDynamicAutoWidthApplicable()booleanisFixed()booleanisFloated()booleanisFloatedLeft()booleanisFloatedRight()booleanisFootnote()booleanisFootnoteBody()booleanisForcePageBreakAfter()booleanisForcePageBreakBefore()booleanisHasBackground()booleanisHasBackgroundImage()booleanisHorizontalBackgroundRepeat(PropertyValue value)booleanisIdent(CSSName cssName, IdentValue val)Gets the ident attribute of the CalculatedStyle objectbooleanisImageRenderingInterpolate()booleanisImageRenderingPixelated()booleanisInline()booleanisInlineBlock()booleanisInlineTable()booleanisKeepWithInline()booleanisLayedOutInInlineContext()booleanisLength(CSSName cssName)TODO: docbooleanisLengthOrNumber(CSSName cssName)booleanisLinearGradient(PropertyValue value)booleanisListItem()booleanisListMarkerInside()booleanisMaxHeightNone()booleanisMaxWidthNone()booleanisMayCollapseMarginsWithChildren()booleanisNeedAutoMarginResolution()booleanisNonFlowContent()booleanisOverflowApplies()booleanisOverflowVisible()booleanisPaginateTable()booleanisParagraphContainerForBidi()booleanisPositioned()booleanisPostionedOrFloated()booleanisRelative()booleanisRunning()booleanisShowEmptyCells()booleanisSpecifiedAsBlock()booleanisTable()booleanisTableCaption()booleanisTableCell()booleanisTableFooter()booleanisTableHeader()booleanisTableRow()booleanisTableSection()booleanisTextJustify()booleanisTopAuto()booleanisVerticalBackgroundRepeat(PropertyValue value)booleanisVisible(RenderingContext renderingContext, Box thisElement)Determine if the element is visible.booleanmayHaveFirstLetter()booleanmayHaveFirstLine()CalculatedStyleoverrideStyle(IdentValue display)Override this style with specified styles.CalculatedStyleoverrideStyle(CascadedStyle matched)Override this style with specified styles.booleanrequiresLayer()StringtoString()Converts to a String representation of the object.FSDerivedValuevalueByName(CSSName cssName)Returns aFSDerivedValueby name.
-
-
-
Field Detail
-
LEFT
public static final int LEFT
- See Also:
- Constant Field Values
-
RIGHT
public static final int RIGHT
- See Also:
- Constant Field Values
-
TOP
public static final int TOP
- See Also:
- Constant Field Values
-
BOTTOM
public static final int BOTTOM
- See Also:
- Constant Field Values
-
-
Method Detail
-
getderivedValuesById
public FSDerivedValue[] getderivedValuesById()
-
deriveStyle
public CalculatedStyle deriveStyle(CascadedStyle matched)
Derives a child style from this style. Non-inherited properties such as borders will be replaced compared tothiswhich is used as parent style.
Depends on the ability to return the identical CascadedStyle each time a child style is needed- Parameters:
matched- the CascadedStyle to apply- Returns:
- The derived child style
-
overrideStyle
public CalculatedStyle overrideStyle(CascadedStyle matched)
Override this style with specified styles. This will NOT create a child style, rather an exact copy with only the specified properties overridden. Compare toderiveStyle(CascadedStyle).
-
overrideStyle
public CalculatedStyle overrideStyle(IdentValue display)
Override this style with specified styles. This will NOT create a child style, rather an exact copy with only the display property overridden. Compare tocreateAnonymousStyle(IdentValue)which creates a child style.
-
getParent
public CalculatedStyle getParent()
Returns the parent style.- Returns:
- Returns the parent style
-
toString
public String toString()
Converts to a String representation of the object.
-
asFloat
public float asFloat(CSSName cssName)
-
hasAbsoluteUnit
public boolean hasAbsoluteUnit(CSSName cssName)
-
isIdent
public boolean isIdent(CSSName cssName, IdentValue val)
Gets the ident attribute of the CalculatedStyle object- Parameters:
cssName- PARAMval- PARAM- Returns:
- The ident value
-
getIdent
public IdentValue getIdent(CSSName cssName)
Gets the ident attribute of the CalculatedStyle object- Parameters:
cssName- PARAM- Returns:
- The ident value
-
getColor
public FSColor getColor()
Convenience property accessor; returns a Color initialized with the foreground color Uses the actual value (computed actual value) for this element.- Returns:
- The color value
-
getBackgroundColor
public FSColor getBackgroundColor()
Convenience property accessor; returns a Color initialized with the background color value; Uses the actual value (computed actual value) for this element.- Returns:
- The backgroundColor value
-
getCounterReset
public List<CounterData> getCounterReset()
-
getCounterIncrement
public List<CounterData> getCounterIncrement()
-
getBorder
public BorderPropertySet getBorder(CssContext ctx)
-
getFont
public FontSpecification getFont(CssContext ctx)
-
getFontSpecification
public FontSpecification getFontSpecification()
-
getFloatPropertyProportionalTo
public float getFloatPropertyProportionalTo(CSSName cssName, float baseValue, CssContext ctx)
-
getFloatPropertyProportionalWidth
public float getFloatPropertyProportionalWidth(CSSName cssName, float parentWidth, CssContext ctx)
- Parameters:
cssName-parentWidth-ctx-- Returns:
- TODO
-
getFloatPropertyProportionalHeight
public float getFloatPropertyProportionalHeight(CSSName cssName, float parentHeight, CssContext ctx)
- Parameters:
cssName-parentHeight-ctx-- Returns:
- TODO
-
getLineHeight
public float getLineHeight(CssContext ctx)
-
getMarginRect
public RectPropertySet getMarginRect(float cbWidth, CssContext ctx)
Convenience property accessor; returns a Border initialized with the four-sided margin width. Uses the actual value (computed actual value) for this element.- Parameters:
cbWidth-ctx-- Returns:
- The marginWidth value
-
getMarginRect
public RectPropertySet getMarginRect(float cbWidth, CssContext ctx, boolean useCache)
-
getPaddingRect
public RectPropertySet getPaddingRect(float cbWidth, CssContext ctx, boolean useCache)
Convenience property accessor; returns a Border initialized with the four-sided padding width. Uses the actual value (computed actual value) for this element.- Parameters:
cbWidth-ctx-- Returns:
- The paddingWidth value
-
getPaddingRect
public RectPropertySet getPaddingRect(float cbWidth, CssContext ctx)
-
getStringProperty
public String getStringProperty(CSSName cssName)
- Parameters:
cssName-- Returns:
- TODO
-
isLength
public boolean isLength(CSSName cssName)
TODO: doc
-
isLengthOrNumber
public boolean isLengthOrNumber(CSSName cssName)
-
valueByName
public FSDerivedValue valueByName(CSSName cssName)
Returns aFSDerivedValueby name. Because we are a derived style, the property will already be resolved at this point.
This will look up the ancestor tree for inherited properties and use an initial value for unspecified properties which do not inherit.- Parameters:
cssName- The CSS property name, e.g. "font-family"
-
getCachedPadding
public RectPropertySet getCachedPadding()
-
getCachedMargin
public RectPropertySet getCachedMargin()
-
getMarginBorderPadding
public int getMarginBorderPadding(CssContext cssCtx, int cbWidth, int which)
-
getWhitespace
public IdentValue getWhitespace()
-
getFSFont
public FSFont getFSFont(CssContext cssContext)
-
getFSFontMetrics
public FSFontMetrics getFSFontMetrics(CssContext c)
-
getWordWrap
public IdentValue getWordWrap()
-
isClearLeft
public boolean isClearLeft()
-
isClearRight
public boolean isClearRight()
-
isCleared
public boolean isCleared()
-
getBackgroundRepeat
public IdentValue getBackgroundRepeat(PropertyValue value)
-
isInline
public boolean isInline()
-
isInlineBlock
public boolean isInlineBlock()
-
isTable
public boolean isTable()
-
isInlineTable
public boolean isInlineTable()
-
isTableCell
public boolean isTableCell()
-
isTableSection
public boolean isTableSection()
-
isTableCaption
public boolean isTableCaption()
-
isTableHeader
public boolean isTableHeader()
-
isTableFooter
public boolean isTableFooter()
-
isTableRow
public boolean isTableRow()
-
isDisplayNone
public boolean isDisplayNone()
-
isSpecifiedAsBlock
public boolean isSpecifiedAsBlock()
-
isBlockEquivalent
public boolean isBlockEquivalent()
-
isLayedOutInInlineContext
public boolean isLayedOutInInlineContext()
-
isNeedAutoMarginResolution
public boolean isNeedAutoMarginResolution()
-
isAbsolute
public boolean isAbsolute()
-
isFixed
public boolean isFixed()
-
isFloated
public boolean isFloated()
-
isFloatedLeft
public boolean isFloatedLeft()
-
isFloatedRight
public boolean isFloatedRight()
-
isFootnote
public boolean isFootnote()
-
isFootnoteBody
public boolean isFootnoteBody()
-
isRelative
public boolean isRelative()
-
isPostionedOrFloated
public boolean isPostionedOrFloated()
-
isPositioned
public boolean isPositioned()
-
isAutoWidth
public boolean isAutoWidth()
-
isAbsoluteWidth
public boolean isAbsoluteWidth()
-
isAutoHeight
public boolean isAutoHeight()
-
isAutoLeftMargin
public boolean isAutoLeftMargin()
-
isAutoRightMargin
public boolean isAutoRightMargin()
-
isAutoZIndex
public boolean isAutoZIndex()
-
establishesBFC
public boolean establishesBFC()
-
requiresLayer
public boolean requiresLayer()
-
isRunning
public boolean isRunning()
-
getRunningName
public String getRunningName()
-
isOverflowApplies
public boolean isOverflowApplies()
-
isOverflowVisible
public boolean isOverflowVisible()
-
isHorizontalBackgroundRepeat
public boolean isHorizontalBackgroundRepeat(PropertyValue value)
-
isVerticalBackgroundRepeat
public boolean isVerticalBackgroundRepeat(PropertyValue value)
-
isTopAuto
public boolean isTopAuto()
-
isBottomAuto
public boolean isBottomAuto()
-
isListItem
public boolean isListItem()
-
hasColumns
public boolean hasColumns()
-
columnCount
public int columnCount()
-
fsMaxOverflowPages
public int fsMaxOverflowPages()
-
isVisible
public boolean isVisible(RenderingContext renderingContext, Box thisElement)
Determine if the element is visible. This is normaly the case if visibility == visible. Only when visibilty is -fs-table-paginate-repeated-visible and we are in a repeated table header the element will also be visible. This allows to only show an element in the table header after a page break.- Parameters:
renderingContext- null or the current renderingContext. If null, then the -fs-table-paginate-repeated-visible logic will not work.thisElement- the element for which the visibility should be determined. Only required if -fs-table-paginate-repeated-visible is specified.- Returns:
- true if the element is visible
-
isForcePageBreakBefore
public boolean isForcePageBreakBefore()
-
isForcePageBreakAfter
public boolean isForcePageBreakAfter()
-
isColumnBreakBefore
public boolean isColumnBreakBefore()
-
isColumnBreakAfter
public boolean isColumnBreakAfter()
-
isAvoidPageBreakInside
public boolean isAvoidPageBreakInside()
-
createAnonymousStyle
public CalculatedStyle createAnonymousStyle(IdentValue display)
This method derives a style for an anonymous child box with an overriden value for the display property.
NOTE: All non-inherited properties ofthiswill be lost as the returned style is for a child box.
-
mayHaveFirstLine
public boolean mayHaveFirstLine()
-
mayHaveFirstLetter
public boolean mayHaveFirstLetter()
-
isNonFlowContent
public boolean isNonFlowContent()
-
isMayCollapseMarginsWithChildren
public boolean isMayCollapseMarginsWithChildren()
-
isAbsFixedOrInlineBlockEquiv
public boolean isAbsFixedOrInlineBlockEquiv()
-
isMaxWidthNone
public boolean isMaxWidthNone()
-
isMaxHeightNone
public boolean isMaxHeightNone()
-
isImageRenderingPixelated
public boolean isImageRenderingPixelated()
-
isImageRenderingInterpolate
public boolean isImageRenderingInterpolate()
-
getMinWidth
public int getMinWidth(CssContext c, int cbWidth)
-
getMaxWidth
public int getMaxWidth(CssContext c, int cbWidth)
-
getMinHeight
public int getMinHeight(CssContext c, int cbHeight)
-
getMaxHeight
public int getMaxHeight(CssContext c, int cbHeight)
-
isCollapseBorders
public boolean isCollapseBorders()
-
getBorderHSpacing
public int getBorderHSpacing(CssContext c)
-
getBorderVSpacing
public int getBorderVSpacing(CssContext c)
-
getRowSpan
public int getRowSpan()
-
getColSpan
public int getColSpan()
-
getFSPageBreakMinHeight
public float getFSPageBreakMinHeight(CssContext c)
-
asLength
public Length asLength(CssContext c, CSSName cssName)
-
isShowEmptyCells
public boolean isShowEmptyCells()
-
getTextDecorations
public List<IdentValue> getTextDecorations()
-
getCursor
public Cursor getCursor()
-
isPaginateTable
public boolean isPaginateTable()
-
isTextJustify
public boolean isTextJustify()
-
isListMarkerInside
public boolean isListMarkerInside()
-
isKeepWithInline
public boolean isKeepWithInline()
-
isDynamicAutoWidth
public boolean isDynamicAutoWidth()
-
isDynamicAutoWidthApplicable
public boolean isDynamicAutoWidthApplicable()
-
isCanBeShrunkToFit
public boolean isCanBeShrunkToFit()
-
isDirectionLTR
public boolean isDirectionLTR()
-
isDirectionRTL
public boolean isDirectionRTL()
-
isDirectionAuto
public boolean isDirectionAuto()
-
getDirection
public IdentValue getDirection()
-
hasLetterSpacing
public boolean hasLetterSpacing()
-
isParagraphContainerForBidi
public boolean isParagraphContainerForBidi()
-
isBorderBox
public boolean isBorderBox()
- Returns:
- true for border-box, false for content-box.
-
getCSSMaxWidth
public static int getCSSMaxWidth(CssContext c, Box box)
Aims to get the correct resolved max-width for a box in dots unit. Returns -1 if there is no max-width defined. Assumptions: box has a containing block.
-
getCSSMaxHeight
public static int getCSSMaxHeight(CssContext c, Box box)
Aims to get the correct resolved max-height for a box in dots unit. returns -1 if there is no max-height defined. Assumptions: box has a containing block.
-
isHasBackground
public boolean isHasBackground()
-
isHasBackgroundImage
public boolean isHasBackgroundImage()
-
isLinearGradient
public boolean isLinearGradient(PropertyValue value)
-
getLinearGradient
public FSLinearGradient getLinearGradient(PropertyValue value, CssContext cssContext, int boxWidth, int boxHeight)
-
getBackgroundImages
public List<CalculatedStyle.BackgroundContainer> getBackgroundImages()
Gets the values of the background properties and combines in a list of BackgroundContainer values.
-
-