Class Border
- Direct Known Subclasses:
AbstractFormBorder
,Border3D
,DashedBorder
,DottedBorder
,DoubleBorder
,FixedDashedBorder
,RoundDotsBorder
,SolidBorder
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Enumerates the different sides of the rectangle. -
Field Summary
FieldsModifier 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.private static final int
private static final int
private static final int
private static final int
private static final int
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.private int
The hash value for the 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
Constructors -
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:
-
ARC_RIGHT_DEGREE
private static final int ARC_RIGHT_DEGREE- See Also:
-
ARC_TOP_DEGREE
private static final int ARC_TOP_DEGREE- See Also:
-
ARC_LEFT_DEGREE
private static final int ARC_LEFT_DEGREE- See Also:
-
ARC_BOTTOM_DEGREE
private static final int ARC_BOTTOM_DEGREE- See Also:
-
ARC_QUARTER_CLOCKWISE_EXTENT
private static final int ARC_QUARTER_CLOCKWISE_EXTENT- 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. -
hash
private int hashThe hash value for 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 havewidth
- the width which the border should have
-
Border
- Parameters:
color
- the color which the border should havewidth
- the width which the border should haveopacity
- 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 tox1
- x coordinate of the beginning point of the element side, that should be borderedy1
- y coordinate of the beginning point of the element side, that should be borderedx2
- x coordinate of the ending point of the element side, that should be borderedy2
- y coordinate of the ending point of the element side, that should be bordereddefaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinatesborderWidthBefore
- defines width of the border that is before the current oneborderWidthAfter
- defines width of the border that is after the current one
-
draw
Draw borders around the target rectangle.- Parameters:
canvas
- PdfCanvas to be written torectangle
- 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 tox1
- x coordinate of the beginning point of the element side, that should be borderedy1
- y coordinate of the beginning point of the element side, that should be borderedx2
- x coordinate of the ending point of the element side, that should be borderedy2
- y coordinate of the ending point of the element side, that should be borderedborderRadius
- defines the radius of the element's cornersdefaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinatesborderWidthBefore
- defines width of the border that is before the current oneborderWidthAfter
- 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 tox1
- x coordinate of the beginning point of the element side, that should be borderedy1
- y coordinate of the beginning point of the element side, that should be borderedx2
- x coordinate of the ending point of the element side, that should be borderedy2
- y coordinate of the ending point of the element side, that should be borderedhorizontalRadius1
- defines the horizontal radius of the border's first cornerverticalRadius1
- defines the vertical radius of the border's first cornerhorizontalRadius2
- defines the horizontal radius of the border's second cornerverticalRadius2
- defines the vertical radius of the border's second cornerdefaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinatesborderWidthBefore
- defines width of the border that is before the current oneborderWidthAfter
- 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 tox1
- x coordinate of the beginning point of the element side, that should be borderedy1
- y coordinate of the beginning point of the element side, that should be borderedx2
- x coordinate of the ending point of the element side, that should be borderedy2
- y coordinate of the ending point of the element side, that should be bordereddefaultSide
- 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 pointy1
- the ordinate of the left-bottom pointx2
- the abscissa of the right-top pointy2
- the ordinate of the right-top pointdefaultSide
- 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 linelineEnd
- aPoint
which defines another point on the first lineclipLineBeg
- aPoint
which defines some point on the second lineclipLineEnd
- 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
lengthinitialGap
- 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 onboundingRectangle
- rectangle representing the bounding box of the drawing operationshorizontalRadii
- the horizontal radius of the border's two cornersverticalRadii
- the vertical radius of the border's two cornersdefaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinatesborderWidthBefore
- defines width of the border that is before the current oneborderWidthAfter
- 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 Ay1
- y-ordinate of point Ax2
- x-coordinate of point By2
- y-ordinate of point BdefaultSide
- 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}
-