org.apache.fop.layoutmgr

Class TraitSetter


public class TraitSetter
extends java.lang.Object

This is a helper class used for setting common traits on areas.

Field Summary

protected static Log
log
logger

Method Summary

static void
addBackground(Area area, CommonBorderPaddingBackground backProps, PercentBaseContext context)
Add background to an area.
static void
addBackground(Area area, CommonBorderPaddingBackground backProps, PercentBaseContext context, int ipdShift, int bpdShift, int referenceIPD, int referenceBPD)
Add background to an area.
static void
addBorders(Area area, CommonBorderPaddingBackground bordProps, boolean discardBefore, boolean discardAfter, boolean discardStart, boolean discardEnd, PercentBaseContext context)
Add borders to an area.
static void
addBorders(Area area, CommonBorderPaddingBackground bordProps, PercentBaseContext context)
Deprecated. Call the other addBorders() method and addPadding separately.
static void
addBreaks(Area area, int breakBefore, int breakAfter)
Sets the traits for breaks on an area.
static void
addCollapsingBorders(Area area, CommonBorderPaddingBackground.BorderInfo borderBefore, CommonBorderPaddingBackground.BorderInfo borderAfter, CommonBorderPaddingBackground.BorderInfo borderStart, CommonBorderPaddingBackground.BorderInfo borderEnd, boolean[] outer)
Add borders to an area for the collapsing border model in tables.
static void
addFontTraits(Area area, Font font)
Adds font traits to an area
static void
addMargins(Area area, CommonBorderPaddingBackground bpProps, int startIndent, int endIndent, PercentBaseContext context)
Add space to a block area.
static void
addMargins(Area area, CommonBorderPaddingBackground bpProps, CommonMarginBlock marginProps, PercentBaseContext context)
Add space to a block area.
static void
addPadding(Area area, CommonBorderPaddingBackground bordProps, boolean discardBefore, boolean discardAfter, boolean discardStart, boolean discardEnd, PercentBaseContext context)
Add padding to an area.
static void
addSpaceBeforeAfter(Area area, double adjust, MinOptMax spaceBefore, MinOptMax spaceAfter)
Adds traits for space-before and space-after to an area.
static void
addTextDecoration(Area area, CommonTextDecoration deco)
Adds the text-decoration traits to the area.
static int
getEffectiveSpace(double adjust, MinOptMax space)
Returns the effective space length of a resolved space specifier based on the adjustment value.
static void
setBorderPaddingTraits(Area area, CommonBorderPaddingBackground bpProps, boolean bNotFirst, boolean bNotLast, PercentBaseContext context)
Sets border and padding traits on areas.
static void
setProducerID(Area area, String id)
Sets the producer's ID as a trait on the area.

Field Details

log

protected static Log log
logger

Method Details

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

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

addBorders

public static void addBorders(Area area,
                              CommonBorderPaddingBackground bordProps,
                              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.
bordProps - 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

addBorders

public static void addBorders(Area area,
                              CommonBorderPaddingBackground bordProps,
                              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.
bordProps - border properties
context - Property evaluation context

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

addCollapsingBorders

public static void addCollapsingBorders(Area area,
                                        CommonBorderPaddingBackground.BorderInfo borderBefore,
                                        CommonBorderPaddingBackground.BorderInfo borderAfter,
                                        CommonBorderPaddingBackground.BorderInfo borderStart,
                                        CommonBorderPaddingBackground.BorderInfo borderEnd,
                                        boolean[] outer)
Add borders to an area for the collapsing border model in tables. 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.
borderBefore - the resolved before border
borderAfter - the resolved after border
borderStart - the resolved start border
borderEnd - the resolved end border
outer - 4 boolean values indicating if the side represents the table's outer border. Order: before, after, start, end

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

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

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

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

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

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

setBorderPaddingTraits

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

setProducerID

public static void setProducerID(Area area,
                                 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

Copyright 1999-2008 The Apache Software Foundation. All Rights Reserved.