Overview Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

ptolemy.vergil.basic
Class BasicGraphController

java.lang.Object
 extended bydiva.graph.AbstractGraphController
 extended byptolemy.vergil.basic.BasicGraphController
All Implemented Interfaces:
DebugListener, GraphController, ValueListener
Direct Known Subclasses:
EditIconGraphController, WithIconGraphController

public abstract class BasicGraphController
extends AbstractGraphController
implements DebugListener, ValueListener

A base class for Ptolemy II graph controllers. This extends the base class with an association with a configuration. The configuration is central to a Ptolemy GUI, and is used by derived classes to perform various functions such as opening models or their documentation. The class also provides a strategy pattern interface for a controller to add commands to the menu or toolbar of the frame it is controlling.

Since:
Ptolemy II 2.0
Version:
$Id: BasicGraphController.java,v 1.63.4.1 2006年12月30日 22:26:27 cxh Exp $
Author:
Steve Neuendorffer and Edward A. Lee
Accepted Rating:
Red (johnr)
Proposed Rating:
Red (eal)

Nested Class Summary
class BasicGraphController.OpenBaseClassAction
An action that will open the base class of a subclass or the class of an instance.
static class BasicGraphController.SchematicContextMenuFactory
Factory for context menus.
class BasicGraphController.UnitSolverDialogAction
An action that will create a UnitSolverDialog.
Field Summary
protected Figure _animated
Currently animated state, if any.
protected SelectionRenderer _animationRenderer
Renderer for animation.
protected static ConfigureAction _configureAction
The configure action.
protected MenuCreator _menuCreator
The interactor for creating context sensitive menus on the graph itself.
protected PtolemyMenuFactory _menuFactory
The factory belonging to the menu creator.
protected BasicGraphController.OpenBaseClassAction _openBaseClassAction
The open base class action.
protected BasicGraphController.UnitSolverDialogAction _unitSolverDialogAction
The UnitSolverDialog action.
Constructor Summary
BasicGraphController()
Create a new basic controller.
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.
void clearAnimation()
Clear any animation highlight that might currently be active.
void event(DebugEvent event)
React to an event.
long getAnimationDelay()
Get the time delay for animation.
Configuration getConfiguration()
Return the configuration that has been specified by setConfiguration(), or null if none.
BasicGraphFrame getFrame()
Get the graph frame, or null if there is none.
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 message(java.lang.String message)
React to a debug message.
void setAnimationDelay(long time)
Set the time delay for animation.
void setConfiguration(Configuration configuration)
Set the configuration.
void setFigure(java.lang.Object semanticObject, Figure figure)
Set the figure associated with the given semantic object, and if that semantic object is Settable, then set up a value listener so that if its value changes, then the valueChanged() method is invoked.
void setFrame(BasicGraphFrame frame)
Set the graph frame.
void valueChanged(Settable settable)
React to the fact that the specified Settable has changed.
Methods inherited from class diva.graph.AbstractGraphController
addEdge, addEdge, addGraphViewListener, addNode, addNode, addNode, addNode, clear, clearEdge, clearNode, dispatch, drawEdge, drawNode, drawNode, getEdgeController, 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

_animated

protected Figure _animated
Currently animated state, if any.


_animationRenderer

protected SelectionRenderer _animationRenderer
Renderer for animation.


_configureAction

protected static ConfigureAction _configureAction
The configure action.


_menuCreator

protected MenuCreator _menuCreator
The interactor for creating context sensitive menus on the graph itself.


_menuFactory

protected PtolemyMenuFactory _menuFactory
The factory belonging to the menu creator.


_openBaseClassAction

protected BasicGraphController.OpenBaseClassAction _openBaseClassAction
The open base class action.


_unitSolverDialogAction

protected BasicGraphController.UnitSolverDialogAction _unitSolverDialogAction
The UnitSolverDialog action.

Constructor Detail

BasicGraphController

public BasicGraphController()
Create a new basic controller.

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 base class, nothing is added.

Parameters:
menu - The menu to add to, or null if none.
toolbar - The toolbar to add to, or null if none.

clearAnimation

public void clearAnimation()
Clear any animation highlight that might currently be active.


event

public void event(DebugEvent event)
React to an event. This base class does nothing.

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

getAnimationDelay

public long getAnimationDelay()
Get the time delay for animation. After highlighting, derived classes are expected to sleep for the specified amount of time, in milliseconds.

Returns:
The animation delay set by setAnimationDelay().
See Also:
setAnimationDelay(long)

getConfiguration

public Configuration getConfiguration()
Return the configuration that has been specified by setConfiguration(), or null if none.

Returns:
The configuration.
See Also:
setConfiguration(Configuration)

getFrame

public BasicGraphFrame getFrame()
Get the graph frame, or null if there is none. This is used by some of the controllers to mark the modified bit of the frame and to update any dependents.

Returns:
The graph frame, or null if there is none.
See Also:
setFrame(BasicGraphFrame)

getNodeController

public NodeController getNodeController(java.lang.Object object)
Return the node controller appropriate for the given object. In this base class, the method checks to see whether the object is an instance of Locatable and contains a NodeControllerFactory (which is an attribute). If it does, then it invokes that factory to create a node controller. Otherwise, it returns null.

Specified by:
getNodeController in interface GraphController
Specified by:
getNodeController in class AbstractGraphController
Parameters:
object - The object to get a controller for.
Returns:
A custom node controller if there is one, and null otherwise.

message

public void message(java.lang.String message)
React to a debug message. This base class does nothing.

Specified by:
message in interface DebugListener
Parameters:
message - The message.

setAnimationDelay

public void setAnimationDelay(long time)
Set the time delay for animation. After highlighting, derived classes are expected to sleep for the specified amount of time, in milliseconds. If this method is not called, or is called with argument 0, then no delay is introduced.

Parameters:
time - Time to sleep, in milliseconds.
See Also:
getAnimationDelay()

setConfiguration

public void setConfiguration(Configuration configuration)
Set the configuration. This is used by some of the controllers when opening files or URLs.

Parameters:
configuration - The configuration.
See Also:
getConfiguration()

setFigure

public void setFigure(java.lang.Object semanticObject,
 Figure figure)
Set the figure associated with the given semantic object, and if that semantic object is Settable, then set up a value listener so that if its value changes, then the valueChanged() method is invoked. The semantic object is normally an attribute that implements the Locatable interface, and the value indicates the location of the object. A null figure clears the association.

Specified by:
setFigure in interface GraphController
Overrides:
setFigure in class AbstractGraphController
Parameters:
semanticObject - The semantic object (normally a Locatable).
figure - The figure.

setFrame

public void setFrame(BasicGraphFrame frame)
Set the graph frame. This is used by some of the controllers to mark the modified bit of the frame and to update any dependents.

Parameters:
frame - The graph frame, or null if there is none.
See Also:
getFrame()

valueChanged

public void valueChanged(Settable settable)
React to the fact that the specified Settable has changed. If the specified Settable implements the Locatable interface, then this method will move the figure and reroute any connections to it. This is done immediately if the caller is in the Swing event thread, but otherwise is deferred to the event thread.

Specified by:
valueChanged in interface ValueListener
Parameters:
settable - The object that has changed value.

_createControllers

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


_initializeInteraction

protected void _initializeInteraction(NamedObjController controller)
Initialize interactions for the specified controller. This method is called when a new controller is constructed. This base class does nothing, but derived classes may attach interactors to the specified controller.

Parameters:
controller - The controller for which to initialize interaction.

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. Regrettably, the canvas is not yet associated with the GraphPane, so you can't do any initialization that involves the canvas.

Specified by:
initializeInteraction in class AbstractGraphController

Overview Package Class Tree Deprecated Index Help
PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

AltStyle によって変換されたページ (->オリジナル) /