Package diva.canvas.connector
Class Blob
- java.lang.Object
-
- diva.canvas.connector.Blob
-
- All Implemented Interfaces:
ConnectorEnd
public class Blob extends java.lang.Object implements ConnectorEnd
An object that draws a blob of some kind on the end of a connector. The blob can be one of several styles, such as circle or diamond, and can either be draw filled or not. This is a low-level utility class, not a self-contained Figure.- Version:
- $Id$
- Author:
- John Reekie
-
-
Field Summary
Fields Modifier and Type Field Description static int
ARROW_CIRCLE_H
Arrow, circle, H style.static int
BLOB_CIRCLE
Specify a circle stylestatic int
BLOB_CIRCLE_DIAMOND
Specify a circle and a diamond stylestatic int
BLOB_DIAMOND
Specify a diamond stylestatic int
ERROR
Error style.java.awt.Stroke
narrowStroke
A narrow stroke.static int
STAR
Specify a star stylejava.awt.Stroke
stroke
The stroke.static int
TRIANGLE
Triangle style.
-
Constructor Summary
Constructors Constructor Description Blob()
Create a new circle blob at (0,0).Blob(double x, double y, double normal, int style)
Create a new blob at the given coordinates and in the given style.Blob(double x, double y, double normal, int style, double size, java.awt.Paint fillColor)
Create a new blob at the given coordinates and in the given style.Blob(int style)
Create a new blob at (0,0) in the given style.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.geom.Rectangle2D
getBounds()
Get the bounding box of the shape used to draw this connector end.void
getConnection(java.awt.geom.Point2D p)
Get the connection point into the given pointvoid
getOrigin(java.awt.geom.Point2D p)
Get the origin into the given point.double
getSizeUnit()
Get the size unit.int
getStyle()
Get the style.boolean
isFilled()
Test if the blob is filled or not.void
paint(java.awt.Graphics2D g)
Paint the blob.void
reshape()
Recalculate the shape of the blob.void
setFilled(boolean flag)
Set the flag that determines whether to fill the blob.void
setNormal(double angle)
Set the normal of the blob.void
setOrigin(double x, double y)
Set the end-point of the blob.void
setSizeUnit(double s)
Set the size unit.void
setStyle(int s)
Set the style.void
translate(double x, double y)
Translate the origin by the given amount.
-
-
-
Field Detail
-
BLOB_CIRCLE
public static final int BLOB_CIRCLE
Specify a circle style- See Also:
- Constant Field Values
-
BLOB_DIAMOND
public static final int BLOB_DIAMOND
Specify a diamond style- See Also:
- Constant Field Values
-
BLOB_CIRCLE_DIAMOND
public static final int BLOB_CIRCLE_DIAMOND
Specify a circle and a diamond style- See Also:
- Constant Field Values
-
STAR
public static final int STAR
Specify a star style- See Also:
- Constant Field Values
-
ARROW_CIRCLE_H
public static final int ARROW_CIRCLE_H
Arrow, circle, H style.- See Also:
- Constant Field Values
-
TRIANGLE
public static final int TRIANGLE
Triangle style.- See Also:
- Constant Field Values
-
ERROR
public static final int ERROR
Error style.- See Also:
- Constant Field Values
-
stroke
public java.awt.Stroke stroke
The stroke. This is needed to get the bounding box. As the default, we use a stroke width of 3.0 pixels, in order that redraw is clean even in the presence of anti-aliasing. Connectors that have non-unit stroke widths should set this variable to a stroke with appropriate width.
-
narrowStroke
public java.awt.Stroke narrowStroke
A narrow stroke.
-
-
Constructor Detail
-
Blob
public Blob()
Create a new circle blob at (0,0).
-
Blob
public Blob(int style)
Create a new blob at (0,0) in the given style.
-
Blob
public Blob(double x, double y, double normal, int style)
Create a new blob at the given coordinates and in the given style.
-
Blob
public Blob(double x, double y, double normal, int style, double size, java.awt.Paint fillColor)
Create a new blob at the given coordinates and in the given style.
-
-
Method Detail
-
getBounds
public java.awt.geom.Rectangle2D getBounds()
Get the bounding box of the shape used to draw this connector end.- Specified by:
getBounds
in interfaceConnectorEnd
-
getConnection
public void getConnection(java.awt.geom.Point2D p)
Get the connection point into the given point- Specified by:
getConnection
in interfaceConnectorEnd
-
getOrigin
public void getOrigin(java.awt.geom.Point2D p)
Get the origin into the given point.- Specified by:
getOrigin
in interfaceConnectorEnd
-
getSizeUnit
public double getSizeUnit()
Get the size unit.
-
getStyle
public int getStyle()
Get the style.
-
isFilled
public boolean isFilled()
Test if the blob is filled or not.
-
paint
public void paint(java.awt.Graphics2D g)
Paint the blob. This method assumes that the graphics context is already set up with the correct paint and stroke.- Specified by:
paint
in interfaceConnectorEnd
-
reshape
public void reshape()
Recalculate the shape of the blob.
-
setFilled
public void setFilled(boolean flag)
Set the flag that determines whether to fill the blob.
-
setNormal
public void setNormal(double angle)
Set the normal of the blob. The argument is the angle in radians away from the origin.- Specified by:
setNormal
in interfaceConnectorEnd
-
setOrigin
public void setOrigin(double x, double y)
Set the end-point of the blob.- Specified by:
setOrigin
in interfaceConnectorEnd
-
setSizeUnit
public void setSizeUnit(double s)
Set the size unit. This unit is used differently depending on the style, but is generally half the width of the blob.
-
setStyle
public void setStyle(int s)
Set the style.
-
translate
public void translate(double x, double y)
Translate the origin by the given amount.- Specified by:
translate
in interfaceConnectorEnd
-
-