Class WidthSpec

  • All Implemented Interfaces:
    Serializable

    @Immutable
    @MustImplementEqualsAndHashcode
    public class WidthSpec
    extends Object
    implements Serializable
    This class defines a dependent width of an elements:
    • absolute - element has a fixed width
    • percentage - element width is a certain percentage of the surrounding element
    • star - element width is a relative part of the unused width of the surrounding element. All star elements evenly share the available width.
    • auto - elements takes the width it needs
    Author:
    Philip Helger
    See Also:
    Serialized Form
    • Method Detail

      • getTypeID

        @Nonnull
        @Nonempty
        public final String getTypeID()
        Returns:
        The ID of the width type. Never null.
      • isAbsolute

        public final boolean isAbsolute()
        Returns:
        true if type is 'absolute' or 'percentage'. Only absolute entries need to provide a value!
      • isStar

        public final boolean isStar()
        Returns:
        true if type is 'star'.
      • isAuto

        public final boolean isAuto()
        Returns:
        true if type is 'auto'.
      • getValue

        @Nonnegative
        public final float getValue()
        Returns:
        The width value - is either an absolute value or a percentage value - depending on getType(). For star width elements this is 0.
      • getEffectiveValue

        @Nonnegative
        public float getEffectiveValue​(float fAvailableWidth)
        Get the effective width based on the passed available width. This may not be called for star or auto width elements.
        Parameters:
        fAvailableWidth - The available width.
        Returns:
        The effective width to use.
        See Also:
        isAbsolute()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • abs

        @Nonnull
        public static WidthSpec abs​(@Nonnegative
                                    float fValue)
        Create a width element with an absolute value.
        Parameters:
        fValue - The width to use. Must be > 0.
        Returns:
        Never null.
      • perc

        @Nonnull
        public static WidthSpec perc​(@Nonnegative
                                     float fPerc)
        Create a width element with an percentage value.
        Parameters:
        fPerc - The width percentage to use. Must be > 0.
        Returns:
        Never null.
      • star

        @Nonnull
        public static WidthSpec star()
        Create a new star width element.
        Returns:
        Never null.
      • auto

        @Nonnull
        public static WidthSpec auto()
        Create a new auto width element.
        Returns:
        Never null.