org.opensourcephysics.cabrillo.tracker
Class TrackControl

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JToolBar
                  extended by org.opensourcephysics.cabrillo.tracker.TrackControl
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.SwingConstants

public class TrackControl
extends javax.swing.JToolBar
implements java.awt.event.ActionListener, java.beans.PropertyChangeListener

This is a toolbar with buttons that control the creation and display of point masses and forces.

Author:
Douglas Brown
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JToolBar
javax.swing.JToolBar.AccessibleJToolBar, javax.swing.JToolBar.Separator
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  java.util.Map<java.lang.String,javax.swing.Action> actions
           
protected  javax.swing.JButton aVisButton
           
protected static java.util.Map<TrackerPanel,TrackControl> controls
           
protected  javax.swing.JDialog dialog
           
protected  javax.swing.JButton labelsButton
           
protected  int massCount
           
protected  javax.swing.JMenuItem newAnalyticParticleItem
           
protected  javax.swing.JButton newButton
           
protected  javax.swing.JMenuItem newCalibrationItem
           
protected  javax.swing.JMenuItem newCMItem
           
protected  javax.swing.JMenuItem newDynamicParticleCartesianItem
           
protected  javax.swing.JMenu newDynamicParticleMenu
           
protected  javax.swing.JMenuItem newDynamicParticlePolarItem
           
protected  javax.swing.JMenuItem newLineProfileItem
           
protected  javax.swing.JMenuItem newOffsetItem
           
protected  javax.swing.JMenuItem newPointMassItem
           
protected  javax.swing.JMenuItem newRGBRegionItem
           
protected  javax.swing.JMenuItem newVectorItem
           
protected  javax.swing.JMenuItem newVectorSumItem
           
protected  javax.swing.JPopupMenu popup
           
protected  javax.swing.JButton pVisButton
           
protected  javax.swing.JButton showControlButton
           
protected  int stretch
           
protected  javax.swing.Icon stretch_1
           
protected  javax.swing.Icon stretch_2
           
protected  javax.swing.Icon stretch_4
           
protected  javax.swing.JButton stretchButton
           
protected  double totalMass
           
protected  javax.swing.JPanel trackBarPanel
           
protected  javax.swing.JToolBar[] trackBars
           
protected  boolean[] trackBarVis
           
protected  java.util.Map<TTrack,javax.swing.JButton> trackButtons
           
protected  TrackerPanel trackerPanel
           
protected  javax.swing.JButton trailButton
           
protected  javax.swing.Icon[] trailIcons
           
protected  int trailLength
           
protected static int[] trailLengths
           
protected  javax.swing.JButton vVisButton
           
protected  javax.swing.JButton xMassButton
           
 
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.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Implements ActionListener.
static TrackControl getControl(TrackerPanel panel)
          Gets the track control for the specified tracker panel.
protected  javax.swing.JDialog getDialog()
          Gets the dialog containing this control.
protected  javax.swing.JPopupMenu getPopup(TTrack track)
          Gets the popup menu for the specified track.
 javax.swing.JButton getShowMeButton()
          Gets the button that shows/hides this control.
protected  javax.swing.JPopupMenu getTracksPopup()
          Refreshes and returns the "new tracks" popup menu.
 void propertyChange(java.beans.PropertyChangeEvent e)
          Responds to property change events from TrackerPanel.
protected  void refresh()
          Refreshes buttons and vectors.
 void reset()
          Resets buttons to default state.
 
Methods inherited from class javax.swing.JToolBar
add, addImpl, addSeparator, addSeparator, createActionChangeListener, createActionComponent, getAccessibleContext, getComponentAtIndex, getComponentIndex, getMargin, getOrientation, getUI, getUIClassID, isBorderPainted, isFloatable, isRollover, paintBorder, paramString, setBorderPainted, setFloatable, setLayout, setMargin, setOrientation, setRollover, 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, 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, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, 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, 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, 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

controls

protected static java.util.Map<TrackerPanel,TrackControl> controls

trailLengths

protected static int[] trailLengths

popup

protected javax.swing.JPopupMenu popup

trackerPanel

protected TrackerPanel trackerPanel

actions

protected java.util.Map<java.lang.String,javax.swing.Action> actions

stretch

protected int stretch

massCount

protected int massCount

totalMass

protected double totalMass

dialog

protected javax.swing.JDialog dialog

trackBarPanel

protected javax.swing.JPanel trackBarPanel

trackBars

protected javax.swing.JToolBar[] trackBars

trackBarVis

protected boolean[] trackBarVis

showControlButton

protected javax.swing.JButton showControlButton

pVisButton

protected javax.swing.JButton pVisButton

vVisButton

protected javax.swing.JButton vVisButton

aVisButton

protected javax.swing.JButton aVisButton

xMassButton

protected javax.swing.JButton xMassButton

trailButton

protected javax.swing.JButton trailButton

trailLength

protected int trailLength

labelsButton

protected javax.swing.JButton labelsButton

stretchButton

protected javax.swing.JButton stretchButton

newButton

protected javax.swing.JButton newButton

trackButtons

protected java.util.Map<TTrack,javax.swing.JButton> trackButtons

stretch_1

protected javax.swing.Icon stretch_1

stretch_2

protected javax.swing.Icon stretch_2

stretch_4

protected javax.swing.Icon stretch_4

trailIcons

protected javax.swing.Icon[] trailIcons

newPointMassItem

protected javax.swing.JMenuItem newPointMassItem

newCMItem

protected javax.swing.JMenuItem newCMItem

newVectorItem

protected javax.swing.JMenuItem newVectorItem

newVectorSumItem

protected javax.swing.JMenuItem newVectorSumItem

newOffsetItem

protected javax.swing.JMenuItem newOffsetItem

newCalibrationItem

protected javax.swing.JMenuItem newCalibrationItem

newLineProfileItem

protected javax.swing.JMenuItem newLineProfileItem

newRGBRegionItem

protected javax.swing.JMenuItem newRGBRegionItem

newAnalyticParticleItem

protected javax.swing.JMenuItem newAnalyticParticleItem

newDynamicParticleMenu

protected javax.swing.JMenu newDynamicParticleMenu

newDynamicParticleCartesianItem

protected javax.swing.JMenuItem newDynamicParticleCartesianItem

newDynamicParticlePolarItem

protected javax.swing.JMenuItem newDynamicParticlePolarItem
Method Detail

getControl

public static TrackControl getControl(TrackerPanel panel)
Gets the track control for the specified tracker panel.

Parameters:
panel - the tracker panel to control
Returns:
the track control

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Implements ActionListener.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - the action event

propertyChange

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

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

reset

public void reset()
Resets buttons to default state.


getShowMeButton

public javax.swing.JButton getShowMeButton()
Gets the button that shows/hides this control.

Returns:
a button

getDialog

protected javax.swing.JDialog getDialog()
Gets the dialog containing this control.

Returns:
a dialog

refresh

protected void refresh()
Refreshes buttons and vectors.


getPopup

protected javax.swing.JPopupMenu getPopup(TTrack track)
Gets the popup menu for the specified track.

Parameters:
track - the track
Returns:
the popup menu

getTracksPopup

protected javax.swing.JPopupMenu getTracksPopup()
Refreshes and returns the "new tracks" popup menu.

Returns:
the popup