org.opensourcephysics.display
Class ArrayPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.opensourcephysics.display.ArrayPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, Data

public class ArrayPanel
extends javax.swing.JPanel
implements java.beans.PropertyChangeListener, Data

A panel that displays an ArrayTable.

Version:
1.0
Author:
Douglas Brown, Wolfgang Christian
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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 inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
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
 
Constructor Summary
ArrayPanel()
          Constructor ArrayPanel
 
Method Summary
static boolean canDisplay(java.lang.Object obj)
          Determines if an object is an array that can be displayed.
protected  void createGUI()
          Creates the GUI.
 java.lang.Object getArray()
          Gets the object being displayed.
static ArrayPanel getArrayPanel(java.lang.Object arrayObj)
           
 java.lang.String[] getColumnNames()
          Gets column names from Table Model.
 double[][] getData2D()
          Gets double[][] data from the Table Model and transposes this array if necessary.
 double[][][] getData3D()
          Not used because double[][][] is not used in any OSP Tools.
 java.util.List<Data> getDataList()
          Not used because Data is stored in this object, not in a list of Data objects.
 java.util.ArrayList<Dataset> getDatasets()
          Not used Data because is stored in 2D arrays.
 java.awt.Color[] getFillColors()
          Fill colors for columns are not specified.
 int getFirstRowIndex()
           
 int getID()
          Gets the Data ID.
 java.awt.Color[] getLineColors()
          Lines colors for columns are not specified.
 int getNumColumns()
           
 void propertyChange(java.beans.PropertyChangeEvent e)
          Listens for cell events (data changes) from ArrayTable.
 void refreshTable()
          Refresh the data in all the tables.
 void setArray(java.lang.Object arrayObj)
          Gets an array panel for the specified array.
 void setAutoResizeMode(int mode)
          Sets the table's auto resize mode when the table is resized.
 void setBackground(java.awt.Color color)
          Sets the background color of this component.
 void setColumnAlignment(int align)
          Sets the alignment of the contents of all table columns along the X axis.
 void setColumnAlignment(int ncol, int align)
          Sets the alignment of the contents of the given column along the X axis.
 void setColumnLock(int columnIndex, boolean locked)
          Sets the column's lock flag.
 void setColumnLocks(boolean[] locked)
          Sets the lock flag for multiple columns.
 void setColumnNames(java.lang.String[] names)
          Sets the column names in the table models.
 void setColumnNames(java.lang.String[][] names)
          Sets the column names in each table model separately.
 void setDataBackground(java.awt.Color color)
          Sets the data background color of this component.
 void setDataForeground(java.awt.Color color)
          Sets the data foreground color of this component.
 void setEditable(boolean _editable)
          Sets the editable property for the entire panel.
 void setFirstColIndex(int index)
          Sets the first column's index.
 void setFirstRowIndex(int index)
          Sets the first row's index.
 void setFont(java.awt.Font font)
          Sets the font for this component.
 void setForeground(java.awt.Color color)
          Sets the foreground color of this component.
 void setID(int id)
          Sets the Data ID.
 void setNumericFormat(java.lang.String _format)
          Sets the same numeric display format for all columns
 void setNumericFormat(java.lang.String[] _format)
          Sets the numeric display format for each column
 void setPreferredColumnWidth(int nwidth)
          Sets this column's preferred width of the entire table.
 void setPreferredColumnWidth(int ncol, int nwidth)
          Sets this column's preferred width of the given column.
 void setRefreshDelay(int delay)
          Sets the Timer's initial time delay (in milliseconds) to wait after the timer is started before firing the first event.
 void setRowNumberVisible(boolean vis)
          Sets the display row number flag.
 void setTransposed(boolean transposed)
          Sets the transposed property for the array.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, 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.Data
getName
 

Constructor Detail

ArrayPanel

public ArrayPanel()
Constructor ArrayPanel

Method Detail

getArrayPanel

public static ArrayPanel getArrayPanel(java.lang.Object arrayObj)

setArray

public void setArray(java.lang.Object arrayObj)
Gets an array panel for the specified array.

Parameters:
arrayObj - the array
name - the display name for the array

canDisplay

public static boolean canDisplay(java.lang.Object obj)
Determines if an object is an array that can be displayed.

Parameters:
obj - the object
Returns:
true if it can be inspected

getArray

public java.lang.Object getArray()
Gets the object being displayed.

Returns:

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent e)
Listens for cell events (data changes) from ArrayTable.

Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Parameters:
e - the property change event

setNumericFormat

public void setNumericFormat(java.lang.String _format)
Sets the same numeric display format for all columns

Parameters:
_format - String

setNumericFormat

public void setNumericFormat(java.lang.String[] _format)
Sets the numeric display format for each column

Parameters:
_format - String[]

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

setColumnNames

public void setColumnNames(java.lang.String[] names)
Sets the column names in the table models.

Parameters:
names -

setColumnNames

public void setColumnNames(java.lang.String[][] names)
Sets the column names in each table model separately.

Parameters:
names -

setPreferredColumnWidth

public void setPreferredColumnWidth(int ncol,
                                    int nwidth)
Sets this column's preferred width of the given column. The minimum width is set to zero and the maximum width is set to 300.

Parameters:
ncol - the column
nwidth - the preferred width

setPreferredColumnWidth

public void setPreferredColumnWidth(int nwidth)
Sets this column's preferred width of the entire table. The minimum width is set to zero and the maximum width is set to 300.

Parameters:
nwidth - the preferred width

setColumnAlignment

public void setColumnAlignment(int ncol,
                               int align)
Sets the alignment of the contents of the given column along the X axis. The alignment constants are defined in the SwingConstants class.

Parameters:
ncol - the column
align - One of the following constants defined in SwingConstants: LEFT, CENTER (the default for image-only labels), RIGHT, LEADING (the default for text-only labels) or TRAILING.

setColumnAlignment

public void setColumnAlignment(int align)
Sets the alignment of the contents of all table columns along the X axis. The alignment constants are defined in the SwingConstants class.

Parameters:
align - One of the following constants defined in SwingConstants: LEFT, CENTER (the default for image-only labels), RIGHT, LEADING (the default for text-only labels) or TRAILING.

getFirstRowIndex

public int getFirstRowIndex()

setFirstRowIndex

public void setFirstRowIndex(int index)
Sets the first row's index.

Parameters:
index -

setFirstColIndex

public void setFirstColIndex(int index)
Sets the first column's index.

Parameters:
index -

setColumnLock

public void setColumnLock(int columnIndex,
                          boolean locked)
Sets the column's lock flag.

Parameters:
column - int
locked - boolean

setColumnLocks

public void setColumnLocks(boolean[] locked)
Sets the lock flag for multiple columns. Previously set locks are cleared.

Parameters:
locked - boolean array

setEditable

public void setEditable(boolean _editable)
Sets the editable property for the entire panel.

Parameters:
editable - true to allow editing of the cell values

setTransposed

public void setTransposed(boolean transposed)
Sets the transposed property for the array. A transposed array switches its row and column values in the display.

Parameters:
transposed -

setFont

public void setFont(java.awt.Font font)
Sets the font for this component.

Overrides:
setFont in class javax.swing.JComponent
Parameters:
font - the desired Font for this component
See Also:
Component.getFont()

setForeground

public void setForeground(java.awt.Color color)
Sets the foreground color of this component. It is up to the look and feel to honor this property, some may choose to ignore it.

Overrides:
setForeground in class javax.swing.JComponent
Parameters:
fg - the desired foreground Color
See Also:
Component.getForeground()

setBackground

public void setBackground(java.awt.Color color)
Sets the background color of this component. It is up to the look and feel to honor this property, some may choose to ignore it.

Overrides:
setBackground in class javax.swing.JComponent
Parameters:
fg - the desired background Color
See Also:
Component.getBackground()

setDataForeground

public void setDataForeground(java.awt.Color color)
Sets the data foreground color of this component. It is up to the look and feel to honor this property, some may choose to ignore it.

Parameters:
fg - the desired foreground Color

setDataBackground

public void setDataBackground(java.awt.Color color)
Sets the data background color of this component. It is up to the look and feel to honor this property, some may choose to ignore it.

Parameters:
fg - the desired background Color
See Also:
Component.getBackground()

setAutoResizeMode

public void setAutoResizeMode(int mode)
Sets the table's auto resize mode when the table is resized.

Parameters:
mode - One of 5 legal values: AUTO_RESIZE_OFF, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_SUBSEQUENT_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_ALL_COLUMNS

getNumColumns

public int getNumColumns()

refreshTable

public void refreshTable()
Refresh the data in all the tables.


setRefreshDelay

public void setRefreshDelay(int delay)
Sets the Timer's initial time delay (in milliseconds) to wait after the timer is started before firing the first event.

Parameters:
delay -

createGUI

protected void createGUI()
Creates the GUI.


getColumnNames

public java.lang.String[] getColumnNames()
Gets column names from Table Model. Implementation of Data interface.

Specified by:
getColumnNames in interface Data
Returns:
an array of names

getData2D

public double[][] getData2D()
Gets double[][] data from the Table Model and transposes this array if necessary. Implementation of Data interface.

Specified by:
getData2D in interface Data
Returns:
double[][]

getData3D

public double[][][] getData3D()
Not used because double[][][] is not used in any OSP Tools. Implementation of Data interface method.

Specified by:
getData3D in interface Data
Returns:
double[][][]

getDataList

public java.util.List<Data> getDataList()
Not used because Data is stored in this object, not in a list of Data objects. Implementation of Data interface.

Specified by:
getDataList in interface Data
Returns:
a list of Data objects, or null if this object contains data

getDatasets

public java.util.ArrayList<Dataset> getDatasets()
Not used Data because is stored in 2D arrays. Implementation of Data interface.

Specified by:
getDatasets in interface Data
Returns:
list of Datasets

getFillColors

public java.awt.Color[] getFillColors()
Fill colors for columns are not specified. Client should assign colors. Implementation of Data interface.

Specified by:
getFillColors in interface Data
Returns:
a color

getLineColors

public java.awt.Color[] getLineColors()
Lines colors for columns are not specified. Client should assign colors. Implementation of Data interface.

Specified by:
getLineColors in interface Data
Returns:
a color

getID

public int getID()
Gets the Data ID.

Specified by:
getID in interface Data
Returns:
the ID number

setID

public void setID(int id)
Sets the Data ID.

Specified by:
setID in interface Data
Parameters:
id - the ID number