ptolemy.actor.gui
Class ModelPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by ptolemy.actor.gui.ModelPane
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, CloseListener

public class ModelPane
extends javax.swing.JPanel
implements CloseListener

ModelPane is a panel for interacting with an executing Ptolemy II model. It has optional controls for setting top-level and director parameters, a set of buttons for controlling the execution, and a panel for displaying results of the execution. Any entity in the model that implements the Placeable interface is placed in the display region.

Since:
Ptolemy II 0.4
Version:
$Id: ModelPane.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Edward A. Lee, Elaine Cheong
See Also:
Placeable, Serialized Form
Accepted Rating:
Yellow (janneck)
Proposed Rating:
Green (eal)

Nested Class Summary
private  class ModelPane.ClickListener
           
private  class ModelPane.CommandListener
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  javax.swing.JPanel _buttonPanel
           
private  javax.swing.JPanel _controlPanel
           
private  Configurer _directorQuery
           
protected  java.awt.Container _displays
          A panel into which to place model displays.
private  javax.swing.JButton _goButton
           
private  int _layout
           
private  Manager _manager
           
private  CompositeActor _model
           
private  Configurer _parameterQuery
           
private  javax.swing.JButton _pauseButton
           
private  javax.swing.JButton _resumeButton
           
private  int _show
           
private  javax.swing.JButton _stopButton
           
static int BUTTONS
          Indicator to include control buttons.
static int CONTROLS_ONLY
          Indicator to create only buttons.
static int DIRECTOR_PARAMETERS
          Indicator to include director parameters in the controls.
static int HORIZONTAL
          Indicator to use a horizontal layout.
static int TOP_PARAMETERS
          Indicator to include top-level parameters in the controls.
static int VERTICAL
          Indicator to use a vertical layout.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ModelPane(CompositeActor model)
          Construct a panel for interacting with the specified Ptolemy II model.
ModelPane(CompositeActor model, int layout, int show)
          Construct a panel for interacting with the specified Ptolemy II model.
 
Method Summary
private  void _closeDisplays()
          Close any open displays by calling place(null).
protected  void _createPlaceable(CompositeActor model)
          Place the placeable objects in the model in the display pane.
 java.awt.Container getDisplayPane()
          Return the container for model displays.
 CompositeActor getModel()
          Get the associated model.
 void pauseRun()
          If the model has a manager and is executing, then pause execution by calling the pause() method of the manager.
 void resumeRun()
          If the model has a manager and is executing, then resume execution by calling the resume() method of the manager.
 void setDefaultButton()
          Make the Go button the default button for the root pane.
 void setDisplayPane(java.awt.Container pane)
          Deprecated. It is no longer necessary to specify a display pane. The displays are handled by setModel().
 void setModel(CompositeActor model)
          Set the associated model and add a query box with its top-level parameters, and those of its director, if it has one.
 void startRun()
          If the model has a manager and is not already running, then execute the model in a new thread.
 void stopRun()
          If the model has a manager and is executing, then stop execution by calling the stop() method of the manager.
 void windowClosed(java.awt.Window window, java.lang.String button)
          Notify the contained instances of PtolemyQuery that the window has been closed, and remove all Placeable displays by calling place(null).
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

HORIZONTAL

public static final int HORIZONTAL
Indicator to use a horizontal layout.

See Also:
Constant Field Values

VERTICAL

public static final int VERTICAL
Indicator to use a vertical layout.

See Also:
Constant Field Values

CONTROLS_ONLY

public static final int CONTROLS_ONLY
Indicator to create only buttons.

See Also:
Constant Field Values

BUTTONS

public static final int BUTTONS
Indicator to include control buttons.

See Also:
Constant Field Values

TOP_PARAMETERS

public static final int TOP_PARAMETERS
Indicator to include top-level parameters in the controls.

See Also:
Constant Field Values

DIRECTOR_PARAMETERS

public static final int DIRECTOR_PARAMETERS
Indicator to include director parameters in the controls.

See Also:
Constant Field Values

_displays

protected java.awt.Container _displays
A panel into which to place model displays.


_buttonPanel

private javax.swing.JPanel _buttonPanel

_controlPanel

private javax.swing.JPanel _controlPanel

_directorQuery

private Configurer _directorQuery

_goButton

private javax.swing.JButton _goButton

_layout

private int _layout

_manager

private Manager _manager

_model

private CompositeActor _model

_parameterQuery

private Configurer _parameterQuery

_stopButton

private javax.swing.JButton _stopButton

_pauseButton

private javax.swing.JButton _pauseButton

_resumeButton

private javax.swing.JButton _resumeButton

_show

private int _show
Constructor Detail

ModelPane

public ModelPane(CompositeActor model)
Construct a panel for interacting with the specified Ptolemy II model. This uses the default layout, which is horizontal, and shows control buttons, top-level parameters, and director parameters.

Parameters:
model - The model to control.

ModelPane

public ModelPane(CompositeActor model,
                 int layout,
                 int show)
Construct a panel for interacting with the specified Ptolemy II model. The layout argument should be one of HORIZONTAL, VERTICAL, or CONTROLS_ONLY; it determines whether the controls are put to the left of, or above the placeable displays. If CONTROLS_ONLY is given, then no displays are created for placeable objects.

The show argument is a bitwise or of any of BUTTONS, TOP_PARAMETERS, or DIRECTOR_PARAMETERS. Or it can be 0, in which case, no controls are shown. If BUTTONS is included, then a panel of buttons, go, pause, resume, and stop, are shown. If TOP_PARAMETERS is included, then the top-level parameters of the model are included. If DIRECTOR_PARAMETERS is included, then the parameters of the director are included.

Parameters:
model - The model to control.
layout - HORIZONTAL or VERTICAL layout.
show - Indicator of which controls to show.
Method Detail

getDisplayPane

public java.awt.Container getDisplayPane()
Return the container for model displays.

Returns:
A container for graphical displays.
See Also:
setDisplayPane(Container)

getModel

public CompositeActor getModel()
Get the associated model.

Returns:
The associated model.
See Also:
setModel(CompositeActor)

pauseRun

public void pauseRun()
If the model has a manager and is executing, then pause execution by calling the pause() method of the manager. If there is no manager, do nothing.


resumeRun

public void resumeRun()
If the model has a manager and is executing, then resume execution by calling the resume() method of the manager. If there is no manager, do nothing.


setDefaultButton

public void setDefaultButton()
Make the Go button the default button for the root pane. You should call this after placing this pane in a container with a root pane.


setDisplayPane

public void setDisplayPane(java.awt.Container pane)
Deprecated. It is no longer necessary to specify a display pane. The displays are handled by setModel().

Set the container for model displays. This method sets the background of the specified pane to match that of this panel.

Parameters:
pane - The pane that is to be the container.
See Also:
getDisplayPane()

setModel

public void setModel(CompositeActor model)
Set the associated model and add a query box with its top-level parameters, and those of its director, if it has one. All placeable objects in the hierarchy will get placed.

Parameters:
model - The associated model.
See Also:
getModel()

startRun

public void startRun()
If the model has a manager and is not already running, then execute the model in a new thread. Otherwise, do nothing.


stopRun

public void stopRun()
If the model has a manager and is executing, then stop execution by calling the stop() method of the manager. If there is no manager, do nothing.


windowClosed

public void windowClosed(java.awt.Window window,
                         java.lang.String button)
Notify the contained instances of PtolemyQuery that the window has been closed, and remove all Placeable displays by calling place(null). This method is called if this pane is contained within a container that supports such notification.

Specified by:
windowClosed in interface CloseListener
Parameters:
window - The window that closed.
button - The name of the button that was used to close the window.

_createPlaceable

protected void _createPlaceable(CompositeActor model)
Place the placeable objects in the model in the display pane. This method places all placeables vertically. Derived classes may override this method if the placeable objects are to be placed differently.

Parameters:
model - The model that contains the placeable objects.

_closeDisplays

private void _closeDisplays()
Close any open displays by calling place(null).