Class Border
- Direct Known Subclasses:
-
Border3D
,DashedBorder
,DottedBorder
,DoubleBorder
,FixedDashedBorder
,RoundDotsBorder
,SolidBorder
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Enumerates the different sides of the rectangle. -
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The 3D groove border.static final int
The 3D inset border.static final int
The 3D outset border.static final int
The 3D ridge border.static final int
The dashed border.static final int
The fixed dashed border.static final int
The dotted border.static final int
The double border.static final Border
The null Border, i.e.static final int
The round-dots border.static final int
The solid border.protected TransparentColor
The color of the border.protected int
The type of the border.protected float
The width of the border. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
draw
(PdfCanvas canvas, float x1, float y1, float x2, float y2, float horizontalRadius1, float verticalRadius1, float horizontalRadius2, float verticalRadius2, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter) All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction.void
draw
(PdfCanvas canvas, float x1, float y1, float x2, float y2, float borderRadius, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter) All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction.abstract void
draw
(PdfCanvas canvas, float x1, float y1, float x2, float y2, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter) All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction.void
Draw borders around the target rectangle.abstract void
drawCellBorder
(PdfCanvas canvas, float x1, float y1, float x2, float y2, Border.Side defaultSide) Draws the border of a cell.protected void
drawDiscontinuousBorders
(PdfCanvas canvas, Rectangle boundingRectangle, float[] horizontalRadii, float[] verticalRadii, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter) Perform drawing operations to draw discontinuous borders.boolean
Indicates whether the border is equal to the given border.protected Border.Side
getBorderSide
(float x1, float y1, float x2, float y2, Border.Side defaultSide) Returns theside
corresponded to the line between two points.getColor()
protected float
getDotsGap
(double distance, float initialGap) Adjusts the size of the gap between dotsprotected Point
getIntersectionPoint
(Point lineBeg, Point lineEnd, Point clipLineBeg, Point clipLineEnd) Gets aPoint
in which two lines intersect.float
Gets the opacity of theborder
protected float[]
getStartingPointsForBorderSide
(float x1, float y1, float x2, float y2, Border.Side defaultSide) Calculate adjusted starting points for discontinuous borders, given two opposing points (A and B) that define the bounding rectangleabstract int
getType()
Returns the type of theborder
float
getWidth()
Gets the width of theborder
int
hashCode()
void
void
setWidth
(float width) Sets the width of theborder
-
Field Details
-
NO_BORDER
The null Border, i.e. the presence of such border is equivalent to the absence of the border -
SOLID
public static final int SOLIDThe solid border.- See Also:
-
DASHED
public static final int DASHEDThe dashed border.- See Also:
-
DOTTED
public static final int DOTTEDThe dotted border.- See Also:
-
DOUBLE
public static final int DOUBLEThe double border.- See Also:
-
ROUND_DOTS
public static final int ROUND_DOTSThe round-dots border.- See Also:
-
_3D_GROOVE
public static final int _3D_GROOVEThe 3D groove border.- See Also:
-
_3D_INSET
public static final int _3D_INSETThe 3D inset border.- See Also:
-
_3D_OUTSET
public static final int _3D_OUTSETThe 3D outset border.- See Also:
-
_3D_RIDGE
public static final int _3D_RIDGEThe 3D ridge border.- See Also:
-
DASHED_FIXED
public static final int DASHED_FIXEDThe fixed dashed border.- See Also:
-
transparentColor
The color of the border.- See Also:
-
width
protected float widthThe width of the border. -
type
protected int typeThe type of the border.
-
-
Constructor Details
-
Border
protected Border(float width) - Parameters:
-
width
- the width which the border should have
-
Border
- Parameters:
-
color
- the color which the border should have -
width
- the width which the border should have
-
Border
- Parameters:
-
color
- the color which the border should have -
width
- the width which the border should have -
opacity
- the opacity which border should have; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
-
-
Method Details
-
draw
public abstract void draw(PdfCanvas canvas, float x1, float y1, float x2, float y2, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter) All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction. Borders are drawn in this order: top, right, bottom, left.Given points specify the line which lies on the border of the content area, therefore the border itself should be drawn to the left from the drawing direction.
borderWidthBefore
andborderWidthAfter
parameters are used to define the widths of the borders that are before and after the current border, e.g. for the bottom border,borderWidthBefore
specifies width of the right border andborderWidthAfter
- width of the left border. Those width are used to handle areas of border joins.- Parameters:
-
canvas
- PdfCanvas to be written to -
x1
- x coordinate of the beginning point of the element side, that should be bordered -
y1
- y coordinate of the beginning point of the element side, that should be bordered -
x2
- x coordinate of the ending point of the element side, that should be bordered -
y2
- y coordinate of the ending point of the element side, that should be bordered -
defaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinates -
borderWidthBefore
- defines width of the border that is before the current one -
borderWidthAfter
- defines width of the border that is after the current one
-
draw
Draw borders around the target rectangle.- Parameters:
-
canvas
- PdfCanvas to be written to -
rectangle
- border positions rectangle
-
draw
public void draw(PdfCanvas canvas, float x1, float y1, float x2, float y2, float borderRadius, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter) All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction. Borders are drawn in this order: top, right, bottom, left.Given points specify the line which lies on the border of the content area, therefore the border itself should be drawn to the left from the drawing direction.
borderWidthBefore
andborderWidthAfter
parameters are used to define the widths of the borders that are before and after the current border, e.g. for the bottom border,borderWidthBefore
specifies width of the right border andborderWidthAfter
- width of the left border. Those width are used to handle areas of border joins.borderRadius
is used to draw rounded borders.- Parameters:
-
canvas
- PdfCanvas to be written to -
x1
- x coordinate of the beginning point of the element side, that should be bordered -
y1
- y coordinate of the beginning point of the element side, that should be bordered -
x2
- x coordinate of the ending point of the element side, that should be bordered -
y2
- y coordinate of the ending point of the element side, that should be bordered -
borderRadius
- defines the radius of the element's corners -
defaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinates -
borderWidthBefore
- defines width of the border that is before the current one -
borderWidthAfter
- defines width of the border that is after the current one
-
draw
public void draw(PdfCanvas canvas, float x1, float y1, float x2, float y2, float horizontalRadius1, float verticalRadius1, float horizontalRadius2, float verticalRadius2, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter) All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction. Borders are drawn in this order: top, right, bottom, left.Given points specify the line which lies on the border of the content area, therefore the border itself should be drawn to the left from the drawing direction.
borderWidthBefore
andborderWidthAfter
parameters are used to define the widths of the borders that are before and after the current border, e.g. for the bottom border,borderWidthBefore
specifies width of the right border andborderWidthAfter
- width of the left border. Those width are used to handle areas of border joins.horizontalRadius1
,verticalRadius1
,horizontalRadius2
andverticalRadius2
are used to draw rounded borders.- Parameters:
-
canvas
- PdfCanvas to be written to -
x1
- x coordinate of the beginning point of the element side, that should be bordered -
y1
- y coordinate of the beginning point of the element side, that should be bordered -
x2
- x coordinate of the ending point of the element side, that should be bordered -
y2
- y coordinate of the ending point of the element side, that should be bordered -
horizontalRadius1
- defines the horizontal radius of the border's first corner -
verticalRadius1
- defines the vertical radius of the border's first corner -
horizontalRadius2
- defines the horizontal radius of the border's second corner -
verticalRadius2
- defines the vertical radius of the border's second corner -
defaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinates -
borderWidthBefore
- defines width of the border that is before the current one -
borderWidthAfter
- defines width of the border that is after the current one
-
drawCellBorder
public abstract void drawCellBorder(PdfCanvas canvas, float x1, float y1, float x2, float y2, Border.Side defaultSide) Draws the border of a cell.- Parameters:
-
canvas
- PdfCanvas to be written to -
x1
- x coordinate of the beginning point of the element side, that should be bordered -
y1
- y coordinate of the beginning point of the element side, that should be bordered -
x2
- x coordinate of the ending point of the element side, that should be bordered -
y2
- y coordinate of the ending point of the element side, that should be bordered -
defaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinates
-
getType
public abstract int getType()Returns the type of theborder
- Returns:
- the type of border.
-
getColor
- Returns:
-
the
color
-
getOpacity
public float getOpacity()Gets the opacity of theborder
- Returns:
- the border opacity; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
-
getWidth
public float getWidth()Gets the width of theborder
- Returns:
- the width
-
setColor
- Parameters:
-
color
- The color
-
setWidth
public void setWidth(float width) Sets the width of theborder
- Parameters:
-
width
- The width
-
equals
Indicates whether the border is equal to the given border. The border type, width and color are considered during the comparison. -
hashCode
public int hashCode() -
getBorderSide
protected Border.Side getBorderSide(float x1, float y1, float x2, float y2, Border.Side defaultSide) Returns theside
corresponded to the line between two points. Notice that we consider the rectangle traversal to be clockwise. In case side couldn't be detected we will fallback to default side- Parameters:
-
x1
- the abscissa of the left-bottom point -
y1
- the ordinate of the left-bottom point -
x2
- the abscissa of the right-top point -
y2
- the ordinate of the right-top point -
defaultSide
- the default side of border - Returns:
-
the corresponded
side
-
getIntersectionPoint
protected Point getIntersectionPoint(Point lineBeg, Point lineEnd, Point clipLineBeg, Point clipLineEnd) Gets aPoint
in which two lines intersect.- Parameters:
-
lineBeg
- aPoint
which defines some point on the first line -
lineEnd
- aPoint
which defines another point on the first line -
clipLineBeg
- aPoint
which defines some point on the second line -
clipLineEnd
- aPoint
which defines another point on the second line - Returns:
-
the intersection
Point
-
getDotsGap
protected float getDotsGap(double distance, float initialGap) Adjusts the size of the gap between dots- Parameters:
-
distance
- theborder
length -
initialGap
- the initial size of the gap - Returns:
- the adjusted size of the gap
-
drawDiscontinuousBorders
protected void drawDiscontinuousBorders(PdfCanvas canvas, Rectangle boundingRectangle, float[] horizontalRadii, float[] verticalRadii, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter) Perform drawing operations to draw discontinuous borders. Used byDashedBorder
,DottedBorder
andRoundDotsBorder
.- Parameters:
-
canvas
- canvas to draw on -
boundingRectangle
- rectangle representing the bounding box of the drawing operations -
horizontalRadii
- the horizontal radius of the border's two corners -
verticalRadii
- the vertical radius of the border's two corners -
defaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinates -
borderWidthBefore
- defines width of the border that is before the current one -
borderWidthAfter
- defines width of the border that is after the current one
-
getStartingPointsForBorderSide
protected float[] getStartingPointsForBorderSide(float x1, float y1, float x2, float y2, Border.Side defaultSide) Calculate adjusted starting points for discontinuous borders, given two opposing points (A and B) that define the bounding rectangle- Parameters:
-
x1
- x-coordinate of point A -
y1
- y-ordinate of point A -
x2
- x-coordinate of point B -
y2
- y-ordinate of point B -
defaultSide
- default side of the border used to determine the side given by points A and B - Returns:
- float[] containing the adjusted starting points in the form {x1,y1,x2,y2}
-