ptolemy.vergil.actor
Class ActorViewerGraphController

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.actor.ActorViewerGraphController
All Implemented Interfaces:
GraphController, ExecutionListener, DebugListener, ValueListener
Direct Known Subclasses:
ActorEditorGraphController

public class ActorViewerGraphController
extends RunnableGraphController

A graph controller for the Ptolemy II schematic viewer. This controller contains a set of default node controllers for attributes, entities, links, ports, and relations. Those default controllers can be overridden by attributes of type NodeControllerFactory. The getNodeController() method determines which controller to return for each node.

In addition, this controller provides graph-wide operations that allow nodes to be moved and context menus to be created. It does not provide interaction for adding or removing nodes; those are provided by a derived class. If does provide toolbar buttons for executing the model (or if this is not the top level, delegating to the top level to execute). Right-clicking on the background will create a context-sensitive menu for the graph.

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

Nested Class Summary
 
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
protected  NamedObjController _attributeController
          The attribute controller.
protected  ActorController _classDefinitionController
          The class definition controller.
protected  ActorController _entityController
          The entity controller.
protected  NamedObjController _entityPortController
          The entity port controller.
protected  LinkController _linkController
          The link controller.
private  LocatableNodeController _locatableController
          The default controller, used only for instances of Locatable that have no container.
protected  NamedObjController _relationController
          The relation controller.
private  SelectionDragger _selectionDragger
           
 
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
ActorViewerGraphController()
          Create a new basic controller with default terminal and edge interactors and default context menus.
 
Method Summary
protected  void _addHotKeys(JGraph jgraph)
          Add hot keys to the actions in the given JGraph.
protected  void _createControllers()
          Create the controllers for nodes in this graph.
 void event(DebugEvent event)
          React to an event by highlighting the actor being iterated.
 EdgeController getEdgeController(java.lang.Object edge)
          Return the edge controller appropriate for the given node, which in this case is the same link controller returned by getLinkController().
 ActorController getEntityController()
          Return the value of the entity controller.
 NodeController getNodeController(java.lang.Object object)
          Return the node controller appropriate for the given object.
protected  void initializeInteraction()
          Initialize all interaction on the graph pane.
 void setConfiguration(Configuration configuration)
          Set the configuration.
 
Methods inherited from class ptolemy.vergil.basic.RunnableGraphController
_getManager, addToMenuAndToolbar, executionError, executionFinished, managerStateChanged
 
Methods inherited from class ptolemy.vergil.basic.WithIconGraphController
getNewPortLocation
 
Methods inherited from class ptolemy.vergil.basic.BasicGraphController
_initializeInteraction, 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

_attributeController

protected NamedObjController _attributeController
The attribute controller.


_classDefinitionController

protected ActorController _classDefinitionController
The class definition controller.


_entityController

protected ActorController _entityController
The entity controller.


_entityPortController

protected NamedObjController _entityPortController
The entity port controller.


_linkController

protected LinkController _linkController
The link controller.


_relationController

protected NamedObjController _relationController
The relation controller.


_locatableController

private LocatableNodeController _locatableController
The default controller, used only for instances of Locatable that have no container.


_selectionDragger

private SelectionDragger _selectionDragger
Constructor Detail

ActorViewerGraphController

public ActorViewerGraphController()
Create a new basic controller with default terminal and edge interactors and default context menus.

Method Detail

event

public void event(DebugEvent event)
React to an event by highlighting the actor being iterated. This effectively animates the execution.

Specified by:
event in interface DebugListener
Overrides:
event in class BasicGraphController
Parameters:
event - The debug event.

getEdgeController

public EdgeController getEdgeController(java.lang.Object edge)
Return the edge controller appropriate for the given node, which in this case is the same link controller returned by getLinkController().

Specified by:
getEdgeController in interface GraphController
Specified by:
getEdgeController in class AbstractGraphController
Parameters:
edge - The edge object.
Returns:
the edge controller.

getEntityController

public ActorController getEntityController()
Return the value of the entity controller. Callers may add context menus by calling
  getEntityController.addMenuItemFactory(new XXXDialogFactory);
  

Returns:
the entity controller

getNodeController

public NodeController getNodeController(java.lang.Object object)
Return the node controller appropriate for the given object. If the object is an instance of Vertex, then return the local relation controller. If it implements Locatable, then determine whether it is an Entity, Attribute, or Port, and return the appropriate default controller. If the argument is an instance of Port, then return the local port controller.

Specified by:
getNodeController in interface GraphController
Overrides:
getNodeController in class BasicGraphController
Parameters:
object - A Vertex, Locatable, or Port.
Returns:
the node controller

setConfiguration

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

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

_addHotKeys

protected void _addHotKeys(JGraph jgraph)
Add hot keys to the actions in the given JGraph.

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

_createControllers

protected void _createControllers()
Create the controllers for nodes in this graph. In this base class, controllers with PARTIAL 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 WithIconGraphController

initializeInteraction

protected void initializeInteraction()
Initialize all 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 WithIconGraphController