ptolemy.vergil.fsm.modal
Class HierarchicalStateController

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.fsm.StateController
                              extended by ptolemy.vergil.fsm.modal.HierarchicalStateController
All Implemented Interfaces:
NodeController

public class HierarchicalStateController
extends StateController

This class provides interaction with nodes that represent hierarchical states in an FSM graph. Hierarchical states are those with refinements, and what this adds to the base class is the ability to add a new refinement or remove a refinement via a context menu command. The base class provides a double click binding to edit the parameters of the state, and context menu commands to edit parameters ("Configure"), rename, look inside, and get documentation.

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

Nested Class Summary
 class HierarchicalStateController.AddRefinementAction
          An action to add a new refinement.
static class HierarchicalStateController.RemoveRefinementAction
          Action to remove refinements.
 
Nested classes/interfaces inherited from class ptolemy.vergil.fsm.StateController
StateController.LookInsideAction, StateController.StateRenderer
 
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  HierarchicalStateController.AddRefinementAction _addRefinementAction
          The action that adds a refinement.
protected  StateController.LookInsideAction _lookInsideAction
          The action that handles look inside.
protected  HierarchicalStateController.RemoveRefinementAction _removeRefinementAction
          The action that removes a refinement.
 
Fields inherited from class ptolemy.vergil.fsm.StateController
_editIconAction, _removeIconAction
 
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
HierarchicalStateController(GraphController controller)
          Create a state controller associated with the specified graph controller.
HierarchicalStateController(GraphController controller, AttributeController.Access access)
          Create a state controller associated with the specified graph controller.
 
Method Summary
protected  java.util.Map getRefinementClasses()
          Return a map with the keys as the names of the refinement types, and the values as the names of the classes that implement those refinement types.
 
Methods inherited from class ptolemy.vergil.kernel.AttributeController
_getComponentType, 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

_addRefinementAction

protected HierarchicalStateController.AddRefinementAction _addRefinementAction
The action that adds a refinement.


_lookInsideAction

protected StateController.LookInsideAction _lookInsideAction
The action that handles look inside. This is accessed by by ActorViewerController to create a hot key for the editor.


_removeRefinementAction

protected HierarchicalStateController.RemoveRefinementAction _removeRefinementAction
The action that removes a refinement.

Constructor Detail

HierarchicalStateController

public HierarchicalStateController(GraphController controller)
Create a state controller associated with the specified graph controller.

Parameters:
controller - The associated graph controller.

HierarchicalStateController

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

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

getRefinementClasses

protected java.util.Map getRefinementClasses()
Return a map with the keys as the names of the refinement types, and the values as the names of the classes that implement those refinement types.

Returns:
The map of supported refinement types.