CH.ifa.draw.standard
Class ConnectionTool

java.lang.Object
  extended by CH.ifa.draw.standard.AbstractTool
      extended by CH.ifa.draw.standard.ConnectionTool
All Implemented Interfaces:
Tool

public class ConnectionTool
extends AbstractTool

A tool that can be used to connect figures, to split connections, and to join two segments of a connection. ConnectionTools turns the visibility of the Connectors on when it enters a figure. The connection object to be created is specified by a prototype.


Design Patterns

 o Prototype
ConnectionTools creates the connection by cloning a prototype.


See Also:
ConnectionFigure, Object.clone()

Field Summary
 
Fields inherited from class CH.ifa.draw.standard.AbstractTool
fAnchorX, fAnchorY, fView
 
Constructor Summary
ConnectionTool(DrawingView view, ConnectionFigure prototype)
           
 
Method Summary
protected  ConnectionFigure createConnection()
          Creates the ConnectionFigure.
protected  ConnectionFigure createdFigure()
          Gets the currently created figure
 void deactivate()
          Deactivates the tool.
protected  ConnectionFigure findConnection(int x, int y, Drawing drawing)
          Finds an existing connection figure.
protected  Figure findConnectionStart(int x, int y, Drawing drawing)
          Finds a connection start figure.
protected  Figure findSource(int x, int y, Drawing drawing)
          Finds a connectable figure target.
protected  Figure findTarget(int x, int y, Drawing drawing)
          Finds a connectable figure target.
protected  Connector getEndConnector()
           
protected  Connector getStartConnector()
           
protected  Connector getTarget()
           
 void mouseDown(java.awt.event.MouseEvent e, int x, int y)
          Manipulates connections in a context dependent way.
 void mouseDrag(java.awt.event.MouseEvent e, int x, int y)
          Adjust the created connection or split segment.
 void mouseMove(java.awt.event.MouseEvent e, int x, int y)
          Handles mouse move events in the drawing view.
 void mouseUp(java.awt.event.MouseEvent e, int x, int y)
          Connects the figures if the mouse is released over another figure.
protected  void trackConnectors(java.awt.event.MouseEvent e, int x, int y)
           
 
Methods inherited from class CH.ifa.draw.standard.AbstractTool
activate, drawing, editor, keyDown, view
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConnectionTool

public ConnectionTool(DrawingView view,
                      ConnectionFigure prototype)
Method Detail

mouseMove

public void mouseMove(java.awt.event.MouseEvent e,
                      int x,
                      int y)
Handles mouse move events in the drawing view.

Specified by:
mouseMove in interface Tool
Overrides:
mouseMove in class AbstractTool

mouseDown

public void mouseDown(java.awt.event.MouseEvent e,
                      int x,
                      int y)
Manipulates connections in a context dependent way. If the mouse down hits a figure start a new connection. If the mousedown hits a connection split a segment or join two segments.

Specified by:
mouseDown in interface Tool
Overrides:
mouseDown in class AbstractTool

mouseDrag

public void mouseDrag(java.awt.event.MouseEvent e,
                      int x,
                      int y)
Adjust the created connection or split segment.

Specified by:
mouseDrag in interface Tool
Overrides:
mouseDrag in class AbstractTool

mouseUp

public void mouseUp(java.awt.event.MouseEvent e,
                    int x,
                    int y)
Connects the figures if the mouse is released over another figure.

Specified by:
mouseUp in interface Tool
Overrides:
mouseUp in class AbstractTool

deactivate

public void deactivate()
Description copied from class: AbstractTool
Deactivates the tool. This method is called whenever the user switches to another tool. Use this method to do some clean-up when the tool is switched. Subclassers should always call super.deactivate.

Specified by:
deactivate in interface Tool
Overrides:
deactivate in class AbstractTool

createConnection

protected ConnectionFigure createConnection()
Creates the ConnectionFigure. By default the figure prototype is cloned.


findSource

protected Figure findSource(int x,
                            int y,
                            Drawing drawing)
Finds a connectable figure target.


findTarget

protected Figure findTarget(int x,
                            int y,
                            Drawing drawing)
Finds a connectable figure target.


findConnection

protected ConnectionFigure findConnection(int x,
                                          int y,
                                          Drawing drawing)
Finds an existing connection figure.


createdFigure

protected ConnectionFigure createdFigure()
Gets the currently created figure


trackConnectors

protected void trackConnectors(java.awt.event.MouseEvent e,
                               int x,
                               int y)

findConnectionStart

protected Figure findConnectionStart(int x,
                                     int y,
                                     Drawing drawing)
Finds a connection start figure.


getStartConnector

protected Connector getStartConnector()

getEndConnector

protected Connector getEndConnector()

getTarget

protected Connector getTarget()