org.opensourcephysics.frames
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 org.opensourcephysics.display.OSPFrame
                          extended by org.opensourcephysics.display.DrawingFrame
                              extended by org.opensourcephysics.frames.PlotFrame
All Implemented Interfaces:
java.awt.datatransfer.ClipboardOwner, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, AppFrame, Hidable
Direct Known Subclasses:
FFTRealFrame

public class PlotFrame
extends DrawingFrame

PlotFrame displays a plot using a dedicated DatasetManager. PlotFrame is a composite object that forwards methods to other objects such as a DatasetManager or a DataTable.

Version:
1.0
Author:
W. Christian
See Also:
Serialized Form

Nested Class Summary
protected static class PlotFrame.PlotFrameLoader
           
 
Nested classes/interfaces inherited from class org.opensourcephysics.display.DrawingFrame
DrawingFrame.DrawingFrameLoader
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  DatasetManager datasetManager
           
protected  DataTable dataTable
           
protected  DataTableFrame tableFrame
           
 
Fields inherited from class org.opensourcephysics.display.DrawingFrame
copyItem, customInspector, drawingPanel, editMenu, fileMenu, MENU_SHORTCUT_KEY_MASK, pasteItem, replaceItem, reply
 
Fields inherited from class org.opensourcephysics.display.OSPFrame
animated, autoclear, buttonPanel, childFrames, constructorThreadGroup, customButtons, keepHidden, strategy
 
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(java.lang.String xlabel, java.lang.String ylabel, java.lang.String frameTitle)
          Constructs the PlottingFrame with the given frame title and axes labels.
 
Method Summary
protected  void addMenuItems()
          Adds Views menu items on the menu bar.
 void append(int datasetIndex, double[] xpoints, double[] ypoints)
          Appends (x,y) arrays to the Dataset.
 void append(int datasetIndex, double[] xpoints, double[] ypoints, double[] delx, double[] dely)
          Appends arrays of data points and uncertainties to the Dataset.
 void append(int datasetIndex, double x, double y)
          Appends an (x,y) datum to the Dataset with the given index.
 void append(int datasetIndex, double x, double y, double delx, double dely)
          Appends a data point and its uncertainty to the Dataset.
 void clearData()
          Clears the data from all datasets.
 void clearDrawables()
          Clears drawable objects added by the user to this frame.
 Dataset getDataset(int index)
          Gets a dataset with the given index.
 DatasetManager getDatasetManager()
          Gets the dataset manager.
 java.util.ArrayList<Drawable> getDrawables()
          Gets Drawable objects added by the user to this frame.
<T extends Drawable>
java.util.ArrayList<T>
getDrawables(java.lang.Class<T> c)
          Gets Drawable objects added by the user of an assignable type.
static XML.ObjectLoader getLoader()
          Returns an XML.ObjectLoader to save and load data.
protected  void logAxes()
           
 void removeDatasets()
          Removes datasets from the manager.
protected  void scale()
           
 void setBackground(java.awt.Color color)
          Sets the background color of this component.
 void setConnected(boolean connected)
          Sets the connected flag for all datasets.
 void setConnected(int datasetIndex, boolean connected)
          Sets the data connected flag.
 void setCustomMarker(int datasetIndex, java.awt.Shape marker)
          Sets a custom marker shape.
 void setLineColor(int datasetIndex, java.awt.Color color)
          Sets the data line color for the given index.
 void setLogScaleX(boolean log)
          Sets the log scale property for the x axis.
 void setLogScaleY(boolean log)
          Sets the log scale property for the y axis.
 void setMarkerColor(int datasetIndex, java.awt.Color color)
          Sets the data marker color for the given index.
 void setMarkerColor(int datasetIndex, java.awt.Color fillColor, java.awt.Color edgeColor)
          Sets the marker's fill and edge colors.
 void setMarkerShape(int datasetIndex, int markerShape)
          Sets the data point marker shape.
 void setMarkerSize(int datasetIndex, int markerSize)
          Sets the half-width of the data point marker.
 void setMaximumFractionDigits(int maximumFractionDigits)
          Sets the maximum number of fraction digits to display for cells that have type Double
 void setMaximumFractionDigits(java.lang.String columnName, int maximumFractionDigits)
          Sets the maximum number of fraction digits to display in all data table columns with cthe given columnName.
 void setMaximumPoints(int datasetIndex, int maxPoints)
          Sets the maximum number of allowed datapoints.
 void setName(java.lang.String name)
          Sets the name of this component and the Dataset Manager.
 void setRowNumberVisible(boolean vis)
          Sets the display row number flag.
 void setXPointsLinked(boolean linked)
          Sets the linked flag.
 void setXYColumnNames(int datasetIndex, java.lang.String xColumnName, java.lang.String yColumnName)
          Sets the column names when rendering this dataset in a JTable.
 void setXYColumnNames(int datasetIndex, java.lang.String xColumnName, java.lang.String yColumnName, java.lang.String datasetName)
          Sets the column names and the dataset name.
 void showDataTable(boolean show)
          Shows or hides the data table.
 
Methods inherited from class org.opensourcephysics.display.DrawingFrame
addDrawable, clearDataAndRepaint, copyAction, getAxes, getDrawingPanel, getObjectOfClass, inspectXML, invalidateImage, isAutoscaleX, isAutoscaleY, limitAutoscaleX, limitAutoscaleY, loadDisplayMenu, loadToolsMenu, lostOwnership, paint, pasteAction, refreshGUI, removeDrawable, removeObjectsOfClass, render, replaceAction, replaceDrawable, saveXML, setAutoscaleX, setAutoscaleY, setCartesian, setCustomInspector, setDrawingPanel, setEnabledCopy, setEnabledPaste, setEnabledReplace, setInteractiveMouseHandler, setInteriorBackground, setLogScale, setMessage, setMessage, setPixelsPerUnit, setPolar, setPreferredMinMax, setPreferredMinMaxX, setPreferredMinMaxY, setSquareAspect, setXLabel, setYLabel
 
Methods inherited from class org.opensourcephysics.display.OSPFrame
addButton, addChildFrame, bufferStrategyShow, clearChildFrames, createBufferStrategy, dispose, getChildFrames, getChooser, getConstructorThreadGroup, getMenu, isAnimated, isAutoclear, isIconified, isKeepHidden, parseXMLMenu, parseXMLMenu, removeMenu, removeMenuItem, setAnimated, setAutoclear, setDefaultCloseOperation, setFontLevel, setKeepHidden, setSize, setTitle, setVisible, show, wishesToExit
 
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, 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, setResizable, setState, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, 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, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.opensourcephysics.display.AppFrame
getDefaultCloseOperation
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

datasetManager

protected DatasetManager datasetManager

dataTable

protected DataTable dataTable

tableFrame

protected DataTableFrame tableFrame
Constructor Detail

PlotFrame

public PlotFrame(java.lang.String xlabel,
                 java.lang.String ylabel,
                 java.lang.String frameTitle)
Constructs the PlottingFrame with the given frame title and axes labels.

Parameters:
xlabel - String
ylabel - String
frameTitle - String
Method Detail

setName

public void setName(java.lang.String name)
Sets the name of this component and the Dataset Manager.

Overrides:
setName in class java.awt.Component

addMenuItems

protected void addMenuItems()
Adds Views menu items on the menu bar.

Overrides:
addMenuItems in class DrawingFrame

setLogScaleX

public void setLogScaleX(boolean log)
Sets the log scale property for the x axis.

Parameters:
log - boolean

setLogScaleY

public void setLogScaleY(boolean log)
Sets the log scale property for the y axis.

Parameters:
log - boolean

scale

protected void scale()

logAxes

protected void logAxes()

append

public void append(int datasetIndex,
                   double x,
                   double y)
Appends an (x,y) datum to the Dataset with the given index.

Parameters:
datasetIndex - Description of Parameter
x -
y -

append

public void append(int datasetIndex,
                   double x,
                   double y,
                   double delx,
                   double dely)
Appends a data point and its uncertainty to the Dataset.

Parameters:
datasetIndex -
x -
y -
delx -
dely -

append

public void append(int datasetIndex,
                   double[] xpoints,
                   double[] ypoints)
Appends (x,y) arrays to the Dataset.

Parameters:
datasetIndex - Description of Parameter
xpoints -
ypoints -

append

public void append(int datasetIndex,
                   double[] xpoints,
                   double[] ypoints,
                   double[] delx,
                   double[] dely)
Appends arrays of data points and uncertainties to the Dataset.

Parameters:
datasetIndex -
xpoints -
ypoints -
delx -
dely -

setConnected

public void setConnected(boolean connected)
Sets the connected flag for all datasets.

Parameters:
connected - true if connected; false otherwise

setMaximumPoints

public void setMaximumPoints(int datasetIndex,
                             int maxPoints)
Sets the maximum number of allowed datapoints. Points will be dropped from the beginning of the dataset after the maximum number has been reached.

Parameters:
maxPoints - int

setCustomMarker

public void setCustomMarker(int datasetIndex,
                            java.awt.Shape marker)
Sets a custom marker shape.

Parameters:
datasetIndex - int
marker - Shape

setMarkerShape

public void setMarkerShape(int datasetIndex,
                           int markerShape)
Sets the data point marker shape. Shapes are: NO_MARKER, CIRCLE, SQUARE, AREA, PIXEL, BAR, POST

Parameters:
datasetIndex - The new markerShape value
markerShape -

setMarkerSize

public void setMarkerSize(int datasetIndex,
                          int markerSize)
Sets the half-width of the data point marker.

Parameters:
datasetIndex -
markerSize - in pixels

setMarkerColor

public void setMarkerColor(int datasetIndex,
                           java.awt.Color color)
Sets the data marker color for the given index.

Parameters:
datasetIndex - int
color - Color

setLineColor

public void setLineColor(int datasetIndex,
                         java.awt.Color color)
Sets the data line color for the given index.

Parameters:
datasetIndex - int
color - Color

setBackground

public void setBackground(java.awt.Color color)
Sets the background color of this component.

Overrides:
setBackground in class java.awt.Component

setMarkerColor

public void setMarkerColor(int datasetIndex,
                           java.awt.Color fillColor,
                           java.awt.Color edgeColor)
Sets the marker's fill and edge colors. The error bar color is set equal to the edge color.

Parameters:
datasetIndex -
fillColor -
edgeColor -

setConnected

public void setConnected(int datasetIndex,
                         boolean connected)
Sets the data connected flag. Points are connected by straight lines.

Parameters:
datasetIndex - The new connected value
connected - true<\code> if points are connected

setXPointsLinked

public void setXPointsLinked(boolean linked)
Sets the linked flag. X data for datasets > 0 will not be shown in a table view.

Parameters:
linked - The new value

setXYColumnNames

public void setXYColumnNames(int datasetIndex,
                             java.lang.String xColumnName,
                             java.lang.String yColumnName,
                             java.lang.String datasetName)
Sets the column names and the dataset name.

Parameters:
datasetIndex - The new xYColumnNames value
xColumnName -
yColumnName -
datasetName -

setXYColumnNames

public void setXYColumnNames(int datasetIndex,
                             java.lang.String xColumnName,
                             java.lang.String yColumnName)
Sets the column names when rendering this dataset in a JTable.

Parameters:
datasetIndex - The new xYColumnNames value
xColumnName -
yColumnName -

setMaximumFractionDigits

public void setMaximumFractionDigits(int maximumFractionDigits)
Sets the maximum number of fraction digits to display for cells that have type Double

Parameters:
maximumFractionDigits - - maximum number of fraction digits to display

setMaximumFractionDigits

public void setMaximumFractionDigits(java.lang.String columnName,
                                     int maximumFractionDigits)
Sets the maximum number of fraction digits to display in all data table columns with cthe given columnName.

Parameters:
maximumFractionDigits - - maximum number of fraction digits to display
columnName - The new maximumFractionDigits value

setRowNumberVisible

public void setRowNumberVisible(boolean vis)
Sets the display row number flag. Table displays row number.

Parameters:
vis - true<\code> if table display row number

clearDrawables

public void clearDrawables()
Clears drawable objects added by the user to this frame.

Overrides:
clearDrawables in class DrawingFrame

getDataset

public Dataset getDataset(int index)
Gets a dataset with the given index.

Parameters:
index -
Returns:
Dataset

getDatasetManager

public DatasetManager getDatasetManager()
Gets the dataset manager.

Returns:
DatasetManager

getDrawables

public java.util.ArrayList<Drawable> getDrawables()
Gets Drawable objects added by the user to this frame.

Overrides:
getDrawables in class DrawingFrame
Returns:
the list

getDrawables

public <T extends Drawable> java.util.ArrayList<T> getDrawables(java.lang.Class<T> c)
Gets Drawable objects added by the user of an assignable type. The list contains objects that are assignable from the class or interface.

Overrides:
getDrawables in class DrawingFrame
Parameters:
c - the type of Drawable object
Returns:
the cloned list
See Also:
DrawingFrame.getObjectOfClass(Class c)

clearData

public void clearData()
Clears the data from all datasets. Dataset properties are preserved because only the data is cleared.

Overrides:
clearData in class OSPFrame

removeDatasets

public void removeDatasets()
Removes datasets from the manager. New datasets will be created with default properties as needed.


showDataTable

public void showDataTable(boolean show)
Shows or hides the data table.

Parameters:
show - boolean

getLoader

public static XML.ObjectLoader getLoader()
Returns an XML.ObjectLoader to save and load data.

Returns:
the object loader