ptolemy.plot
Class PlotFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by ptolemy.plot.PlotFrame
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants
Direct Known Subclasses:
PlotApplication, PlotMLFrame

public class PlotFrame
extends javax.swing.JFrame

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: PlotFrame.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Christopher Brooks and Edward A. Lee
See Also:
Plot, PlotBox, Serialized Form
Accepted Rating:
Yellow (cxh)
Proposed Rating:
Yellow (cxh)

Nested Class Summary
(package private) static class PlotFrame.EPSFileFilter
          Display only .eps files
(package private)  class PlotFrame.FileMenuListener
           
(package private)  class PlotFrame.FormatListener
           
(package private) static class PlotFrame.PLTOrXMLFileFilter
          Display only .plt and .xml files
(package private)  class PlotFrame.SpecialMenuListener
           
 
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
 
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
protected  java.io.File _directory
           
protected  javax.swing.JMenu _editMenu
           
protected  java.io.File _file
           
protected  javax.swing.JMenu _fileMenu
           
protected  javax.swing.JMenuBar _menubar
           
protected  javax.swing.JMenu _specialMenu
           
 PlotBox plot
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, 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 javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
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
protected  void _about()
           
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 samplePlot()
          Create a sample plot.
 void setVisible(boolean visible)
          Set the visibility.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, 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, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, 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, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

plot

public PlotBox plot

_menubar

protected javax.swing.JMenuBar _menubar

_editMenu

protected javax.swing.JMenu _editMenu

_fileMenu

protected javax.swing.JMenu _fileMenu

_specialMenu

protected javax.swing.JMenu _specialMenu

_directory

protected java.io.File _directory

_file

protected java.io.File _file
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

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.Component
Parameters:
visible - True if the Frame is to be visible, false if it is not visible.

_about

protected void _about()

_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 only supported format is EPS.


_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.