Class 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 javax.swing.JFrame

        javax.swing.JFrame.AccessibleJFrame
      • Nested classes/interfaces inherited from class java.awt.Frame

        java.awt.Frame.AccessibleAWTFrame
      • Nested classes/interfaces inherited from class java.awt.Window

        java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
      • 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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • 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 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.awt.MenuContainer

        getFont, postEvent
    • 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 class TableauFrame
        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.
        Overrides:
        _clear in class Top
        Returns:
        False if the user cancels the clear.
      • _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 class TableauFrame
        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 class TableauFrame
      • _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 class TableauFrame
        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.
        Overrides:
        _print in class Top
      • _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 to model.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 class TableauFrame
        Returns:
        True if the save succeeds.
      • _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 class TableauFrame
        Parameters:
        file - The file to write to.
        Throws:
        java.io.IOException - If the write fails.