util.ui

## Class ProgramList

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JList
        - - util.ui.ProgramList

- All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener, javax.swing.event.ListDataListener, javax.swing.Scrollable, PluginStateListener, ProgramKeyActionListener, ProgramKeyAndContextMenuListener, ProgramKeyContextMenuListener, ProgramContextMenuListener, ProgramMouseActionListener, ProgramMouseAndContextMenuListener

      public class ProgramList
      extends javax.swing.JList
      implements javax.swing.event.ChangeListener, javax.swing.event.ListDataListener, PluginStateListener, ProgramMouseAndContextMenuListener, ProgramKeyAndContextMenuListener

  This Class extends a JList for showing Programs
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.JList

      `javax.swing.JList.AccessibleJList, javax.swing.JList.DropLocation`

    - ### 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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `DATE_SEPARATOR` Key for separator list entry

    - ### Fields inherited from class javax.swing.JList

      `HORIZONTAL_WRAP, VERTICAL, VERTICAL_WRAP`

    - ### 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

    Constructors
    Constructor and Description
    `ProgramList(javax.swing.ListModel programs)` Creates the JList and adds the default MouseListeners (PopUpBox)
    `ProgramList(javax.swing.ListModel programs, PluginPictureSettings settings)` Creates the JList and adds the default MouseListeners (PopUpBox)
    `ProgramList(javax.swing.ListModel programs, ProgramPanelSettings settings)` Creates the JList and adds the default MouseListeners (PopUpBox)
    `ProgramList(Program[] programArr)` Creates the JList and adds the default MouseListeners (PopUpBox)
    `ProgramList(Program[] programArr, PluginPictureSettings settings)` Creates the JList and adds the default MouseListeners (PopUpBox)
    `ProgramList(Program[] programArr, ProgramPanelSettings settings)` Creates the JList and adds the default MouseListeners (PopUpBox)
    `ProgramList(java.util.Vector<Program> programArr)` Creates the JList and adds the default MouseListeners (PopUpBox)
    `ProgramList(java.util.Vector<Program> programVector, PluginPictureSettings settings)` Creates the JList and adds the default MouseListeners (PopUpBox)
    `ProgramList(java.util.Vector<Program> programVector, ProgramPanelSettings settings)` Creates the JList and adds the default MouseListeners (PopUpBox)

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addDateSeparators()` Adds date separators to this list.
    `void` | `addMouseAndKeyListeners(ContextMenuIf caller)` Add a Mouse-Listener for the Popup-Box The caller ContextMenuIfs menus are not shown, if you want to have all available menus just use `null` for caller.
    `void` | `addMouseListeners(ContextMenuIf caller)` Deprecated. since 3.3.1 use `addMouseAndKeyListeners(ContextMenuIf)` instead.
    `void` | `addNotify()` Add a ChangeListener to all Programs for repainting
    `void` | `contentsChanged(javax.swing.event.ListDataEvent e)`
    `int` | `getNewIndexForOldIndex(int index)` Gets the new index of a row after adding of date separators.
    `static java.lang.String` | `getNextActionTooltip()`
    `static java.lang.String` | `getPreviousActionTooltip()`
    `Program` | `getProgramForKeyEvent(java.awt.event.KeyEvent e)` Gets the program to use for a key action.
    `Program` | `getProgramForMouseEvent(java.awt.event.MouseEvent e)` Gets the program to use for a mouse action.
    `Program[]` | `getSelectedPrograms()`
    `java.lang.String` | `getToolTipText(java.awt.event.MouseEvent event)`
    `void` | `intervalAdded(javax.swing.event.ListDataEvent e)`
    `void` | `intervalRemoved(javax.swing.event.ListDataEvent e)`
    `void` | `keyEventActionFinished()` Called when KeyEventAction was finished.
    `void` | `mouseEventActionFinished()` Called when MouseEventAction was finished.
    `void` | `pluginActivated(PluginProxy plugin)`
    `void` | `pluginDeactivated(PluginProxy plugin)`
    `void` | `pluginLoaded(PluginProxy plugin)`
    `void` | `pluginUnloaded(PluginProxy plugin)`
    `void` | `removeNotify()` Remove a ChangeListener to all Programs
    `void` | `scrollToFirstOccurrenceOfTimeFromCurrentViewOnwardIfAvailable(int time)` Scrolls the list to the first occurrence of the given time from the current view onward (if time is available)
    `void` | `scrollToNextDateIfAvailable(Date date)` Scrolls the list to given date (if date is available)
    `void` | `scrollToNextDayIfAvailable()` Scrolls the list to next day from the current view position (if next day is available)
    `void` | `scrollToPreviousDayIfAvailable()` Scrolls the list to previous day from the current view position (if previous day is available)
    `void` | `scrollToTimeFromCurrentViewIfAvailable(int time)` Scrolls the list to the first occurrence of the given time from the current view backward if time is smaller than the current views first time, forward if time is bigger than the current views first time.
    `void` | `setModel(javax.swing.ListModel model)`
    `void` | `showContextMenu(java.awt.event.MouseEvent e)` Show a context menu on the triggered event.
    `void` | `showContextMenu(Program program)` Show a context menu on the triggered program.
    `void` | `stateChanged(javax.swing.event.ChangeEvent e)`

    - ### Methods inherited from class javax.swing.JList

      `addListSelectionListener, addSelectionInterval, clearSelection, createSelectionModel, ensureIndexIsVisible, fireSelectionValueChanged, getAccessibleContext, getAnchorSelectionIndex, getCellBounds, getCellRenderer, getDragEnabled, getDropLocation, getDropMode, getFirstVisibleIndex, getFixedCellHeight, getFixedCellWidth, getLastVisibleIndex, getLayoutOrientation, getLeadSelectionIndex, getListSelectionListeners, getMaxSelectionIndex, getMinSelectionIndex, getModel, getNextMatch, getPreferredScrollableViewportSize, getPrototypeCellValue, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedIndex, getSelectedIndices, getSelectedValue, getSelectedValues, getSelectedValuesList, getSelectionBackground, getSelectionForeground, getSelectionMode, getSelectionModel, getUI, getUIClassID, getValueIsAdjusting, getVisibleRowCount, indexToLocation, isSelectedIndex, isSelectionEmpty, locationToIndex, paramString, removeListSelectionListener, removeSelectionInterval, setCellRenderer, setDragEnabled, setDropMode, setFixedCellHeight, setFixedCellWidth, setLayoutOrientation, setListData, setListData, setPrototypeCellValue, setSelectedIndex, setSelectedIndices, setSelectedValue, setSelectionBackground, setSelectionForeground, setSelectionInterval, setSelectionMode, setSelectionModel, setUI, setValueIsAdjusting, setVisibleRowCount, updateUI`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, 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, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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, 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, 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, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DATE_SEPARATOR

          public static final java.lang.String DATE_SEPARATOR

      Key for separator list entry
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ProgramList

          public ProgramList(java.util.Vector<Program> programArr)

      Creates the JList and adds the default MouseListeners (PopUpBox)
      Parameters:
        `programArr` - Array of Programs to show

    - #### ProgramList

          public ProgramList(Program[] programArr)

      Creates the JList and adds the default MouseListeners (PopUpBox)
      Parameters:
        `programArr` - Array of Programs to show

    - #### ProgramList

          public ProgramList(javax.swing.ListModel programs)

      Creates the JList and adds the default MouseListeners (PopUpBox)
      Parameters:
        `programs` - Model with Programs to show

    - #### ProgramList

          public ProgramList(java.util.Vector<Program> programVector,
                     ProgramPanelSettings settings)

      Creates the JList and adds the default MouseListeners (PopUpBox)
      Parameters:
        `programVector` - Array of Programs to show
        `settings` - The settings for the program panel.
      Since:
        2.2.2

    - #### ProgramList

          public ProgramList(Program[] programArr,
                     ProgramPanelSettings settings)

      Creates the JList and adds the default MouseListeners (PopUpBox)
      Parameters:
        `programArr` - Array of Programs to show
        `settings` - The settings for the program panel.
      Since:
        2.2.2

    - #### ProgramList

          public ProgramList(javax.swing.ListModel programs,
                     ProgramPanelSettings settings)

      Creates the JList and adds the default MouseListeners (PopUpBox)
      Parameters:
        `programs` - Model with Programs to show
        `settings` - The settings for the program panel.
      Since:
        2.2.2

    - #### ProgramList

          public ProgramList(java.util.Vector<Program> programVector,
                     PluginPictureSettings settings)

      Creates the JList and adds the default MouseListeners (PopUpBox)
      Parameters:
        `programVector` - Array of Programs to show
        `settings` - The plugin picture settings for the program panel.
      Since:
        2.6

    - #### ProgramList

          public ProgramList(Program[] programArr,
                     PluginPictureSettings settings)

      Creates the JList and adds the default MouseListeners (PopUpBox)
      Parameters:
        `programArr` - Array of Programs to show
        `settings` - The plugin picture settings for the program panel.
      Since:
        2.6

    - #### ProgramList

          public ProgramList(javax.swing.ListModel programs,
                     PluginPictureSettings settings)

      Creates the JList and adds the default MouseListeners (PopUpBox)
      Parameters:
        `programs` - Model with Programs to show
        `settings` - The plugin picture settings for the program panel.
      Since:
        2.6

  - ### Method Detail

    - #### addNotify

          public void addNotify()

      Add a ChangeListener to all Programs for repainting
      Overrides:
        `addNotify` in class `javax.swing.JComponent`

    - #### removeNotify

          public void removeNotify()

      Remove a ChangeListener to all Programs
      Overrides:
        `removeNotify` in class `javax.swing.JComponent`

    - #### addMouseListeners

          public void addMouseListeners(ContextMenuIf caller)

      Deprecated. since 3.3.1 use `addMouseAndKeyListeners(ContextMenuIf)` instead.
      Add a Mouse-Listener for the Popup-Box The caller ContextMenuIfs menus are not shown, if you want to have all available menus just use `null` for caller.
      Parameters:
        `caller` - The ContextMenuIf that called this.

    - #### addMouseAndKeyListeners

          public void addMouseAndKeyListeners(ContextMenuIf caller)

      Add a Mouse-Listener for the Popup-Box The caller ContextMenuIfs menus are not shown, if you want to have all available menus just use `null` for caller.
      Parameters:
        `caller` - The ContextMenuIf that called this.

    - #### stateChanged

          public void stateChanged(javax.swing.event.ChangeEvent e)

      Specified by:
        `stateChanged` in interface `javax.swing.event.ChangeListener`

    - #### contentsChanged

          public void contentsChanged(javax.swing.event.ListDataEvent e)

      Specified by:
        `contentsChanged` in interface `javax.swing.event.ListDataListener`

    - #### intervalAdded

          public void intervalAdded(javax.swing.event.ListDataEvent e)

      Specified by:
        `intervalAdded` in interface `javax.swing.event.ListDataListener`

    - #### intervalRemoved

          public void intervalRemoved(javax.swing.event.ListDataEvent e)

      Specified by:
        `intervalRemoved` in interface `javax.swing.event.ListDataListener`

    - #### getSelectedPrograms

          public Program[] getSelectedPrograms()

      Returns:
        The selected programs;
      Since:
        2.2

    - #### pluginActivated

          public void pluginActivated(PluginProxy plugin)

      Specified by:
        `pluginActivated` in interface `PluginStateListener`

    - #### pluginDeactivated

          public void pluginDeactivated(PluginProxy plugin)

      Specified by:
        `pluginDeactivated` in interface `PluginStateListener`

    - #### pluginLoaded

          public void pluginLoaded(PluginProxy plugin)

      Specified by:
        `pluginLoaded` in interface `PluginStateListener`

    - #### pluginUnloaded

          public void pluginUnloaded(PluginProxy plugin)

      Specified by:
        `pluginUnloaded` in interface `PluginStateListener`

    - #### getToolTipText

          public java.lang.String getToolTipText(java.awt.event.MouseEvent event)

      Overrides:
        `getToolTipText` in class `javax.swing.JList`

    - #### addDateSeparators

          public void addDateSeparators()
                                 throws TvBrowserException

      Adds date separators to this list. This needs to be called every time the list elements are changed.

      Throws:
        `TvBrowserException` - Thrown if used ListModel is not `#javax.swing.DefaultListModel` or a child class of it.
      Since:
        3.2.2

    - #### setModel

          public void setModel(javax.swing.ListModel model)

      Overrides:
        `setModel` in class `javax.swing.JList`

    - #### scrollToNextDateIfAvailable

          public void scrollToNextDateIfAvailable(Date date)

      Scrolls the list to given date (if date is available)

      Parameters:
        `date` - The date to scroll to.
      Since:
        3.3.4

    - #### scrollToTimeFromCurrentViewIfAvailable

          public void scrollToTimeFromCurrentViewIfAvailable(int time)

      Scrolls the list to the first occurrence of the given time from the current view backward if time is smaller than the current views first time, forward if time is bigger than the current views first time.

      Parameters:
        `time` - The time in minutes from midnight to scroll to.
      Since:
        3.3.4

    - #### scrollToFirstOccurrenceOfTimeFromCurrentViewOnwardIfAvailable

          public void scrollToFirstOccurrenceOfTimeFromCurrentViewOnwardIfAvailable(int time)

      Scrolls the list to the first occurrence of the given time from the current view onward (if time is available)

      Parameters:
        `time` - The time in minutes from midnight.
      Since:
        3.3.4

    - #### scrollToNextDayIfAvailable

          public void scrollToNextDayIfAvailable()

      Scrolls the list to next day from the current view position (if next day is available)

      Since:
        3.2.2

    - #### scrollToPreviousDayIfAvailable

          public void scrollToPreviousDayIfAvailable()

      Scrolls the list to previous day from the current view position (if previous day is available)

      Since:
        3.2.2

    - #### getNewIndexForOldIndex

          public int getNewIndexForOldIndex(int index)

      Gets the new index of a row after adding of date separators.

      Parameters:
        `index` - The old index of the row.
      Returns:
        The new index or the given index if no separators were added.
      Since:
        3.2.2

    - #### getPreviousActionTooltip

          public static java.lang.String getPreviousActionTooltip()

      Returns:
        The tool tip text for the previous scroll action,

    - #### getNextActionTooltip

          public static java.lang.String getNextActionTooltip()

      Returns:
        The tool tip text for the next scroll action,

    - #### getProgramForMouseEvent

          public Program getProgramForMouseEvent(java.awt.event.MouseEvent e)

      Description copied from interface: `ProgramMouseActionListener`
      Gets the program to use for a mouse action.

      Specified by:
        `getProgramForMouseEvent` in interface `ProgramMouseActionListener`
      Parameters:
        `e` - The mouse event that was triggered for a user mouse interaction.
      Returns:
        The program that was affected by the user mouse interaction or `null` if no program was affected.

    - #### mouseEventActionFinished

          public void mouseEventActionFinished()

      Description copied from interface: `ProgramMouseActionListener`
      Called when MouseEventAction was finished.
      Specified by:
        `mouseEventActionFinished` in interface `ProgramMouseActionListener`

    - #### showContextMenu

          public void showContextMenu(java.awt.event.MouseEvent e)

      Description copied from interface: `ProgramContextMenuListener`
      Show a context menu on the triggered event.

      Specified by:
        `showContextMenu` in interface `ProgramContextMenuListener`
      Parameters:
        `e` - The MouseEvent that has triggered the popup event.

    - #### getProgramForKeyEvent

          public Program getProgramForKeyEvent(java.awt.event.KeyEvent e)

      Description copied from interface: `ProgramKeyActionListener`
      Gets the program to use for a key action.

      Specified by:
        `getProgramForKeyEvent` in interface `ProgramKeyActionListener`
      Parameters:
        `e` - The key event that was triggered for a user keyboard interaction.
      Returns:
        The program that was affected by the user keyboard interaction or `null` if no program was affected.

    - #### keyEventActionFinished

          public void keyEventActionFinished()

      Description copied from interface: `ProgramKeyActionListener`
      Called when KeyEventAction was finished.
      Specified by:
        `keyEventActionFinished` in interface `ProgramKeyActionListener`

    - #### showContextMenu

          public void showContextMenu(Program program)

      Description copied from interface: `ProgramKeyContextMenuListener`
      Show a context menu on the triggered program.

      Specified by:
        `showContextMenu` in interface `ProgramKeyContextMenuListener`
      Parameters:
        `program` - The program that has triggered the popup event.

TV-Browser 3.4.3, Copyright (C) 2004-2008 TV-Browser Team (dev@tvbrowser.org)