org.opensourcephysics.controls
Class XMLTable

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTable
                  extended by org.opensourcephysics.controls.XMLTable
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.CellEditorListener, javax.swing.event.ListSelectionListener, javax.swing.event.RowSorterListener, javax.swing.event.TableColumnModelListener, javax.swing.event.TableModelListener, javax.swing.Scrollable
Direct Known Subclasses:
OSPControlTable

public class XMLTable
extends javax.swing.JTable

This is a table view of an XML control and its property contents.

Author:
Douglas Brown
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTable
javax.swing.JTable.AccessibleJTable, javax.swing.JTable.DropLocation, javax.swing.JTable.PrintMode
 
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.JTable
AUTO_RESIZE_ALL_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_OFF, AUTO_RESIZE_SUBSEQUENT_COLUMNS, autoCreateColumnsFromModel, autoResizeMode, cellEditor, cellSelectionEnabled, columnModel, dataModel, defaultEditorsByColumnClass, defaultRenderersByColumnClass, editingColumn, editingRow, editorComp, gridColor, preferredViewportSize, rowHeight, rowMargin, rowSelectionAllowed, selectionBackground, selectionForeground, selectionModel, showHorizontalLines, showVerticalLines, tableHeader
 
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
XMLTable(XMLControl control)
          Constructor for XMLControl.
XMLTable(XMLTableModel model)
          Constructor for XMLTableModel.
 
Method Summary
 void addControlListener(java.lang.String methodName, java.lang.Object target)
          Adds a listener that invokes the given method in the given object when the xml data changes.
 void addControlListener(java.lang.String parameterName, java.lang.String methodName, java.lang.Object target)
          Adds a listener that invokes the given method in the given object when the xml data changes.
 java.awt.Color getBackgroundColor(java.lang.String propName)
          Gets the background color for a specified property name.
 javax.swing.table.TableCellEditor getCellEditor(int row, int column)
          Returns the editor for a cell specified by row and column.
 javax.swing.table.TableCellRenderer getCellRenderer(int row, int column)
          Returns the renderer for a cell specified by row and column.
 XMLControl getControl()
          Gets the currently displayed XMLControl.
 java.awt.Color getEditingColor(java.lang.String propName)
          Sets the color of the editor for a specified property name.
 java.awt.Color getSelectedColor(java.lang.String propName)
          Gets the color of a selected cell for a specified property name.
 boolean isCellEditable(int row, int col)
          Determines whether the given cell is editable.
 boolean isEditable()
          Returns true if editing is enabled for the entire table.
 boolean isEditable(java.lang.String propName)
          Returns true if editing is enabled for the specified property.
 void refresh()
           
 void setBackgroundColor(java.lang.String propName, java.awt.Color color)
          Sets the background color of the value field for a specified property name.
 void setEditable(boolean editable)
          Enables/disables editing for the entire table.
 void setEditable(java.lang.String propName, boolean editable)
          Enables/disables editing for a specified property name.
 void setEditingColor(java.lang.String propName, java.awt.Color color)
          Sets the default color of the editor for a specified property name.
 void setFont(java.awt.Font font)
          Sets the font.
 void setSelectedColor(java.lang.String propName, java.awt.Color color)
          Sets the color of a selected cell for a specified property name.
 void tableChanged(javax.swing.event.TableModelEvent e)
           
 
Methods inherited from class javax.swing.JTable
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, convertRowIndexToModel, convertRowIndexToView, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createDefaultTableHeader, createScrollPaneForTable, doLayout, editCellAt, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, getCellEditor, getCellRect, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditingRow, getEditorComponent, getFillsViewportHeight, getGridColor, getIntercellSpacing, getModel, getPreferredScrollableViewportSize, getPrintable, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getRowSorter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getToolTipText, getUI, getUIClassID, getUpdateSelectionOnSort, getValueAt, initializeLocalVars, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, print, print, print, print, print, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoCreateRowSorter, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnModel, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setDropMode, setEditingColumn, setEditingRow, setFillsViewportHeight, setGridColor, setIntercellSpacing, setModel, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setRowSorter, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setUpdateSelectionOnSort, setValueAt, sizeColumnsToFit, sizeColumnsToFit, sorterChanged, unconfigureEnclosingScrollPane, updateUI, valueChanged
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, 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, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, 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, 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
 

Constructor Detail

XMLTable

public XMLTable(XMLControl control)
Constructor for XMLControl.

Parameters:
control - the XMLcontrol

XMLTable

public XMLTable(XMLTableModel model)
Constructor for XMLTableModel.

Parameters:
model - the XMLTableModel
Method Detail

getControl

public XMLControl getControl()
Gets the currently displayed XMLControl.

Returns:
the XML control

setEditable

public void setEditable(boolean editable)
Enables/disables editing for the entire table. Overrides the editable property of individual parameters.

Parameters:
editable - true to enable editing

isEditable

public boolean isEditable()
Returns true if editing is enabled for the entire table. If table is editiable, editing can still be disabled for individual parameters.

Returns:
true if editable
See Also:
setEditable(String propName, boolean editable)

setEditable

public void setEditable(java.lang.String propName,
                        boolean editable)
Enables/disables editing for a specified property name. Properties are editable by default.

Parameters:
propName - the property name
editable - true to enable editing

isEditable

public boolean isEditable(java.lang.String propName)
Returns true if editing is enabled for the specified property.

Parameters:
propName - the name of the property
Returns:
true if editable

isCellEditable

public boolean isCellEditable(int row,
                              int col)
Determines whether the given cell is editable.

Overrides:
isCellEditable in class javax.swing.JTable
Parameters:
row - the row index
col - the column index
Returns:
true if editable

setFont

public void setFont(java.awt.Font font)
Sets the font. Overrides JTable method

Overrides:
setFont in class javax.swing.JComponent
Parameters:
font - the font

setSelectedColor

public void setSelectedColor(java.lang.String propName,
                             java.awt.Color color)
Sets the color of a selected cell for a specified property name. May be set to null.

Parameters:
propName - the property name
color - the color of the cell when selected

getSelectedColor

public java.awt.Color getSelectedColor(java.lang.String propName)
Gets the color of a selected cell for a specified property name.

Parameters:
propName - the property name
Returns:
the color

setBackgroundColor

public void setBackgroundColor(java.lang.String propName,
                               java.awt.Color color)
Sets the background color of the value field for a specified property name. May be set to null.

Parameters:
propName - the property name
color - the color

getBackgroundColor

public java.awt.Color getBackgroundColor(java.lang.String propName)
Gets the background color for a specified property name.

Parameters:
propName - the property name
Returns:
the color

setEditingColor

public void setEditingColor(java.lang.String propName,
                            java.awt.Color color)
Sets the default color of the editor for a specified property name. May be set to null.

Parameters:
propName - the property name
color - the color of the cell when being edited

getEditingColor

public java.awt.Color getEditingColor(java.lang.String propName)
Sets the color of the editor for a specified property name.

Parameters:
propName - the property name
Returns:
the color

getCellRenderer

public javax.swing.table.TableCellRenderer getCellRenderer(int row,
                                                           int column)
Returns the renderer for a cell specified by row and column.

Overrides:
getCellRenderer in class javax.swing.JTable
Parameters:
row - the row number
column - the column number
Returns:
the cell renderer

getCellEditor

public javax.swing.table.TableCellEditor getCellEditor(int row,
                                                       int column)
Returns the editor for a cell specified by row and column.

Overrides:
getCellEditor in class javax.swing.JTable
Parameters:
row - the row number
column - the column number
Returns:
the cell editor

refresh

public void refresh()

tableChanged

public void tableChanged(javax.swing.event.TableModelEvent e)
Specified by:
tableChanged in interface javax.swing.event.TableModelListener
Overrides:
tableChanged in class javax.swing.JTable

addControlListener

public void addControlListener(java.lang.String methodName,
                               java.lang.Object target)
Adds a listener that invokes the given method in the given object when the xml data changes. The method in the target is invoked with the table's variable name passed as a parameter. The method will be invoked for all parameter changes.

Parameters:
methodName - the name of the method
target - the target for the method

addControlListener

public void addControlListener(java.lang.String parameterName,
                               java.lang.String methodName,
                               java.lang.Object target)
Adds a listener that invokes the given method in the given object when the xml data changes. The method in the target is invoked with the table's variable name passed as a parameter. The method will be invoked for all parameter changes if the parameter name is null.

Parameters:
parameterName - the name of the parameter that will invoke the method
methodName - the name of the method that will be invoked
target - the target class for the method