Package com.explodingpixels.macwidgets

## Class SourceListControlBar

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

    public class SourceListControlBar
    extends java.lang.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
`SourceListControlBar()` Creates a `SourceListControlBar`.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `createAndAddButton​(javax.swing.Icon icon, java.awt.event.ActionListener actionListener)` Adds a new button with the given icon.
`void` `createAndAddPopdownButton​(javax.swing.Icon icon, PopupMenuCustomizer popupMenuCustomizer)` Add a new pop-down style button.
`javax.swing.JComponent` `getComponent()` Gets the user interface component representing this `SourceListControlBar`.
`void` `hideResizeHandle()` Hides the resize handle.
`void` `installDraggableWidgetOnSplitPane​(javax.swing.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​(javax.swing.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 javax.swing.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​(javax.swing.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​(javax.swing.Icon icon,
                                   java.awt.event.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.