org.opensourcephysics.cabrillo.tracker
Class TViewChooser

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.cabrillo.tracker.TViewChooser
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class TViewChooser
extends javax.swing.JPanel
implements java.beans.PropertyChangeListener

This is a panel with a toolbar for selecting and controlling TViews.

Author:
Douglas Brown
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
protected  javax.swing.JButton chooserButton
           
protected  int[] dividerLocs
           
protected  int dividerSize
           
protected static javax.swing.Icon maxIcon
           
protected  javax.swing.JButton maximizeButton
           
protected  boolean maximized
           
protected static javax.swing.Icon minIcon
           
protected  javax.swing.JPopupMenu popup
           
protected static javax.swing.Icon restoreIcon
           
protected  TView selectedView
           
protected  javax.swing.JToolBar toolbar
           
protected  java.awt.Component toolbarFiller
           
protected  TrackerPanel trackerPanel
           
protected  javax.swing.JPanel viewPanel
           
protected  java.util.ArrayList<TView> views
           
 
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
TViewChooser(TrackerPanel panel)
          Constructs a TViewChooser.
 
Method Summary
 void addView(int index, TView view)
          Adds a view of the tracker panel at a specified index
 void addView(TView view)
          Adds a view of the tracker panel
protected  void createDefaultViews()
          Creates default views
static XML.ObjectLoader getLoader()
          Returns an XML.ObjectLoader to save and load object data.
 java.awt.Dimension getMinimumSize()
          gets the TrackerPanel containing the tracks
 TView getSelectedView()
          Gets the selected view
 TrackerPanel getTrackerPanel()
          gets the TrackerPanel containing the tracks
 TView getView(java.lang.Class<?> c)
          Gets the view of the specified class.
 TView getView(java.lang.String viewName)
          Gets the view with the specified name.
 java.util.Collection<TView> getViews()
          Gets a list of the available views.
 java.util.Collection<TView> getViews(java.lang.Class<? extends TView> type)
          Gets a collection of views castable to the specified class or interface.
 void maximize()
          Maximizes this chooser and its views.
 void propertyChange(java.beans.PropertyChangeEvent e)
          Responds to property change events.
 void refresh()
          Refreshes this chooser and its views.
 void refreshMenus()
          Refreshes the popup menus of the views.
protected  void refreshToolbar()
          Refreshes the toolbar
 void removeView(TView view)
          Removes a view from this chooser
 void restore()
          Restores this chooser and its views.
 void setSelectedView(TView view)
          Selects the specified view
 
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, 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, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, 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, 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
 

Field Detail

minIcon

protected static javax.swing.Icon minIcon

maxIcon

protected static javax.swing.Icon maxIcon

restoreIcon

protected static javax.swing.Icon restoreIcon

trackerPanel

protected TrackerPanel trackerPanel

views

protected java.util.ArrayList<TView> views

selectedView

protected TView selectedView

viewPanel

protected javax.swing.JPanel viewPanel

toolbar

protected javax.swing.JToolBar toolbar

chooserButton

protected javax.swing.JButton chooserButton

toolbarFiller

protected java.awt.Component toolbarFiller

maximizeButton

protected javax.swing.JButton maximizeButton

popup

protected javax.swing.JPopupMenu popup

dividerLocs

protected int[] dividerLocs

dividerSize

protected int dividerSize

maximized

protected boolean maximized
Constructor Detail

TViewChooser

public TViewChooser(TrackerPanel panel)
Constructs a TViewChooser.

Parameters:
panel - the tracker panel being viewed
Method Detail

getMinimumSize

public java.awt.Dimension getMinimumSize()
gets the TrackerPanel containing the tracks

Overrides:
getMinimumSize in class javax.swing.JComponent
Returns:
the tracker panel

getTrackerPanel

public TrackerPanel getTrackerPanel()
gets the TrackerPanel containing the tracks

Returns:
the tracker panel

addView

public void addView(TView view)
Adds a view of the tracker panel

Parameters:
view - the view being added

addView

public void addView(int index,
                    TView view)
Adds a view of the tracker panel at a specified index

Parameters:
index - the list index desired
view - the view being added

removeView

public void removeView(TView view)
Removes a view from this chooser

Parameters:
view - the view requesting to be removed

getViews

public java.util.Collection<TView> getViews()
Gets a list of the available views.

Returns:
the list of views

getView

public TView getView(java.lang.String viewName)
Gets the view with the specified name. May return null.

Parameters:
viewName - the name of the view
Returns:
the view

getViews

public java.util.Collection<TView> getViews(java.lang.Class<? extends TView> type)
Gets a collection of views castable to the specified class or interface.

Parameters:
type - the class
Returns:
a collection of views

getView

public TView getView(java.lang.Class<?> c)
Gets the view of the specified class. May return null.

Parameters:
c - the view class
Returns:
the view

getSelectedView

public TView getSelectedView()
Gets the selected view

Returns:
the selected view

setSelectedView

public void setSelectedView(TView view)
Selects the specified view

Parameters:
view - the view to select

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent e)
Responds to property change events. ViewChooser listens for the following property names: "track" from trackerPanel

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

refresh

public void refresh()
Refreshes this chooser and its views.


refreshMenus

public void refreshMenus()
Refreshes the popup menus of the views.


maximize

public void maximize()
Maximizes this chooser and its views.


restore

public void restore()
Restores this chooser and its views.


createDefaultViews

protected void createDefaultViews()
Creates default views


refreshToolbar

protected void refreshToolbar()
Refreshes the toolbar


getLoader

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

Returns:
the XML.ObjectLoader