diva.canvas.connector
Class ManhattanConnector

java.lang.Object
  extended by diva.canvas.AbstractFigure
      extended by diva.canvas.connector.AbstractConnector
          extended by diva.canvas.connector.ManhattanConnector
All Implemented Interfaces:
CanvasComponent, Connector, Figure, VisibleComponent, UserObjectContainer

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:
$Revision: 1.19 $
Author:
John Reekie, Michael Shilman

Constructor Summary
ManhattanConnector(Site tail, Site head)
          Create a new manhattan connector between the given sites.
 
Method Summary
 double getBendRadius()
          Return the maximum bend radius of the manhattan-routed edge.
 Shape getCurvedRoute(Polyline2D route)
          Apply a bend radius to the manhattan route.
 void headMoved(double dx, double dy)
          Inform the connector that the head site has moved.
 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 tailMoved(double dx, double dy)
          Inform the connector that the tail site has moved.
 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, hit, intersects, paint, reroute, setDashArray, setHeadEnd, setHeadSite, setLabelFigure, setLineWidth, setShape, setStroke, setStrokePaint, setTailEnd, setTailSite, 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.Figure
contains, getInteractor, getLayer, getOrigin, getParent, getToolTipText, setInteractor, setParent, setToolTipText
 
Methods inherited from interface diva.canvas.VisibleComponent
isVisible, paint, setVisible
 
Methods inherited from interface diva.canvas.CanvasComponent
getTransformContext, repaint, repaint
 
Methods inherited from interface diva.util.UserObjectContainer
getUserObject, setUserObject
 

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.

Method Detail

getCurvedRoute

public Shape getCurvedRoute(Polyline2D route)
Apply a bend radius to the manhattan route.


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.


headMoved

public void headMoved(double dx,
                      double dy)
Inform the connector that the head site has moved. This method reroutes the unpinned segments at the head end of the connector.

Specified by:
headMoved in interface Connector
Overrides:
headMoved in class AbstractConnector

repositionLabel

public void repositionLabel()
Tell the connector to reposition the text label.

Specified by:
repositionLabel in class AbstractConnector

route

public void route()
Tell the connector to route itself between the current positions of the head and tail sites.

Specified by:
route in interface Connector
Specified by:
route in class AbstractConnector

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()

tailMoved

public void tailMoved(double dx,
                      double dy)
Inform the connector that the tail site has moved. This method reroutes the unpinned segments at the tail end of the connector.

Specified by:
tailMoved in interface Connector
Overrides:
tailMoved in class AbstractConnector

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 interface Figure
Specified by:
translate in class AbstractConnector


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.