com.explodingpixels.macwidgets

## Class SourceListControlBar

- java.lang.Object
- - com.explodingpixels.macwidgets.SourceListControlBar

-     public class SourceListControlBar
      extends Object

  A bar that can contain buttons and pop-down buttons that act on a given `SourceList`. This control bar is displayed at the base of the `SourceList`. The control bar also has a draggable widget that can control the divider location of a given `JSplitPane`.

  Heres how to create and install an empty `SourceListControlBar`:

       SourceList sourceList = DSourceListITunes.createSourceList();
       SourceListControlBar controlBar = new SourceListControlBar();
       sourceList.installSourceListControlBar(controlBar);

  The above code creates a control bar that looks like this:

  The following code adds two push buttons and a drop-down button to the control bar:

       controlBar.createAndAddPopdownButton(MacIcons.GEAR,
               new PopupMenuCustomizer() {
                   public void customizePopup(JPopupMenu popup) {
                       popup.removeAll();
                       popup.add(new JMenuItem("Item One"));
                       popup.add(new JMenuItem("Item Two"));
                       popup.add(new JMenuItem("Item Three"));
                   }
               });

  The above code creates a control bar that looks like this:

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SourceListControlBar()` Creates a `SourceListControlBar`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `createAndAddButton(Icon icon, ActionListener actionListener)` Adds a new button with the given icon.
    `void` | `createAndAddPopdownButton(Icon icon, PopupMenuCustomizer popupMenuCustomizer)` Add a new pop-down style button.
    `JComponent` | `getComponent()` Gets the user interface component representing this `SourceListControlBar`.
    `void` | `hideResizeHandle()` Hides the resize handle.
    `void` | `installDraggableWidgetOnSplitPane(JSplitPane splitPane)` Connects the draggable widget in this `SourceListControlBar` to the divider of the given `JSplitPane`.

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

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

- - ### Constructor Detail

    - #### SourceListControlBar

          public SourceListControlBar()

      Creates a `SourceListControlBar`.

  - ### Method Detail

    - #### installDraggableWidgetOnSplitPane

          public void installDraggableWidgetOnSplitPane(JSplitPane splitPane)

      Connects the draggable widget in this `SourceListControlBar` to the divider of the given `JSplitPane`. Thus when the user drags the `SourceListControlBar` draggable widget, the given `JSplitPane`s divider location will be adjusted.
      Parameters:
        `splitPane` - the `JSplitPane` to connect the draggable widget to.

    - #### getComponent

          public JComponent getComponent()

      Gets the user interface component representing this `SourceListControlBar`. The returned `JComponent` should be added to a container that will be displayed.
      Returns:
        the user interface component representing this `SourceListControlBar`.

    - #### createAndAddPopdownButton

          public void createAndAddPopdownButton(Icon icon,
                                       PopupMenuCustomizer popupMenuCustomizer)

      Add a new pop-down style button. The given `PopupMenuCustomizer` will be called just prior to each showing of the menu.
      Parameters:
        `icon` - the icon to use in the pop-down menu.
        `popupMenuCustomizer` - the `PopupMenuCustomizer` to be called just prior to showing the menu.

    - #### createAndAddButton

          public void createAndAddButton(Icon icon,
                                ActionListener actionListener)

      Adds a new button with the given icon. The given `ActionListener` will be called when the button is pressed.
      Parameters:
        `icon` - the icon to use for the button.
        `actionListener` - the `ActionListener` to call when the button is pressed.

    - #### hideResizeHandle

          public void hideResizeHandle()

      Hides the resize handle.