Package diva.canvas.connector
Class ManhattanConnector
- java.lang.Object
-
- diva.canvas.AbstractFigure
-
- diva.canvas.connector.AbstractConnector
-
- diva.canvas.connector.ManhattanConnector
-
- All Implemented Interfaces:
CanvasComponent
,Connector
,Figure
,VisibleComponent
,UserObjectContainer
- Direct Known Subclasses:
LinkManhattanConnector
public class ManhattanConnector extends AbstractConnector
A Connector that draws itself with perpendicular lines. To help it route itself, the connector contains an instance of ManhattanRouter, which can be changed to create other kinds of (or smarter) connectors. By default the connector routes itself with rounded corners, which tend to look a little nicer in complex views. To get standard right angles at the corners, set the bend radius to zero.- Version:
- $Id$
- Author:
- John Reekie, Michael Shilman
-
-
Field Summary
Fields Modifier and Type Field Description protected java.awt.geom.Point2D
_labelLocation
The location to attach the label to.
-
Constructor Summary
Constructors Constructor Description ManhattanConnector(Site tail, Site head)
Create a new manhattan connector between the given sites.ManhattanConnector(Site tail, Site head, ManhattanRouter router)
Create a new manhattan connector between the given sites and with the given router.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getBendRadius()
Return the maximum bend radius of the manhattan-routed edge.ManhattanRouter
getRouter()
Return the router.void
repositionLabel()
Tell the connector to reposition the text label.void
route()
Tell the connector to route itself between the current positions of the head and tail sites.void
setBendRadius(double r)
Set the maximum bend radius of the manhattan-routed edge.void
setRouter(ManhattanRouter router)
Set the router and route again.void
translate(double x, double y)
Translate the connector.-
Methods inherited from class diva.canvas.connector.AbstractConnector
getBounds, getDashArray, getHeadEnd, getHeadSite, getLabelFigure, getLineWidth, getShape, getStroke, getStrokePaint, getTailEnd, getTailSite, headMoved, hit, intersects, paint, reroute, setDashArray, setHeadEnd, setHeadSite, setLabelFigure, setLineWidth, setShape, setStroke, setStrokePaint, setTailEnd, setTailSite, tailMoved, transform
-
Methods inherited from class diva.canvas.AbstractFigure
contains, getInteractor, getLayer, getOrigin, getParent, getToolTipText, getTransformContext, getUserObject, isVisible, paint, repaint, repaint, setInteractor, setParent, setToolTipText, setUserObject, setVisible
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface diva.canvas.CanvasComponent
getTransformContext, repaint, repaint
-
Methods inherited from interface diva.canvas.Figure
contains, getInteractor, getLayer, getOrigin, getParent, getToolTipText, setInteractor, setParent, setToolTipText
-
Methods inherited from interface diva.util.UserObjectContainer
getUserObject, setUserObject
-
Methods inherited from interface diva.canvas.VisibleComponent
isVisible, paint, setVisible
-
-
-
-
Constructor Detail
-
ManhattanConnector
public ManhattanConnector(Site tail, Site head)
Create a new manhattan connector between the given sites. The connector is drawn with a width of one and in black. The router is an instance of BasicManhattanRouter. The connector is not routed until route() is called. The corners of the connector will be rounded with a bend radius of 50.
-
ManhattanConnector
public ManhattanConnector(Site tail, Site head, ManhattanRouter router)
Create a new manhattan connector between the given sites and with the given router. The connector is drawn with a width of one and in black. The connector is routed between the head and tail sites. The corners of the connector will be rounded with a bend radius of 50.
-
-
Method Detail
-
getRouter
public ManhattanRouter getRouter()
Return the router.
-
getBendRadius
public double getBendRadius()
Return the maximum bend radius of the manhattan-routed edge. A value of zero means that the corners of the route are square; the larger the value, the more curvy the corners will be.
-
repositionLabel
public void repositionLabel()
Tell the connector to reposition the text label.- Specified by:
repositionLabel
in classAbstractConnector
-
route
public void route()
Tell the connector to route itself between the current positions of the head and tail sites.- Specified by:
route
in interfaceConnector
- Specified by:
route
in classAbstractConnector
-
setBendRadius
public void setBendRadius(double r)
Set the maximum bend radius of the manhattan-routed edge. A value of zero means that the corners of the route are square; the larger the value, the more curvy the corners will be.- See Also:
getBendRadius()
-
setRouter
public void setRouter(ManhattanRouter router)
Set the router and route again.
-
translate
public void translate(double x, double y)
Translate the connector. This method is implemented, since controllers may wish to translate connectors when the sites at both ends are moved the same distance.- Specified by:
translate
in interfaceFigure
- Specified by:
translate
in classAbstractConnector
- Parameters:
x
- The x value to be moved.y
- The y value to be moved.
-
-