ptolemy.vergil.actor
Class ActorController

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.ActorController
All Implemented Interfaces:
NodeController
Direct Known Subclasses:
ActorInstanceController, ClassDefinitionController, MatchResultViewer.MatchResultActorController, TransformationEditor.TransformationActorController

public abstract class ActorController
extends AttributeController

This class provides interaction with nodes that represent Ptolemy II entities. It provides a double click binding and context menu entry to edit the parameters of the node ("Configure"), a command to get documentation, and a command to open an actor. 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 and to configure its ports. In addition, a layout algorithm is applied so that the figures for ports are automatically placed on the sides of the figure for the entity.

NOTE: This class is abstract because it is missing the code for laying out ports. Use the concrete subclasses ActorInstanceController or ClassDefinitionController instead.

Since:
Ptolemy II 2.0
Version:
$Id: ActorController.java 57046 2010-01-27 23:35:53Z cxh $
Author:
Steve Neuendorffer and Edward A. Lee, Elaine Cheong
See Also:
ActorInstanceController, ClassDefinitionController
Accepted Rating:
Red (johnr)
Proposed Rating:
Red (eal)

Nested Class Summary
 class ActorController.EntityLayout
          This layout algorithm is responsible for laying out the ports within an entity.
static class ActorController.ListenToActorAction
          An action to listen to debug messages in the actor.
private  class ActorController.LookInsideAction
          An action to open a composite.
private  class ActorController.OpenInstanceAction
          An action to open an instance.
private  class ActorController.SaveInLibraryAction
          An action to save this actor in the library.
 
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
protected  AttributeController.Access _access
          The access level defined in the constructor.
private  BreakpointDialogFactory _breakpointDialogFactory
           
private  ConfigureUnitsAction _configureUnitsAction
           
protected  EditIconAction _editIconAction
          The action that handles edit custom icon.
protected  RotateOrFlipPorts _flipPortsHorizontal
          An action that handles flipping the ports horizontally.
protected  RotateOrFlipPorts _flipPortsVertical
          An action that handles flipping the ports vertically.
protected  ActorController.LookInsideAction _lookInsideAction
          The action that handles opening an actor.
protected  ActorController.OpenInstanceAction _openInstanceAction
          The action that handles opening an instance.
private  PortDialogAction _portDialogAction
           
private static java.awt.Font _portLabelFont
           
protected  RemoveIconAction _removeIconAction
          The action that handles removing a custom icon.
protected  RotateOrFlipPorts _rotatePortsClockwise
          An action that handles rotating the ports by 90 degrees.
protected  RotateOrFlipPorts _rotatePortsCounterclockwise
          An action that handles rotating the ports by 90 degrees.
 
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
ActorController(GraphController controller)
          Create an entity controller associated with the specified graph controller with full access.
ActorController(GraphController controller, AttributeController.Access access)
          Create an entity controller associated with the specified graph controller.
 
Method Summary
private  void _createAppearanceSubmenu()
          Create an Appearance submenu.
private  LabelFigure _createPortLabelFigure(java.lang.String string, java.awt.Font font, double x, double y, int direction)
           
protected  java.lang.String _getComponentType()
          Get the class label of the component.
 void addHotKeys(JGraph jgraph)
          Add hot keys to the actions in the given JGraph.
 void addMenuItemFactory(MenuItemFactory menuItemFactory)
          If access is FULL, then add the jni.ArgumentDailogFactory() to _menuFactory.
 void setConfiguration(Configuration configuration)
          Set the configuration.
 
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

_access

protected AttributeController.Access _access
The access level defined in the constructor.


_editIconAction

protected EditIconAction _editIconAction
The action that handles edit custom icon.


_flipPortsHorizontal

protected RotateOrFlipPorts _flipPortsHorizontal
An action that handles flipping the ports horizontally.


_flipPortsVertical

protected RotateOrFlipPorts _flipPortsVertical
An action that handles flipping the ports vertically.


_lookInsideAction

protected ActorController.LookInsideAction _lookInsideAction
The action that handles opening an actor. This is accessed by by ActorViewerController to create a hot key for the editor. The name "lookInside" is historical and preserved to keep backward compatibility with subclasses.


_openInstanceAction

protected ActorController.OpenInstanceAction _openInstanceAction
The action that handles opening an instance.


_removeIconAction

protected RemoveIconAction _removeIconAction
The action that handles removing a custom icon.


_rotatePortsClockwise

protected RotateOrFlipPorts _rotatePortsClockwise
An action that handles rotating the ports by 90 degrees.


_rotatePortsCounterclockwise

protected RotateOrFlipPorts _rotatePortsCounterclockwise
An action that handles rotating the ports by 90 degrees.


_breakpointDialogFactory

private BreakpointDialogFactory _breakpointDialogFactory

_configureUnitsAction

private ConfigureUnitsAction _configureUnitsAction

_portDialogAction

private PortDialogAction _portDialogAction

_portLabelFont

private static java.awt.Font _portLabelFont
Constructor Detail

ActorController

public ActorController(GraphController controller)
Create an entity controller associated with the specified graph controller with full access.

Parameters:
controller - The associated graph controller.

ActorController

public ActorController(GraphController controller,
                       AttributeController.Access access)
Create an entity controller associated with the specified graph controller.

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

addMenuItemFactory

public void addMenuItemFactory(MenuItemFactory menuItemFactory)
If access is FULL, then add the jni.ArgumentDailogFactory() to _menuFactory. If access is not FULL, then do nothing.

Parameters:
menuItemFactory - The MenuItemFactory to be added.

addHotKeys

public void addHotKeys(JGraph jgraph)
Add hot keys to the actions in the given JGraph. It would be better that this method was added higher in the hierarchy. Now most controllers

Overrides:
addHotKeys in class AttributeController
Parameters:
jgraph - The JGraph to which hot keys are to be added.

setConfiguration

public void setConfiguration(Configuration configuration)
Set the configuration. This is used to open documentation files.

Overrides:
setConfiguration in class AttributeController
Parameters:
configuration - The configuration.

_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.

_createPortLabelFigure

private LabelFigure _createPortLabelFigure(java.lang.String string,
                                           java.awt.Font font,
                                           double x,
                                           double y,
                                           int direction)

_createAppearanceSubmenu

private void _createAppearanceSubmenu()
Create an Appearance submenu.