Class TraitSetter


  • public final class TraitSetter
    extends java.lang.Object
    This is a helper class used for setting common traits on areas.
    • Method Detail

      • setBorderPaddingTraits

        public static void setBorderPaddingTraits​(Area area,
                                                  CommonBorderPaddingBackground bpProps,
                                                  boolean isNotFirst,
                                                  boolean isNotLast,
                                                  PercentBaseContext context)
        Sets border and padding traits on areas.
        Parameters:
        area - area to set the traits on
        bpProps - border and padding properties
        isNotFirst - True if the area is not the first area
        isNotLast - True if the area is not the last area
        context - Property evaluation context
      • addBorders

        public static void addBorders​(Area area,
                                      CommonBorderPaddingBackground borderProps,
                                      PercentBaseContext context)
        Deprecated.
        Call the other addBorders() method and addPadding separately.
        Add borders to an area. Note: this method also adds unconditional padding. Don't use! Layout managers that create areas with borders can use this to add the borders to the area.
        Parameters:
        area - the area to set the traits on.
        borderProps - border properties
        context - Property evaluation context
      • addBorders

        public static void addBorders​(Area area,
                                      CommonBorderPaddingBackground borderProps,
                                      boolean discardBefore,
                                      boolean discardAfter,
                                      boolean discardStart,
                                      boolean discardEnd,
                                      PercentBaseContext context)
        Add borders to an area. Layout managers that create areas with borders can use this to add the borders to the area.
        Parameters:
        area - the area to set the traits on.
        borderProps - border properties
        discardBefore - true if the before border should be discarded
        discardAfter - true if the after border should be discarded
        discardStart - true if the start border should be discarded
        discardEnd - true if the end border should be discarded
        context - Property evaluation context
      • addPadding

        public static void addPadding​(Area area,
                                      CommonBorderPaddingBackground bordProps,
                                      boolean discardBefore,
                                      boolean discardAfter,
                                      boolean discardStart,
                                      boolean discardEnd,
                                      PercentBaseContext context)
        Add padding to an area. Layout managers that create areas with padding can use this to add the borders to the area.
        Parameters:
        area - the area to set the traits on.
        bordProps - border and padding properties
        discardBefore - true if the before padding should be discarded
        discardAfter - true if the after padding should be discarded
        discardStart - true if the start padding should be discarded
        discardEnd - true if the end padding should be discarded
        context - Property evaluation context
      • addBackground

        public static void addBackground​(Area area,
                                         CommonBorderPaddingBackground backProps,
                                         PercentBaseContext context,
                                         int ipdShift,
                                         int bpdShift,
                                         int referenceIPD,
                                         int referenceBPD)
        Add background to an area. This method is mainly used by table-related layout managers to add background for column, body or row. Since the area corresponding to border-separation must be filled with the table's background, for every cell an additional area with the same dimensions is created to hold the background for the corresponding column/body/row. An additional shift must then be added to background-position-horizontal/vertical to ensure the background images are correctly placed. Indeed the placement of images must be made WRT the column/body/row and not the cell.

        Note: The area's IPD and BPD must be set before calling this method.

        TODO the regular addBackground(Area, CommonBorderPaddingBackground, PercentBaseContext) method should be used instead, and a means to retrieve the original area's dimensions must be found.

        TODO the placement of images in the x- or y-direction will be incorrect if background-repeat is set for that direction.

        Parameters:
        area - the area to set the traits on
        backProps - the background properties
        context - Property evaluation context
        ipdShift - horizontal shift to affect to the background, in addition to the value of the background-position-horizontal property
        bpdShift - vertical shift to affect to the background, in addition to the value of the background-position-vertical property
        referenceIPD - value to use as a reference for percentage calculation
        referenceBPD - value to use as a reference for percentage calculation
      • addBackground

        public static void addBackground​(Area area,
                                         CommonBorderPaddingBackground backProps,
                                         PercentBaseContext context)
        Add background to an area. Layout managers that create areas with a background can use this to add the background to the area. Note: The area's IPD and BPD must be set before calling this method.
        Parameters:
        area - the area to set the traits on
        backProps - the background properties
        context - Property evaluation context
      • addMargins

        public static void addMargins​(Area area,
                                      CommonBorderPaddingBackground bpProps,
                                      int startIndent,
                                      int endIndent,
                                      PercentBaseContext context)
        Add space to a block area. Layout managers that create block areas can use this to add space outside of the border rectangle to the area.
        Parameters:
        area - the area to set the traits on.
        bpProps - the border, padding and background properties
        startIndent - the effective start-indent value
        endIndent - the effective end-indent value
        context - the context for evaluation of percentages
      • addMargins

        public static void addMargins​(Area area,
                                      CommonBorderPaddingBackground bpProps,
                                      CommonMarginBlock marginProps,
                                      PercentBaseContext context)
        Add space to a block area. Layout managers that create block areas can use this to add space outside of the border rectangle to the area.
        Parameters:
        area - the area to set the traits on.
        bpProps - the border, padding and background properties
        marginProps - the margin properties.
        context - the context for evaluation of percentages
      • getEffectiveSpace

        public static int getEffectiveSpace​(double adjust,
                                            MinOptMax space)
        Returns the effective space length of a resolved space specifier based on the adjustment value.
        Parameters:
        adjust - the adjustment value
        space - the space specifier
        Returns:
        the effective space length
      • addSpaceBeforeAfter

        public static void addSpaceBeforeAfter​(Area area,
                                               double adjust,
                                               MinOptMax spaceBefore,
                                               MinOptMax spaceAfter)
        Adds traits for space-before and space-after to an area.
        Parameters:
        area - the target area
        adjust - the adjustment value
        spaceBefore - the space-before space specifier
        spaceAfter - the space-after space specifier
      • addBreaks

        public static void addBreaks​(Area area,
                                     int breakBefore,
                                     int breakAfter)
        Sets the traits for breaks on an area.
        Parameters:
        area - the area to set the traits on.
        breakBefore - the value for break-before
        breakAfter - the value for break-after
      • addFontTraits

        public static void addFontTraits​(Area area,
                                         Font font)
        Adds font traits to an area
        Parameters:
        area - the target are
        font - the font to use
      • addTextDecoration

        public static void addTextDecoration​(Area area,
                                             CommonTextDecoration deco)
        Adds the text-decoration traits to the area.
        Parameters:
        area - the area to set the traits on
        deco - the text decorations
      • setVisibility

        public static void setVisibility​(Area area,
                                         int visibility)
      • addStructureTreeElement

        public static void addStructureTreeElement​(Area area,
                                                   StructureTreeElement structureTreeElement)
        Sets the structure tree element associated to the given area.
        Parameters:
        area - the area to set the traits on
        structureTreeElement - the element the area is associated to in the document structure
      • setProducerID

        public static void setProducerID​(Area area,
                                         java.lang.String id)
        Sets the producer's ID as a trait on the area. This can be used to track back the generating FO node.
        Parameters:
        area - the area to set the traits on
        id - the ID to set
      • setLayer

        public static void setLayer​(Area area,
                                    java.lang.String layer)
        Sets the optional content group layer as a trait on the area.
        Parameters:
        area - the area to set the traits on
        layer - the layer ID to set