artisynth.core.gui.timeline
Class Track

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 artisynth.core.gui.timeline.Track
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class Track
extends javax.swing.JPanel

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.BaselineResizeBehavior
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
Track(int type, java.lang.String nameTrack, TimelineController controller)
           
 
Method Summary
 ProbeInfo addProbeFromRoot(Probe probe)
           
 void addShowHideButton(boolean show)
          Add a button to show or hide the group of contiguous tracks.
 void appendProbes(java.util.LinkedList<Probe> list)
           
 void attachProbeInfo(ProbeInfo pInfo)
          to attach the probe info
 int calcInsertionPoint(double[] range, ProbeInfo pinfo)
          [0] - start time [1] - stop time [2] - insertion index
 int computeTrackYCoor()
          compute the track coordinates
 void deleteProbe(int indexProbe, boolean isParentTrackDeleted)
          delete a probe from the track, need to give the index of the probe
 boolean deleteProbe(Probe probe)
           
 void deleteThisTrack(boolean isParentModelDeleted)
          delete the track
 void deselect()
          Deselect a track.
 void detachProbeInfo(ProbeInfo pInfo)
          detach the probe info
 void dispose()
           
 Track getGroupParent()
           
 int getProbeIndex(Probe probe)
           
 java.util.ArrayList<ProbeInfo> getProbeInfos()
           
 java.lang.Integer getTrackNumber()
          get the track number of the current track
 boolean hasSpaceForProbe(Probe newProbe)
          find is there is enough space for the probe on this track
 boolean isDragValid(ProbeInfo pInfo, boolean isMove)
          is this a valid drag? this function determines if we have performed a valid drag
 boolean isEnabled()
          Check if a track is enabled or not.
 boolean isExpanded()
           
 boolean isInputTrack()
           
 boolean isSelected()
           
 boolean isVisible()
           
 void muteTrack(boolean mute)
           
 void paint(java.awt.Graphics g)
           
 void refreshTrackChanges()
           
 void removeShowHideButton()
           
 void select()
          Select a track for moving it around or grouping it with others.
 void setDecorated(boolean decorated)
           
 void setEnabled(boolean enabled)
          Set whether a track is enabled or not.
 void setExpanded(boolean expanded)
           
 void setGrouped(Track value)
          Set whether or not a track is part of a group.
 void setMutable(boolean enable)
           
 void setVisible(boolean value)
          Set if this track is visible or not.
 void updateProbeData()
           
 void updateProbeSizesAndLocations()
           
 void updateToggleStatus(int mode)
          update the toggle status
 void updateTrackSize(int trackLength, int workspaceWidth)
          update the track size
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, 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, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Track

public Track(int type,
             java.lang.String nameTrack,
             TimelineController controller)
Method Detail

addShowHideButton

public void addShowHideButton(boolean show)
Add a button to show or hide the group of contiguous tracks.

Parameters:
show - If true then display the 'show' button, if false display the 'hide' button

removeShowHideButton

public void removeShowHideButton()

setEnabled

public void setEnabled(boolean enabled)
Set whether a track is enabled or not. Enabling a track allows it to be expanded, muted and edited. Disabling a track means these actions can no longer be performed on the track. This is done to the track that is the parent of a group when the group is shown and hidden.

Overrides:
setEnabled in class javax.swing.JComponent
Parameters:
enabled -

getProbeIndex

public int getProbeIndex(Probe probe)

isEnabled

public boolean isEnabled()
Check if a track is enabled or not.

Overrides:
isEnabled in class java.awt.Component
Returns:
isEnabled

getTrackNumber

public java.lang.Integer getTrackNumber()
get the track number of the current track

Returns:
track number

updateProbeSizesAndLocations

public void updateProbeSizesAndLocations()

addProbeFromRoot

public ProbeInfo addProbeFromRoot(Probe probe)
Parameters:
probe -

calcInsertionPoint

public int calcInsertionPoint(double[] range,
                              ProbeInfo pinfo)
[0] - start time [1] - stop time [2] - insertion index


hasSpaceForProbe

public boolean hasSpaceForProbe(Probe newProbe)
find is there is enough space for the probe on this track

Parameters:
newProbe - The probe to be inserted if there is space in the track
Returns:
If there is space for this probe (boolean)

getProbeInfos

public java.util.ArrayList<ProbeInfo> getProbeInfos()

deleteProbe

public void deleteProbe(int indexProbe,
                        boolean isParentTrackDeleted)
delete a probe from the track, need to give the index of the probe

Parameters:
indexProbe -
isParentTrackDeleted -

deleteProbe

public boolean deleteProbe(Probe probe)

attachProbeInfo

public void attachProbeInfo(ProbeInfo pInfo)
to attach the probe info

Parameters:
pInfo -

detachProbeInfo

public void detachProbeInfo(ProbeInfo pInfo)
detach the probe info

Parameters:
pInfo -

muteTrack

public void muteTrack(boolean mute)

updateToggleStatus

public void updateToggleStatus(int mode)
update the toggle status

Parameters:
mode -

deleteThisTrack

public void deleteThisTrack(boolean isParentModelDeleted)
delete the track

Parameters:
isParentModelDeleted - Andrei's code simplification

updateTrackSize

public void updateTrackSize(int trackLength,
                            int workspaceWidth)
update the track size

Parameters:
trackLength -
workspaceWidth -

isDragValid

public boolean isDragValid(ProbeInfo pInfo,
                           boolean isMove)
is this a valid drag? this function determines if we have performed a valid drag

Parameters:
pInfo -
Returns:
is the drag valid or not

computeTrackYCoor

public int computeTrackYCoor()
compute the track coordinates

Returns:
Y coordinate to track

setExpanded

public void setExpanded(boolean expanded)

isExpanded

public boolean isExpanded()

isInputTrack

public boolean isInputTrack()

refreshTrackChanges

public void refreshTrackChanges()

setMutable

public void setMutable(boolean enable)

setVisible

public void setVisible(boolean value)
Set if this track is visible or not.

Overrides:
setVisible in class javax.swing.JComponent
Parameters:
value - The visible value.

isVisible

public boolean isVisible()
Overrides:
isVisible in class java.awt.Component

setGrouped

public void setGrouped(Track value)
Set whether or not a track is part of a group.

Parameters:
value - The first track in the group if the track is being grouped, null if the track is removed from the group.

getGroupParent

public Track getGroupParent()

select

public void select()
Select a track for moving it around or grouping it with others.


deselect

public void deselect()
Deselect a track.


isSelected

public boolean isSelected()

appendProbes

public void appendProbes(java.util.LinkedList<Probe> list)

updateProbeData

public void updateProbeData()

dispose

public void dispose()

paint

public void paint(java.awt.Graphics g)
Overrides:
paint in class javax.swing.JComponent

setDecorated

public void setDecorated(boolean decorated)