ptolemy.vergil.actor
Class IOPortController

java.lang.Object
  extended by diva.graph.BasicNodeController
      extended by ptolemy.vergil.basic.LocatableNodeController
          extended by ptolemy.vergil.basic.NamedObjController
              extended by ptolemy.vergil.basic.ParameterizedNodeController
                  extended by ptolemy.vergil.basic.IconController
                      extended by ptolemy.vergil.kernel.AttributeController
                          extended by ptolemy.vergil.actor.IOPortController
All Implemented Interfaces:
NodeController
Direct Known Subclasses:
MatchResultViewer.MatchResultPortController, TransformationEditor.TransformationPortController

public class IOPortController
extends AttributeController

This class provides interaction with nodes that represent Ptolemy II ports on an actor. It provides a double click binding and context menu entry to edit the parameters of the port ("Configure") and a command to get documentation. It can have one of two access levels, FULL or PARTIAL. If the access level is FULL, the the context menu also contains a command to rename the node. Note that whether the port is an input or output or multiport cannot be controlled via this interface. The "Configure Ports" command of the container should be invoked instead.

Since:
Ptolemy II 2.0
Version:
$Id: IOPortController.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Steve Neuendorffer and Edward A. Lee
Accepted Rating:
Red (johnr)
Proposed Rating:
Red (eal)

Nested Class Summary
 class IOPortController.EntityPortRenderer
          Render the ports of components as triangles.
 
Nested classes/interfaces inherited from class ptolemy.vergil.kernel.AttributeController
AttributeController.Access
 
Nested classes/interfaces inherited from class ptolemy.vergil.basic.IconController
IconController.IconRenderer
 
Field Summary
static double MULTIPORT_CONNECTION_SPACING
          The spacing between individual connections to a multiport.
 
Fields inherited from class ptolemy.vergil.kernel.AttributeController
_appearanceMenuActionFactory, _listenToAction, _renameAction, FULL, PARTIAL
 
Fields inherited from class ptolemy.vergil.basic.ParameterizedNodeController
_configureAction, _configureMenuFactory, _menuCreator, _menuFactory
 
Fields inherited from class ptolemy.vergil.basic.NamedObjController
_configuration
 
Fields inherited from class ptolemy.vergil.basic.LocatableNodeController
_decoratable, CLASS_ELEMENT_HIGHLIGHT_COLOR
 
Constructor Summary
IOPortController(GraphController controller)
          Create a port controller associated with the specified graph controller.
IOPortController(GraphController controller, AttributeController.Access access)
          Create a port controller associated with the specified graph controller.
 
Method Summary
protected static int _getCardinality(Port port)
          Deprecated. Use public getCardinality() method instead
protected  java.lang.String _getComponentType()
          Get the class label of the component.
protected static int _getDirection(int portRotation)
          Deprecated. Use public getDirection() method instead
static int getCardinality(Port port)
          Return one of {-270, -180, -90, 0, 90, 180, 270} specifying the orientation of a port.
static int getDirection(int portRotation)
          Return the direction associated with the specified angle, which is assumed to be one of {-270, -180, -90, 0, 90, 180, 270}.
 
Methods inherited from class ptolemy.vergil.kernel.AttributeController
addHotKeys, setConfiguration
 
Methods inherited from class ptolemy.vergil.basic.ParameterizedNodeController
getConfigureMenuFactory
 
Methods inherited from class ptolemy.vergil.basic.LocatableNodeController
_drawChildren, _getCompositeFigure, _hide, _isPropertySet, _renderNode, addNode, drawNode, getLocation, hasLocation, locateFigure, setLocation, setSnapResolution
 
Methods inherited from class diva.graph.BasicNodeController
addNode, addNode, addNode, clearNode, drawNode, getController, getNodeInteractor, getNodeRenderer, removeNode, setNodeInteractor, setNodeRenderer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MULTIPORT_CONNECTION_SPACING

public static final double MULTIPORT_CONNECTION_SPACING
The spacing between individual connections to a multiport.

See Also:
Constant Field Values
Constructor Detail

IOPortController

public IOPortController(GraphController controller)
Create a port controller associated with the specified graph controller. The controller is given full access.

Parameters:
controller - The associated graph controller.

IOPortController

public IOPortController(GraphController controller,
                        AttributeController.Access access)
Create a port controller associated with the specified graph controller.

Parameters:
controller - The associated graph controller.
access - The access level.
Method Detail

getCardinality

public static int getCardinality(Port port)
Return one of {-270, -180, -90, 0, 90, 180, 270} specifying the orientation of a port. This depends on whether the port is an input, output, or both, whether the port has a parameter named "_cardinal" that specifies a cardinality, and whether the containing actor has a parameter named "_rotatePorts" that specifies a rotation of the ports. In addition, if the containing actor has a parameter named "_flipPortsHorizonal" or "_flipPortsVertical" with value true, then any ports that end up on the left or right (top or bottom) will be reversed.

Parameters:
port - The port.
Returns:
One of {-270, -180, -90, 0, 90, 180, 270}.

getDirection

public static int getDirection(int portRotation)
Return the direction associated with the specified angle, which is assumed to be one of {-270, -180, -90, 0, 90, 180, 270}.

Parameters:
portRotation - The angle
Returns:
One of SwingUtilities.NORTH, SwingUtilities.EAST, SwingUtilities.SOUTH, or SwingUtilities.WEST.

_getCardinality

protected static int _getCardinality(Port port)
Deprecated. Use public getCardinality() method instead

Return one of {-270, -180, -90, 0, 90, 180, 270} specifying the orientation of a port. This depends on whether the port is an input, output, or both, whether the port has a parameter named "_cardinal" that specifies a cardinality, and whether the containing actor has a parameter named "_rotatePorts" that specifies a rotation of the ports. In addition, if the containing actor has a parameter named "_flipPortsHorizonal" or "_flipPortsVertical" with value true, then any ports that end up on the left or right (top or bottom) will be reversed.

Parameters:
port - The port.
Returns:
One of {-270, -180, -90, 0, 90, 180, 270}.
See Also:
getCardinality(Port)

_getComponentType

protected java.lang.String _getComponentType()
Get the class label of the component.

Overrides:
_getComponentType in class AttributeController
Returns:
the class label of the component.

_getDirection

protected static int _getDirection(int portRotation)
Deprecated. Use public getDirection() method instead

Return the direction associated with the specified angle, which is assumed to be one of {-270, -180, -90, 0, 90, 180, 270}.

Parameters:
portRotation - The angle
Returns:
One of SwingUtilities.NORTH, SwingUtilities.EAST, SwingUtilities.SOUTH, or SwingUtilities.WEST.
See Also:
getDirection(int)