org.opensourcephysics.cabrillo.tracker
Class TableTrackView

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JScrollPane
                  extended by org.opensourcephysics.cabrillo.tracker.TrackView
                      extended by org.opensourcephysics.cabrillo.tracker.TableTrackView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.ScrollPaneConstants

public class TableTrackView
extends TrackView

This displays a table view of a track on a TrackerPanel.

Author:
Douglas Brown, John Welch
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JScrollPane
javax.swing.JScrollPane.AccessibleJScrollPane, javax.swing.JScrollPane.ScrollBar
 
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
protected  javax.swing.JMenuItem addDelimiterItem
           
protected  javax.swing.JCheckBox[] checkBoxes
           
protected  javax.swing.JButton columnsButton
           
protected  javax.swing.JPanel columnsPanel
           
protected  javax.swing.JScrollPane columnsScroller
           
protected  javax.swing.JMenuItem copyDataFormattedItem
           
protected  javax.swing.JMenu copyDataMenu
           
protected  javax.swing.JMenuItem copyDataRawItem
           
protected  javax.swing.JMenuItem copyImageItem
           
protected  javax.swing.JMenuItem createTextColumnItem
           
protected  DatasetManager data
           
protected  javax.swing.JMenuItem dataBuilderItem
           
protected  DataTable dataTable
           
protected  javax.swing.JMenuItem dataToolItem
           
protected  java.util.Map<java.lang.String,javax.swing.table.TableCellRenderer> degreeRenderers
           
protected  javax.swing.JMenuItem deleteDataFunctionItem
           
protected  javax.swing.JMenu deleteTextColumnMenu
           
protected  java.awt.Font font
           
protected  javax.swing.JMenuItem formatDialogItem
           
protected  javax.swing.JMenuItem helpItem
           
protected  int highlightRow
           
protected  boolean highlightVisible
           
protected  int leadCol
           
protected  TableTView parentView
           
protected  javax.swing.JPopupMenu popup
           
protected  javax.swing.JMenuItem printItem
           
protected  boolean refresh
           
protected  javax.swing.JMenuItem removeDelimiterItem
           
protected  javax.swing.JMenu renameTextColumnMenu
           
protected  java.util.TreeSet<java.lang.Double> selectedIndepVarValues
           
protected  javax.swing.JMenu setDelimiterMenu
           
protected  javax.swing.JMenuItem snapshotItem
           
protected  DatasetManager tableData
           
protected  org.opensourcephysics.cabrillo.tracker.TableTrackView.TextColumnEditor textColumnEditor
           
protected  javax.swing.JMenu textColumnMenu
           
protected  org.opensourcephysics.cabrillo.tracker.TableTrackView.TextColumnTableModel textColumnModel
           
protected  java.util.ArrayList<java.lang.String> textColumnNames
           
protected  java.util.Set<java.lang.String> textColumnsVisible
           
protected  java.lang.String xVar
           
protected  java.lang.String yVar
           
 
Fields inherited from class org.opensourcephysics.cabrillo.tracker.TrackView
toolbarComponents, track, trackerPanel
 
Fields inherited from class javax.swing.JScrollPane
columnHeader, horizontalScrollBar, horizontalScrollBarPolicy, lowerLeft, lowerRight, rowHeader, upperLeft, upperRight, verticalScrollBar, verticalScrollBarPolicy, viewport
 
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 javax.swing.ScrollPaneConstants
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TableTrackView(TTrack track, TrackerPanel panel, TableTView view)
          Constructs a TrackTableView of the specified track on the specified tracker panel.
 
Method Summary
protected  void createGUI()
          Creates the GUI.
protected  java.lang.String[] getDataColumnNames()
          Gets an array of all column names.
 DataTable getDataTable()
          Gets the datatable.
protected  double getIndepVarValueAtRow(int row)
          Gets the independent variable value at a view row.
protected  TViewChooser getOwner()
          Gets the TViewChooser that owns (displays) this view.
protected  javax.swing.JPopupMenu getPopup()
           
protected  int getRowFromIndepVarValue(double indepVarValue)
          Gets the view row at which an independent variable value is found.
protected  double[] getSelectedIndepVarValues()
          Gets the selected independent variable values.
 java.util.ArrayList<java.awt.Component> getToolBarComponents()
          Gets the toolbar components
protected  java.lang.String getUniqueColumnName(java.lang.String previous, boolean tryAgain)
          Gets a unique new name for a text column.
 javax.swing.JButton getViewButton()
          Gets the view button
 boolean isCustomState()
          Returns true if this trackview is in a custom state.
 void propertyChange(java.beans.PropertyChangeEvent e)
          Responds to property change events.
 void refresh(int frameNumber)
          Refreshes this view.
protected  javax.swing.JScrollPane refreshColumnCheckboxes()
          Refreshes the column visibility checkboxes.
protected  javax.swing.JMenu refreshCopyDataMenu(javax.swing.JMenu menu)
          Refreshes a menu with appropriate copy data items for this view.
 void setFont(java.awt.Font font)
           
protected  void setHighlighted(int frameNumber)
          Sets the highlighted point.
protected  void setSelectedIndepVarValues(double[] vals)
          Sets the selected independent variable values.
 void setVisible(int index, boolean visible)
          Sets the visibility of a dataset specified by index
 void setVisible(java.lang.String name, boolean visible)
          Sets the visibility of a data or text column specified by name
 void snapshot()
          Creates a snapshot of this view or its parent TViewChooser, if any.
 
Methods inherited from class org.opensourcephysics.cabrillo.tracker.TrackView
getName, isRefreshEnabled
 
Methods inherited from class javax.swing.JScrollPane
createHorizontalScrollBar, createVerticalScrollBar, createViewport, getAccessibleContext, getColumnHeader, getCorner, getHorizontalScrollBar, getHorizontalScrollBarPolicy, getRowHeader, getUI, getUIClassID, getVerticalScrollBar, getVerticalScrollBarPolicy, getViewport, getViewportBorder, getViewportBorderBounds, isValidateRoot, isWheelScrollingEnabled, paramString, setColumnHeader, setColumnHeaderView, setComponentOrientation, setCorner, setHorizontalScrollBar, setHorizontalScrollBarPolicy, setLayout, setRowHeader, setRowHeaderView, setUI, setVerticalScrollBar, setVerticalScrollBarPolicy, setViewport, setViewportBorder, setViewportView, setWheelScrollingEnabled, 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, 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, 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, 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, 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, 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, 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
 

Field Detail

parentView

protected TableTView parentView

dataTable

protected DataTable dataTable

columnsButton

protected javax.swing.JButton columnsButton

popup

protected javax.swing.JPopupMenu popup

columnsPanel

protected javax.swing.JPanel columnsPanel

columnsScroller

protected javax.swing.JScrollPane columnsScroller

data

protected DatasetManager data

tableData

protected DatasetManager tableData

checkBoxes

protected javax.swing.JCheckBox[] checkBoxes

formatDialogItem

protected javax.swing.JMenuItem formatDialogItem

copyDataMenu

protected javax.swing.JMenu copyDataMenu

copyDataRawItem

protected javax.swing.JMenuItem copyDataRawItem

copyDataFormattedItem

protected javax.swing.JMenuItem copyDataFormattedItem

setDelimiterMenu

protected javax.swing.JMenu setDelimiterMenu

addDelimiterItem

protected javax.swing.JMenuItem addDelimiterItem

removeDelimiterItem

protected javax.swing.JMenuItem removeDelimiterItem

copyImageItem

protected javax.swing.JMenuItem copyImageItem

snapshotItem

protected javax.swing.JMenuItem snapshotItem

printItem

protected javax.swing.JMenuItem printItem

helpItem

protected javax.swing.JMenuItem helpItem

dataToolItem

protected javax.swing.JMenuItem dataToolItem

dataBuilderItem

protected javax.swing.JMenuItem dataBuilderItem

deleteDataFunctionItem

protected javax.swing.JMenuItem deleteDataFunctionItem

createTextColumnItem

protected javax.swing.JMenuItem createTextColumnItem

textColumnMenu

protected javax.swing.JMenu textColumnMenu

deleteTextColumnMenu

protected javax.swing.JMenu deleteTextColumnMenu

renameTextColumnMenu

protected javax.swing.JMenu renameTextColumnMenu

xVar

protected java.lang.String xVar

yVar

protected java.lang.String yVar

refresh

protected boolean refresh

highlightVisible

protected boolean highlightVisible

highlightRow

protected int highlightRow

leadCol

protected int leadCol

font

protected java.awt.Font font

selectedIndepVarValues

protected java.util.TreeSet<java.lang.Double> selectedIndepVarValues

degreeRenderers

protected java.util.Map<java.lang.String,javax.swing.table.TableCellRenderer> degreeRenderers

textColumnModel

protected org.opensourcephysics.cabrillo.tracker.TableTrackView.TextColumnTableModel textColumnModel

textColumnEditor

protected org.opensourcephysics.cabrillo.tracker.TableTrackView.TextColumnEditor textColumnEditor

textColumnsVisible

protected java.util.Set<java.lang.String> textColumnsVisible

textColumnNames

protected java.util.ArrayList<java.lang.String> textColumnNames
Constructor Detail

TableTrackView

public TableTrackView(TTrack track,
                      TrackerPanel panel,
                      TableTView view)
Constructs a TrackTableView of the specified track on the specified tracker panel.

Parameters:
track - the track
panel - the tracker panel
view - the TableTView that will display this
Method Detail

refresh

public void refresh(int frameNumber)
Refreshes this view.

Parameters:
frameNumber - the frame number

getDataTable

public DataTable getDataTable()
Gets the datatable.

Returns:
the datatable

getToolBarComponents

public java.util.ArrayList<java.awt.Component> getToolBarComponents()
Gets the toolbar components

Overrides:
getToolBarComponents in class TrackView
Returns:
an ArrayList of components to be added to a toolbar

getViewButton

public javax.swing.JButton getViewButton()
Gets the view button

Returns:
the view button

isCustomState

public boolean isCustomState()
Returns true if this trackview is in a custom state.

Returns:
true if in a custom state, false if in the default state

setVisible

public void setVisible(int index,
                       boolean visible)
Sets the visibility of a dataset specified by index

Parameters:
index - the index of the column
visible - true to show the dataset column in the table

setVisible

public void setVisible(java.lang.String name,
                       boolean visible)
Sets the visibility of a data or text column specified by name

Parameters:
name - the name of the column
visible - true to show the column in the table

setHighlighted

protected void setHighlighted(int frameNumber)
Sets the highlighted point.

Parameters:
frameNumber - the frame number

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent e)
Responds to property change events.

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

snapshot

public void snapshot()
Creates a snapshot of this view or its parent TViewChooser, if any.


setFont

public void setFont(java.awt.Font font)
Overrides:
setFont in class javax.swing.JComponent

getOwner

protected TViewChooser getOwner()
Gets the TViewChooser that owns (displays) this view.

Returns:
the TViewChooser

getIndepVarValueAtRow

protected double getIndepVarValueAtRow(int row)
Gets the independent variable value at a view row.

Parameters:
row - the table row
Returns:
the value

getRowFromIndepVarValue

protected int getRowFromIndepVarValue(double indepVarValue)
Gets the view row at which an independent variable value is found.

Parameters:
indepVarValue - the value
Returns:
the view row

getSelectedIndepVarValues

protected double[] getSelectedIndepVarValues()
Gets the selected independent variable values.

Returns:
double[] of selected values

setSelectedIndepVarValues

protected void setSelectedIndepVarValues(double[] vals)
Sets the selected independent variable values.

Parameters:
vals - the values to select

createGUI

protected void createGUI()
Creates the GUI.


getPopup

protected javax.swing.JPopupMenu getPopup()

getUniqueColumnName

protected java.lang.String getUniqueColumnName(java.lang.String previous,
                                               boolean tryAgain)
Gets a unique new name for a text column.

Parameters:
previous - the previous name (may be null)
Returns:
the new name

refreshCopyDataMenu

protected javax.swing.JMenu refreshCopyDataMenu(javax.swing.JMenu menu)
Refreshes a menu with appropriate copy data items for this view.

Parameters:
menu - the menu to refresh
Returns:
the refreshed menu

getDataColumnNames

protected java.lang.String[] getDataColumnNames()
Gets an array of all column names.

Returns:
the column names

refreshColumnCheckboxes

protected javax.swing.JScrollPane refreshColumnCheckboxes()
Refreshes the column visibility checkboxes.

Returns:
a JScrollPane with the refreshed column checkboxes