Package ptolemy.plot

Class PlotFrame

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, ImageExportable
    Direct Known Subclasses:
    PlotApplication, PlotMLFrame

    public class PlotFrame
    extends javax.swing.JFrame
    implements java.beans.PropertyChangeListener, ImageExportable
    PlotFrame is a versatile two-dimensional data plotter that runs as part of an application, but in its own window. It can read files compatible with the old Ptolemy plot file format (currently only ASCII). It is extended with the capability to read PlotML files in PlotMLFrame. An application can also interact directly with the contained Plot object, which is visible as a public member, by invoking its methods.

    An application that uses this class should set up the handling of window-closing events. Presumably, the application will exit when all windows have been closed. This is done with code something like:

     plotFrameInstance.addWindowListener(new WindowAdapter() {
     public void windowClosing(WindowEvent e) {
     // Handle the event
     }
     });
     

    PlotFrame contains an instance of PlotBox. PlotBox is the base class for classes with drawing capability, e.g. Plot, LogicAnalyzer. If not specified in the constructor, the default is to contain a Plot object. This field is set once in the constructor and immutable afterwards.

    Since:
    Ptolemy II 0.2
    Version:
    $Id$
    Author:
    Christopher Brooks and Edward A. Lee
    See Also:
    Plot, PlotBox, Serialized Form
    Pt.AcceptedRating:
    Yellow (cxh)
    Pt.ProposedRating:
    Yellow (cxh)
    • 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.io.File _directory
      Directory that contains the input file.
      protected javax.swing.JMenu _editMenu
      Edit menu for this frame.
      protected java.io.File _file
      The input file.
      protected javax.swing.JMenu _fileMenu
      File menu for this frame.
      protected javax.swing.JMenuBar _menubar
      Menubar for this frame.
      protected javax.swing.JMenu _specialMenu
      Special menu for this frame.
      PlotBox plot
      The plot object held by this frame.
      • Fields inherited from class javax.swing.JFrame

        accessibleContext, rootPane, rootPaneCheckingEnabled
      • 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
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
      • Fields inherited from interface javax.swing.WindowConstants

        DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
    • Constructor Summary

      Constructors 
      Constructor Description
      PlotFrame()
      Construct a plot frame with a default title and by default contains an instance of Plot.
      PlotFrame​(java.lang.String title)
      Construct a plot frame with the specified title and by default contains an instance of Plot.
      PlotFrame​(java.lang.String title, PlotBox plotArg)
      Construct a plot frame with the specified title and the specified instance of PlotBox.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void _about()
      Display a menu that describes the Plotter.
      protected void _close()
      Close the window.
      protected void _editFormat()
      Interactively edit the file format in a modal dialog.
      protected void _export()
      Query the user for a filename and export the plot to that file.
      protected void _help()
      Display more detailed information than given by _about().
      protected void _open()
      Open a new file and plot its data.
      protected void _print()
      Print the plot using the native interface.
      protected void _printCrossPlatform()
      Print using the cross platform dialog.
      protected void _printNative()
      Print using the native dialog.
      protected void _printPDF()
      If a PDF printer is available print to it.
      protected void _read​(java.net.URL base, java.io.InputStream in)
      Read the specified stream.
      protected void _save()
      Save the plot to the current file, determined by the and _file protected variable.
      protected void _saveAs()
      Query the user for a filename and save the plot to that file.
      void propertyChange​(java.beans.PropertyChangeEvent event)
      Respond to dialog action.
      void samplePlot()
      Create a sample plot.
      void setVisible​(boolean visible)
      Set the visibility.
      void writeImage​(java.io.OutputStream stream, java.lang.String format)
      Write an image to the specified output stream in the specified format.
      • 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, setBackground, 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, dispose, 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, pack, 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, show, 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

      • plot

        public PlotBox plot
        The plot object held by this frame.
      • _directory

        protected java.io.File _directory
        Directory that contains the input file.
      • _editMenu

        protected javax.swing.JMenu _editMenu
        Edit menu for this frame.
      • _file

        protected java.io.File _file
        The input file.
      • _fileMenu

        protected javax.swing.JMenu _fileMenu
        File menu for this frame.
      • _menubar

        protected javax.swing.JMenuBar _menubar
        Menubar for this frame.
      • _specialMenu

        protected javax.swing.JMenu _specialMenu
        Special menu for this frame.
    • Constructor Detail

      • PlotFrame

        public PlotFrame()
        Construct a plot frame with a default title and by default contains an instance of Plot. After constructing this, it is necessary to call setVisible(true) to make the plot appear.
      • PlotFrame

        public PlotFrame​(java.lang.String title)
        Construct a plot frame with the specified title and by default contains an instance of Plot. After constructing this, it is necessary to call setVisible(true) to make the plot appear.
        Parameters:
        title - The title to put on the window.
      • PlotFrame

        public PlotFrame​(java.lang.String title,
                         PlotBox plotArg)
        Construct a plot frame with the specified title and the specified instance of PlotBox. After constructing this, it is necessary to call setVisible(true) to make the plot appear.
        Parameters:
        title - The title to put on the window.
        plotArg - the plot object to put in the frame, or null to create an instance of Plot.
    • Method Detail

      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent event)
        Respond to dialog action.
        Specified by:
        propertyChange in interface java.beans.PropertyChangeListener
        Parameters:
        event - The dialog event.
      • samplePlot

        public void samplePlot()
        Create a sample plot.
      • setVisible

        public void setVisible​(boolean visible)
        Set the visibility. As a side effect, this method sets the background of the menus.
        Overrides:
        setVisible in class java.awt.Window
        Parameters:
        visible - True if the Frame is to be visible, false if it is not visible.
      • writeImage

        public void writeImage​(java.io.OutputStream stream,
                               java.lang.String format)
                        throws java.awt.print.PrinterException,
                               java.io.IOException
        Write an image to the specified output stream in the specified format. Supported formats include at least "gif" and "png", standard image file formats. The image is a rendition of the current view of the model.
        Specified by:
        writeImage in interface ImageExportable
        Parameters:
        stream - The output stream to write to.
        format - The image format to generate.
        Throws:
        java.io.IOException - If writing to the stream fails.
        java.awt.print.PrinterException - If the specified format is not supported.
      • _about

        protected void _about()
        Display a menu that describes the Plotter.
      • _close

        protected void _close()
        Close the window.
      • _editFormat

        protected void _editFormat()
        Interactively edit the file format in a modal dialog.
      • _export

        protected void _export()
        Query the user for a filename and export the plot to that file. Currently, the supported formats are EPS and GIF.
      • _help

        protected void _help()
        Display more detailed information than given by _about().
      • _open

        protected void _open()
        Open a new file and plot its data.
      • _print

        protected void _print()
        Print the plot using the native interface.
      • _printCrossPlatform

        protected void _printCrossPlatform()
        Print using the cross platform dialog. Note that in java 1.6.0_05, the properties button is disabled, so using _printNative() is preferred.
      • _printPDF

        protected void _printPDF()
                          throws java.awt.print.PrinterException
        If a PDF printer is available print to it.
        Throws:
        java.awt.print.PrinterException - If a printer with the string "PDF" cannot be found or if the job cannot be set to the PDF print service or if there is another problem printing.
      • _printNative

        protected void _printNative()
        Print using the native dialog.
      • _read

        protected void _read​(java.net.URL base,
                             java.io.InputStream in)
                      throws java.io.IOException
        Read the specified stream. Derived classes may override this to support other file formats.
        Parameters:
        base - The base for relative file references, or null if there are not relative file references.
        in - The input stream.
        Throws:
        java.io.IOException - If the stream cannot be read.
      • _save

        protected void _save()
        Save the plot to the current file, determined by the and _file protected variable.
      • _saveAs

        protected void _saveAs()
        Query the user for a filename and save the plot to that file.