ptolemy.vergil.modal
Class FSMGraphController

java.lang.Object
  extended by diva.graph.AbstractGraphController
      extended by ptolemy.vergil.basic.BasicGraphController
          extended by ptolemy.vergil.basic.WithIconGraphController
              extended by ptolemy.vergil.basic.RunnableGraphController
                  extended by ptolemy.vergil.modal.FSMViewerGraphController
                      extended by ptolemy.vergil.modal.FSMGraphController
All Implemented Interfaces:
GraphController, ExecutionListener, DebugListener, ValueListener
Direct Known Subclasses:
FmvAutomatonGraphController, InterfaceAutomatonGraphController, MatchResultViewer.MatchResultFSMGraphController, PteraGraphController, TransformationEditor.TransformationFSMGraphController

public class FSMGraphController
extends FSMViewerGraphController

A Graph Controller for FSM models. This controller allows states to be dragged and dropped onto its graph. Arcs can be created by control-clicking and dragging from one state to another.

Since:
Ptolemy II 8.0
Version:
$Id: FSMGraphController.java 57044 2010-01-27 22:41:05Z cxh $
Author:
Steve Neuendorffer, Contributor: Edward A. Lee
Accepted Rating:
Red (johnr)
Proposed Rating:
Red (eal)

Nested Class Summary
protected  class FSMGraphController.LinkCreator
          An interactor that interactively drags edges from one terminal to another.
 class FSMGraphController.NewStateAction
          An action to create a new state.
 
Nested classes/interfaces inherited from class ptolemy.vergil.basic.WithIconGraphController
WithIconGraphController.NewPortAction
 
Nested classes/interfaces inherited from class ptolemy.vergil.basic.BasicGraphController
BasicGraphController.OpenBaseClassAction, BasicGraphController.SchematicContextMenuFactory, BasicGraphController.UnitSolverDialogAction
 
Field Summary
private  ConfigureUnitsAction _configureUnitsAction
           
private  FSMGraphController.LinkCreator _linkCreator
          The interactor that interactively creates edges.
private  javax.swing.Action _newInOutMultiportAction
          Action for creating a new inout multiport.
private  javax.swing.Action _newInOutPortAction
          Action for creating a new input/output port.
private  javax.swing.Action _newInputMultiportAction
          Action for creating a new input multiport.
private  javax.swing.Action _newInputPortAction
          Action for creating a new input port.
private  javax.swing.Action _newOutputMultiportAction
          Action for creating a new output multiport.
private  javax.swing.Action _newOutputPortAction
          Action for creating a new output port.
private  FSMGraphController.NewStateAction _newStateAction
          The action for creating states.
private  PortDialogAction _portDialogAction
          The port dialog factory.
private static Location _prototypeState
          Prototype state for rendering.
private  MouseFilter _shortcutFilter
          The filter for shortcut operations.
 
Fields inherited from class ptolemy.vergil.modal.FSMViewerGraphController
_attributeController, _modalTransitionController, _stateController, _transitionController
 
Fields inherited from class ptolemy.vergil.basic.WithIconGraphController
_editIconAction, _portController, _removeIconAction
 
Fields inherited from class ptolemy.vergil.basic.BasicGraphController
_animated, _animationRenderer, _configureAction, _configureMenuFactory, _menuCreator, _menuFactory, _openBaseClassAction, _unitSolverDialogAction
 
Constructor Summary
FSMGraphController()
          Create a new basic controller with default terminal and edge interactors.
 
Method Summary
protected  void _createControllers()
          Create the controllers for nodes in this graph.
protected  void _initializeInteraction(NamedObjController controller)
          Initialize interactions for the specified controller.
 void addToMenuAndToolbar(javax.swing.JMenu menu, javax.swing.JToolBar toolbar)
          Add commands to the specified menu and toolbar, as appropriate for this controller.
protected  void initializeInteraction()
          Initialize interaction on the graph pane.
 void setConfiguration(Configuration configuration)
          Set the configuration.
 
Methods inherited from class ptolemy.vergil.modal.FSMViewerGraphController
_addHotKeys, event, getEdgeController, getNodeController
 
Methods inherited from class ptolemy.vergil.basic.RunnableGraphController
_getManager, executionError, executionFinished, managerStateChanged
 
Methods inherited from class ptolemy.vergil.basic.WithIconGraphController
getNewPortLocation
 
Methods inherited from class ptolemy.vergil.basic.BasicGraphController
clearAnimation, getAnimationDelay, getConfiguration, getConfigureMenuFactory, getFrame, message, setAnimationDelay, setFigure, setFrame, valueChanged
 
Methods inherited from class diva.graph.AbstractGraphController
addEdge, addEdge, addGraphViewListener, addNode, addNode, addNode, addNode, clear, clearEdge, clearNode, dispatch, drawEdge, drawNode, drawNode, getFigure, getGraphModel, getGraphPane, getSelectionModel, removeEdge, removeGraphViewListener, removeNode, rerender, rerenderEdge, rerenderNode, setGraphModel, setGraphPane, setSelectionModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_configureUnitsAction

private ConfigureUnitsAction _configureUnitsAction

_linkCreator

private FSMGraphController.LinkCreator _linkCreator
The interactor that interactively creates edges.


_newStateAction

private FSMGraphController.NewStateAction _newStateAction
The action for creating states.


_shortcutFilter

private MouseFilter _shortcutFilter
The filter for shortcut operations. This is used for creation of relations and creation of links from relations. Under PC, this is a control-1 click. Under Mac OS X, the control key is used for context menus and this corresponds to the command-1 click. For details, see the Apple java archive http://lists.apple.com/archives/java-dev User: archives, passwd: archives


_newInputPortAction

private javax.swing.Action _newInputPortAction
Action for creating a new input port.


_newOutputPortAction

private javax.swing.Action _newOutputPortAction
Action for creating a new output port.


_newInOutPortAction

private javax.swing.Action _newInOutPortAction
Action for creating a new input/output port.


_newInputMultiportAction

private javax.swing.Action _newInputMultiportAction
Action for creating a new input multiport.


_newOutputMultiportAction

private javax.swing.Action _newOutputMultiportAction
Action for creating a new output multiport.


_newInOutMultiportAction

private javax.swing.Action _newInOutMultiportAction
Action for creating a new inout multiport.


_portDialogAction

private PortDialogAction _portDialogAction
The port dialog factory.


_prototypeState

private static Location _prototypeState
Prototype state for rendering.

Constructor Detail

FSMGraphController

public FSMGraphController()
Create a new basic controller with default terminal and edge interactors.

Method Detail

addToMenuAndToolbar

public void addToMenuAndToolbar(javax.swing.JMenu menu,
                                javax.swing.JToolBar toolbar)
Add commands to the specified menu and toolbar, as appropriate for this controller. In this class, commands are added to create ports and relations.

Overrides:
addToMenuAndToolbar in class RunnableGraphController
Parameters:
menu - The menu to add to, or null if none.
toolbar - The toolbar to add to, or null if none.

setConfiguration

public void setConfiguration(Configuration configuration)
Set the configuration. The configuration is used when opening documentation files.

Overrides:
setConfiguration in class FSMViewerGraphController
Parameters:
configuration - The configuration.
See Also:
BasicGraphController.getConfiguration()

_createControllers

protected void _createControllers()
Create the controllers for nodes in this graph. In this class, controllers with FULL access are created. This is called by the constructor, so derived classes that override this must be careful not to reference local variables defined in the derived classes, because the derived classes will not have been fully constructed by the time this is called.

Overrides:
_createControllers in class FSMViewerGraphController

initializeInteraction

protected void initializeInteraction()
Initialize interaction on the graph pane. This method is called by the setGraphPane() method of the superclass. This initialization cannot be done in the constructor because the controller does not yet have a reference to its pane at that time.

Overrides:
initializeInteraction in class FSMViewerGraphController

_initializeInteraction

protected void _initializeInteraction(NamedObjController controller)
Initialize interactions for the specified controller. This method is called when a new controller is constructed. In this class, this method attaches a link creator to the controller if the controller is an instance of StateController.

Overrides:
_initializeInteraction in class BasicGraphController
Parameters:
controller - The controller for which to initialize interaction.