org.tanager.ui
Class CSelectablePlaylistViewer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.AbstractButton
                  extended by org.tanager.ui.CScrollablePane
                      extended by org.tanager.ui.CPlaylistViewer
                          extended by org.tanager.ui.CSelectablePlaylistViewer
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, javax.swing.SwingConstants, IButtonHandler, IDownButtonCallback, ILeftButtonCallback, IMenuButtonCallback, IMiddleButtonCallback, IMouseDoubleClickCallback, IPowerButtonCallback, IUpButtonCallback

public class CSelectablePlaylistViewer
extends CPlaylistViewer
implements IMiddleButtonCallback, IMouseDoubleClickCallback

This class extends a CPlaylistViewer by adding the ability to select one of the songs.

Version:
$Revision: 1.2.2.6 $
Author:
Bob Lavey
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.AbstractButton
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
 
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
private  CMiddleButtonAction middleButtonCallback_
           Represents the middle button callback.
private  CMouseDoubleClickListener mouseDoubleClickCallback_
           Represents the mouse double-click callback.
private  java.util.Vector playlist_
           Represents the list of songs from the playlist.
 
Fields inherited from class org.tanager.ui.CPlaylistViewer
playlistTable_
 
Fields inherited from class org.tanager.ui.CScrollablePane
menuButtonCallback_, powerButtonCallback_
 
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
 
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
 
Constructor Summary
CSelectablePlaylistViewer(CPlaylistTypeEnum playlistType, java.util.Vector playlist, CUIStateContext uiStateContext)
           This is the only constructor allowed for a CSelectablePlaylistViewer object.
 
Method Summary
 CMiddleButtonAction getMiddleButtonCallback()
           This method returns the implementor's middle button callback.
private  java.util.Vector getPlaylist()
          Poseidon-generated accessor method.
 void middleButtonPressed()
           This method is used to process the middleButtonPressed() event.
 void mouseDoubleClicked()
           This method is used to process the mouseDoubleClicked() event.
private  void songSelected()
           This method is used to process the song selection.
 boolean supportsMiddleButton()
           This method indicates whether or not the implementor supports the middle button.
 
Methods inherited from class org.tanager.ui.CPlaylistViewer
addMouseDoubleClickListener, addPlaylistViewerListener, debugPlaylistViewerButton, downButtonPressed, getDownButtonCallback, getLeftButtonCallback, getPlaylistTable, getUpButtonCallback, leftButtonPressed, supportsDownButton, supportsLeftButton, supportsUpButton, upButtonPressed
 
Methods inherited from class org.tanager.ui.CScrollablePane
addListener, getListeners, getMenuButtonCallback, getMouseDoubleClickCallback, getPowerButtonCallback, getRightButtonCallback, getStopButtonCallback, getTheUIStateContext, menuButtonPressed, powerButtonPressed, setScrollPane, supportsMenuButton, supportsMouseDoubleClick, supportsPowerButton, supportsRightButton, supportsStopButton
 
Methods inherited from class javax.swing.AbstractButton
addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, configurePropertiesFromAction, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, paramString, removeActionListener, removeChangeListener, removeItemListener, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getUIClassID, 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, 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, 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

playlist_

private java.util.Vector playlist_

Represents the list of songs from the playlist.


middleButtonCallback_

private CMiddleButtonAction middleButtonCallback_

Represents the middle button callback.


mouseDoubleClickCallback_

private CMouseDoubleClickListener mouseDoubleClickCallback_

Represents the mouse double-click callback.

Constructor Detail

CSelectablePlaylistViewer

public CSelectablePlaylistViewer(CPlaylistTypeEnum playlistType,
                                 java.util.Vector playlist,
                                 CUIStateContext uiStateContext)

This is the only constructor allowed for a CSelectablePlaylistViewer object. The caller must supply the playlist type and the playlist vector.

Semantics:
  1. call our superclass' constructor passing the given playlist type, playlist, and UI State Context
  2. save the given playlist vector
  3. add our mouse double-click listener to the list of listeners

Parameters:
playlistType - the playlist type
playlist - the playlist vector
uiStateContext - the State Context that controls the menus
Method Detail

getPlaylist

private java.util.Vector getPlaylist()

Poseidon-generated accessor method.

Returns:

supportsMiddleButton

public boolean supportsMiddleButton()

This method indicates whether or not the implementor supports the middle button.

Semantics:
  1. return true

Specified by:
supportsMiddleButton in interface IButtonHandler
Overrides:
supportsMiddleButton in class CScrollablePane
Returns:
true

getMiddleButtonCallback

public CMiddleButtonAction getMiddleButtonCallback()

This method returns the implementor's middle button callback. Note: that this method is only valid when supportsMiddleButton() returns true

Semantics:
  1. return our middle button callback

Specified by:
getMiddleButtonCallback in interface IButtonHandler
Overrides:
getMiddleButtonCallback in class CScrollablePane
Returns:
our middle button callback

middleButtonPressed

public void middleButtonPressed()

This method is used to process the middleButtonPressed() event. This is part of the IMiddleButtonCallback interface.

Semantics:
  1. get the index of the currently-selected item
  2. use the index to get the action associated with the currently-selected item
  3. call our songSelected() method

Specified by:
middleButtonPressed in interface IMiddleButtonCallback

mouseDoubleClicked

public void mouseDoubleClicked()

This method is used to process the mouseDoubleClicked() event. This is part of the IMouseDoubleClickedCallback interface.

Semantics:
  1. call our songSelected() method

Specified by:
mouseDoubleClicked in interface IMouseDoubleClickCallback

songSelected

private void songSelected()

This method is used to process the song selection.

Semantics:
  1. get the index of the currently-selected song
  2. use the index to get the song's UUID
  3. call each listener's deleteSong() method passing the selected song's UUID