Package ptolemy.actor.gui
Class PtolemyFrame
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Frame
-
- javax.swing.JFrame
-
- ptolemy.gui.Top
-
- ptolemy.actor.gui.TableauFrame
-
- ptolemy.actor.gui.PtolemyFrame
-
- All Implemented Interfaces:
java.awt.event.WindowFocusListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
,StatusHandler
- Direct Known Subclasses:
BasicGraphFrame
,CodeGeneratorGUI
,DocBuilderGUI
,GeneratorTableau.GeneratorFrame
,JVMTableau.JVMFrame
,MappingEditorGUI
,MathematicalModelConverterGUI
,ModelFrame
,SCRTableFrame
,TreeTableau.TreeFrame
public abstract class PtolemyFrame extends TableauFrame
This is a top-level window for Ptolemy models with a menubar and status bar. Derived classes should add components to the content pane using a line like:getContentPane().add(component, BorderLayout.CENTER);
This extends the base class by associating with it a Ptolemy II model or object and specifying a model error handler for that model that handles model errors by throwing an exception.If the model contains an instance of FileParameter named "_help", then the file or URL specified by that attribute will be opened when "Help" in the Help menu is invoked.
- Since:
- Ptolemy II 1.0
- Version:
- $Id$
- Author:
- Edward A. Lee
- See Also:
- Serialized Form
- Pt.AcceptedRating:
- Yellow (johnr)
- Pt.ProposedRating:
- Green (eal)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.actor.gui.TableauFrame
TableauFrame.MenuItemListener
-
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
-
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
Field Summary
Fields Modifier and Type Field Description protected Query
_query
The query used to specify save as options.-
Fields inherited from class ptolemy.actor.gui.TableauFrame
_initialSaveAsFileName, _topPack, _viewMenu, aboutFile, helpFile
-
Fields inherited from class ptolemy.gui.Top
_CANCELED, _debugClosing, _directory, _DISCARDED, _exitResult, _EXPORT_MENU_INDEX, _FAILED, _fileFilter, _fileMenu, _fileMenuItems, _filenameFilter, _helpMenu, _helpMenuItems, _IMPORT_MENU_INDEX, _menubar, _NEW_MENU_INDEX, _SAVED, _statusBar, MAXIMUM_STATUS_MESSAGE_TIME
-
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description PtolemyFrame(NamedObj model)
Construct a frame associated with the specified Ptolemy II model.PtolemyFrame(NamedObj model, Tableau tableau)
Construct a frame associated with the specified Ptolemy II model or object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
_clear()
Clear the current contents.protected boolean
_close()
Close the window.protected void
_help()
Display more detailed information than given by _about().protected void
_print()
Print the contents.protected boolean
_saveAs()
Query the user for a filename, save the model to that file, and open a new window to view the model.protected java.awt.FileDialog
_saveAsFileDialogComponent()
Create and return a file dialog for the "Save As" command.protected javax.swing.JFileChooser
_saveAsJFileChooserComponent()
Create and return a file dialog for the "Save As" command.protected void
_writeFile(java.io.File file)
Write the model to the specified file.void
dispose()
Dispose of this frame.void
expandAllLibraryRows()
Expand all the rows of the library.Effigy
getEffigy()
Override the base class to check to see whether the effigy is still the valid one for the associated model.NamedObj
getModel()
Get the associated model or Ptolemy II object.void
setModel(NamedObj model)
Set the associated model.-
Methods inherited from class ptolemy.actor.gui.TableauFrame
_about, _addMenus, _confirmFile, _exit, _getDefaultIconImage, _getName, _read, _save, _saveAs, _saveAsHelper, getAlternateTopPack, getConfiguration, getDirectory, getEffigy, getTableau, isModified, pack, printPDF, setModified, setTableau
-
Methods inherited from class ptolemy.gui.Top
_createFileMenuItems, _getCurrentDirectory, _open, _openURL, _populateHistory, _printCrossPlatform, _printNative, _printPDF, _queryForSave, _saveAsFileDialog, _updateHistory, about, centerOnScreen, close, deferIfNecessary, exit, getCentering, getContentSize, hideMenuBar, isDisposed, isMenuPopulated, report, report, report, setBackground, setCentering, setDirectory, show, status, windowGainedFocus, windowLostFocus
-
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
-
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
-
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, toBack, toFront
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
_query
protected Query _query
The query used to specify save as options.
-
-
Constructor Detail
-
PtolemyFrame
public PtolemyFrame(NamedObj model)
Construct a frame associated with the specified Ptolemy II model. After constructing this, it is necessary to call setVisible(true) to make the frame appear. This is typically done by calling show() on the controlling tableau.- Parameters:
model
- The model to put in this frame, or null if none.- See Also:
Tableau.show()
-
PtolemyFrame
public PtolemyFrame(NamedObj model, Tableau tableau)
Construct a frame associated with the specified Ptolemy II model or object. After constructing this, it is necessary to call setVisible(true) to make the frame appear. This is typically done by calling show() on the controlling tableau.- Parameters:
model
- The model or object to put in this frame, or null if none.tableau
- The tableau responsible for this frame, or null if none.- See Also:
Tableau.show()
-
-
Method Detail
-
expandAllLibraryRows
public void expandAllLibraryRows()
Expand all the rows of the library. Expanding all the rows is useful for testing. In this baseclass, this method merely returns. In a derived class, this method should expand all the library rows in the configuration.
-
getEffigy
public Effigy getEffigy()
Override the base class to check to see whether the effigy is still the valid one for the associated model. If it is not, create a new effigy for the model and associate the tableau with that effigy. If the effigy has been marked as non-persistent, then a new effigy is not created.- Overrides:
getEffigy
in classTableauFrame
- Returns:
- The effigy for the model, or null if none exists.
-
getModel
public NamedObj getModel()
Get the associated model or Ptolemy II object. This can be a CompositeEntity or an EditorIcon, and possibly other Ptolemy II objects.- Returns:
- The associated model or object.
- See Also:
setModel(NamedObj)
-
setModel
public void setModel(NamedObj model)
Set the associated model. This also sets an error handler for the model that results in model errors throwing an exception and associates an undo stack with the model.- Parameters:
model
- The associated model.- See Also:
getModel()
-
_clear
protected boolean _clear()
Clear the current contents. First, check to see whether the contents have been modified, and if so, then prompt the user to save them. A return value of false indicates that the user has canceled the action.
-
_close
protected boolean _close()
Close the window. Look for any Dialogs that are open and close those first. If a DialogTableau returns false then it means that the user has cancelled the close operation.- Overrides:
_close
in classTableauFrame
- Returns:
- False if the user cancels on a save query.
-
dispose
public void dispose()
Dispose of this frame. Override this dispose() method to unattach any listeners that may keep this model from getting garbage collected. This method invokes the dispose() method of the superclass,TableauFrame
.- Overrides:
dispose
in classTableauFrame
-
_help
protected void _help()
Display more detailed information than given by _about(). If the model contains an instance of FileParameter named "_help", that the file or URL given by that attribute is opened. Otherwise, a built-in generic help file is opened.- Overrides:
_help
in classTableauFrame
- See Also:
FileParameter
-
_print
protected void _print()
Print the contents. If this frame implements either the Printable or Pageable then those interfaces are used to print it. This overrides the base class to queue a change request to do the printing, because otherwise, printing will cause a deadlock.
-
_saveAs
protected boolean _saveAs()
Query the user for a filename, save the model to that file, and open a new window to view the model. If setModel() has been called, then the initial filename is set to the name of the model. If setModel() has not yet been called, then the initial filename tomodel.xml
. If the model is not idle or paused, we first pause it before calling the parent _saveAs() method and then resume when we return from the parent _saveAs() method.- Overrides:
_saveAs
in classTableauFrame
- Returns:
- True if the save succeeds.
-
_saveAsJFileChooserComponent
protected javax.swing.JFileChooser _saveAsJFileChooserComponent()
Create and return a file dialog for the "Save As" command. This overrides the base class to add options to the dialog. IfPtGUIUtilities.useFileDialog()
returns false, thenTop._saveAs()
uses this method. Otherwise,_saveAsFileDialogComponent()
is used.- Overrides:
_saveAsJFileChooserComponent
in classTop
- Returns:
- A file dialog for save as.
-
_saveAsFileDialogComponent
protected java.awt.FileDialog _saveAsFileDialogComponent()
Create and return a file dialog for the "Save As" command. This overrides the base class to add options to the dialog. IfPtGUIUtilities.useFileDialog()
returns true thenTop._saveAs()
uses this method. Otherwise,_saveAsJFileChooserComponent()
is used.- Overrides:
_saveAsFileDialogComponent
in classTop
- Returns:
- A file dialog for save as.
-
_writeFile
protected void _writeFile(java.io.File file) throws java.io.IOException
Write the model to the specified file. This method delegates to the top effigy containing the associated Tableau, if there is one, and otherwise throws an exception. This ensures that the data written is the description of the entire model, not just the portion within some composite actor. It also adjusts the URIAttribute in the model to match the specified file, if necessary, and creates one otherwise. It also overrides the base class to update the attributes if they need to update their content.- Overrides:
_writeFile
in classTableauFrame
- Parameters:
file
- The file to write to.- Throws:
java.io.IOException
- If the write fails.
-
-