Class BorderPainter
java.lang.Object
org.apache.fop.render.intermediate.BorderPainter
This is an abstract base class for handling border painting.
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final int
Convention index of bottom borderprotected static final int
Convention index of bottom-left border cornersprotected static final int
Convention index of bottom-right border cornersprotected static final float
The length of the dash as a factor of the border width i.e.static final float
The ratio between a solid dash and the white-space in a dashed-borderprotected static final int
Convention index of left borderprotected static final int
Convention index of right borderprotected static final int
Convention index of before topprotected static final int
Convention index of top-left border cornersprotected static final int
Convention index of top-right-end border corners -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected static double
calculateCornerCorrectionFactor
(int width, int height, BorderProps before, BorderProps after, BorderProps start, BorderProps end) Calculate the correction factor to handle over-sized elliptic corner radii.protected static double
calculateCornerScaleCorrection
(int width, int height, org.apache.fop.render.intermediate.BorderPainter.BorderSegment before, org.apache.fop.render.intermediate.BorderPainter.BorderSegment after, org.apache.fop.render.intermediate.BorderPainter.BorderSegment start, org.apache.fop.render.intermediate.BorderPainter.BorderSegment end) Calculate the scaling factor to handle over-sized elliptic corner radii.void
clipBackground
(Rectangle rect, BorderProps bpsBefore, BorderProps bpsAfter, BorderProps bpsStart, BorderProps bpsEnd) Clip the background to the inner borderstatic float
dashWidthCalculator
(float borderLength, float borderWidth) This method calculates the length of the "dash" in a dashed border.void
drawBorders
(Rectangle borderRect, BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight, Color innerBackgroundColor) Draws borders.protected void
drawRectangularBorders
(Rectangle borderRect, BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight) TODO merge with drawRoundedBorders()?protected void
drawRoundedBorders
(Rectangle borderRect, BorderProps beforeBorderProps, BorderProps afterBorderProps, BorderProps startBorderProps, BorderProps endBorderProps) TODO merge with drawRectangularBorders?
-
Field Details
-
TOP
protected static final int TOPConvention index of before top- See Also:
-
RIGHT
protected static final int RIGHTConvention index of right border- See Also:
-
BOTTOM
protected static final int BOTTOMConvention index of bottom border- See Also:
-
LEFT
protected static final int LEFTConvention index of left border- See Also:
-
TOP_LEFT
protected static final int TOP_LEFTConvention index of top-left border corners- See Also:
-
TOP_RIGHT
protected static final int TOP_RIGHTConvention index of top-right-end border corners- See Also:
-
BOTTOM_RIGHT
protected static final int BOTTOM_RIGHTConvention index of bottom-right border corners- See Also:
-
BOTTOM_LEFT
protected static final int BOTTOM_LEFTConvention index of bottom-left border corners- See Also:
-
DASHED_BORDER_SPACE_RATIO
public static final float DASHED_BORDER_SPACE_RATIOThe ratio between a solid dash and the white-space in a dashed-border- See Also:
-
DASHED_BORDER_LENGTH_FACTOR
protected static final float DASHED_BORDER_LENGTH_FACTORThe length of the dash as a factor of the border width i.e. 2 -> dashWidth = 2*borderWidth- See Also:
-
-
Constructor Details
-
BorderPainter
-
-
Method Details
-
drawBorders
public void drawBorders(Rectangle borderRect, BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight, Color innerBackgroundColor) throws IFException Draws borders.- Parameters:
borderRect
- the border rectanglebpsTop
- the border specification on the top sidebpsBottom
- the border specification on the bottom sidebpsLeft
- the border specification on the left sidebpsRight
- the border specification on the end sideinnerBackgroundColor
- the inner background color- Throws:
IFException
- if an error occurs while drawing the borders
-
drawRectangularBorders
protected void drawRectangularBorders(Rectangle borderRect, BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight) throws IOException TODO merge with drawRoundedBorders()?- Parameters:
borderRect
- the border rectanglebpsTop
- the border specification on the top sidebpsBottom
- the border specification on the bottom sidebpsLeft
- the border specification on the left sidebpsRight
- the border specification on the end side- Throws:
IOException
-
dashWidthCalculator
public static float dashWidthCalculator(float borderLength, float borderWidth) This method calculates the length of the "dash" in a dashed border. The dash satisfies the condition that corners start on a dash and end with a dash (rather than ending with a white space).- Parameters:
borderLength
- The length of the border.borderWidth
- The width/thickness of the border.- Returns:
- returns the length of the dash such that it fits the criteria above.
-
drawRoundedBorders
protected void drawRoundedBorders(Rectangle borderRect, BorderProps beforeBorderProps, BorderProps afterBorderProps, BorderProps startBorderProps, BorderProps endBorderProps) throws IOException TODO merge with drawRectangularBorders?- Parameters:
borderRect
- the border rectangle- Throws:
IOException
- on io exception
-
clipBackground
public void clipBackground(Rectangle rect, BorderProps bpsBefore, BorderProps bpsAfter, BorderProps bpsStart, BorderProps bpsEnd) throws IOException Clip the background to the inner border- Parameters:
rect
- clipping rectanglebpsBefore
- before borderbpsAfter
- after borderbpsStart
- start borderbpsEnd
- end border- Throws:
IOException
- if an I/O error occurs
-
calculateCornerCorrectionFactor
protected static double calculateCornerCorrectionFactor(int width, int height, BorderProps before, BorderProps after, BorderProps start, BorderProps end) Calculate the correction factor to handle over-sized elliptic corner radii.- Parameters:
width
- the border widthheight
- the border heightbefore
- the before border propertiesafter
- the after border propertiesstart
- the start border propertiesend
- the end border properties
-
calculateCornerScaleCorrection
protected static double calculateCornerScaleCorrection(int width, int height, org.apache.fop.render.intermediate.BorderPainter.BorderSegment before, org.apache.fop.render.intermediate.BorderPainter.BorderSegment after, org.apache.fop.render.intermediate.BorderPainter.BorderSegment start, org.apache.fop.render.intermediate.BorderPainter.BorderSegment end) Calculate the scaling factor to handle over-sized elliptic corner radii.- Parameters:
width
- the border widthheight
- the border heightbefore
- the before border segmentafter
- the after border segmentstart
- the start border segmentend
- the end border segment
-