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 derived style is just like a style but (presumably) has additional information that allows relative properties to be assigned values, e.g. font attributes. Property values are fully resolved when this style is created. A property retrieved by name should always have only one value in this class (e.g. one-one map). Any methods to retrieve property values from an instance of this class require a validLayoutContext
be given to it, for some cases of property resolution. Generally, a programmer will not use this class directly, but will retrieve properties using aStyleReference
implementation.- Author:
- Torbjoern Gannholm, Patrick Wright
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CalculatedStyle()
Default constructor; as the instance is immutable after use, don't use this for class instantiation externally.
-
Method Summary
-
-
-
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
-
deriveStyle
public CalculatedStyle deriveStyle(CascadedStyle matched)
derives a child style from this 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
-
countAssigned
public int countAssigned()
-
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)
-
setDefaultValue
public void setDefaultValue(CSSName cssName, FSDerivedValue fsDerivedValue)
-
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
-
getBackgroundSize
public BackgroundSize getBackgroundSize()
-
getBackgroundPosition
public BackgroundPosition getBackgroundPosition()
-
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 aFSDerivedValue
by name. Because we are a derived style, the property will already be resolved at this point.- Parameters:
cssName
- The CSS property name, e.g. "font-family"- Returns:
- See desc.
-
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()
-
getBackgroundAttachment
public IdentValue getBackgroundAttachment()
-
isFixedBackground
public boolean isFixedBackground()
-
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()
-
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()
-
isVerticalBackgroundRepeat
public boolean isVerticalBackgroundRepeat()
-
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()
-
isAvoidPageBreakInside
public boolean isAvoidPageBreakInside()
-
createAnonymousStyle
public CalculatedStyle createAnonymousStyle(IdentValue display)
-
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()
-
isHasBackground
public boolean isHasBackground()
-
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.
-
-