Class 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 valid LayoutContext be given to it, for some cases of property resolution. Generally, a programmer will not use this class directly, but will retrieve properties using a StyleReference implementation.
    Author:
    Torbjoern Gannholm, Patrick Wright
    • Constructor Detail

      • CalculatedStyle

        protected CalculatedStyle()
        Default constructor; as the instance is immutable after use, don't use this for class instantiation externally.
    • 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.
        Overrides:
        toString in class Object
        Returns:
        The borderWidth value
      • asFloat

        public float asFloat​(CSSName cssName)
      • asStringArray

        public String[] asStringArray​(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 - PARAM
        val - 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
      • 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
      • 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
      • 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 a FSDerivedValue 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.
      • getMarginBorderPadding

        public int getMarginBorderPadding​(CssContext cssCtx,
                                          int cbWidth,
                                          int which)
      • getWhitespace

        public IdentValue getWhitespace()
      • 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()
      • 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)
      • isShowEmptyCells

        public boolean isShowEmptyCells()
      • isHasBackground

        public boolean isHasBackground()
      • 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()
      • 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.