com.explodingpixels.widgets.plaf

## Class SkinnableScrollBarUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.ScrollBarUI
    - - javax.swing.plaf.basic.BasicScrollBarUI
      - - com.explodingpixels.widgets.plaf.SkinnableScrollBarUI

All Implemented Interfaces:
  LayoutManager, SwingConstants

Direct Known Subclasses:
  IAppScrollBarUI

    public class SkinnableScrollBarUI
    extends BasicScrollBarUI

An implementation of `ScrollBarUI` that supports dynamic skinning. painting is delegated to a `ScrollBarSkin`.

### Nested Class Summary

Nested Classes
`protected class` `SkinnableScrollBarUI.CustomArrowButtonListener`
`static interface` `SkinnableScrollBarUI.ScrollBarSkinProvider`

### Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicScrollBarUI

`BasicScrollBarUI.ArrowButtonListener, BasicScrollBarUI.ModelListener, BasicScrollBarUI.PropertyChangeHandler, BasicScrollBarUI.ScrollListener, BasicScrollBarUI.TrackListener`

### Field Summary

### Fields inherited from class javax.swing.plaf.basic.BasicScrollBarUI

`buttonListener, decrButton, DECREASE_HIGHLIGHT, decrGap, incrButton, INCREASE_HIGHLIGHT, incrGap, isDragging, maximumThumbSize, minimumThumbSize, modelListener, NO_HIGHLIGHT, propertyChangeListener, scrollbar, scrollBarWidth, scrollListener, scrollTimer, thumbColor, thumbDarkShadowColor, thumbHighlightColor, thumbLightShadowColor, thumbRect, trackColor, trackHighlight, trackHighlightColor, trackListener, trackRect`

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

### Constructor Summary

Constructors
Constructor and Description
`SkinnableScrollBarUI(SkinnableScrollBarUI.ScrollBarSkinProvider scrollBarSkinProvider)` Creates a `SkinnableScrollBarUI` that query the given `SkinnableScrollBarUI.ScrollBarSkinProvider` in order to get the `ScrollBarSkin` during the installation of this UI delegate.

### Method Summary

Methods
`protected BasicScrollBarUI.TrackListener` `createTrackListener()`
`protected Dimension` `getMinimumThumbSize()`
`Dimension` `getPreferredSize(JComponent c)`
`protected Rectangle` `getThumbBounds()`
`protected Rectangle` `getTrackBounds()`
`protected void` `installComponents()`
`protected void` `installListeners()`
`void` `installUI(JComponent c)`
`void` `layoutContainer(Container scrollbarContainer)`
`protected void` `paintDecreaseHighlight(Graphics g)`
`protected void` `paintIncreaseHighlight(Graphics g)`
`protected void` `setThumbBounds(int x, int y, int width, int height)`

### Methods inherited from class javax.swing.plaf.basic.BasicScrollBarUI

`addLayoutComponent, configureScrollBarColors, createArrowButtonListener, createDecreaseButton, createIncreaseButton, createModelListener, createPropertyChangeListener, createScrollListener, createUI, getMaximumSize, getMaximumThumbSize, getSupportsAbsolutePositioning, installDefaults, installKeyboardActions, isThumbRollover, layoutHScrollbar, layoutVScrollbar, minimumLayoutSize, paint, paintThumb, paintTrack, preferredLayoutSize, removeLayoutComponent, scrollByBlock, scrollByUnit, setThumbRollover, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI`

### Methods inherited from class javax.swing.plaf.ComponentUI

`contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMinimumSize, update`

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

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

### Constructor Detail

#### SkinnableScrollBarUI

    public SkinnableScrollBarUI(SkinnableScrollBarUI.ScrollBarSkinProvider scrollBarSkinProvider)

Creates a `SkinnableScrollBarUI` that query the given `SkinnableScrollBarUI.ScrollBarSkinProvider` in order to get the `ScrollBarSkin` during the installation of this UI delegate.

Parameters:
  `scrollBarSkinProvider` - the provider of the `ScrollBarSkin`.

### Method Detail

#### installUI

    public void installUI(JComponent c)

Overrides:
  `installUI` in class `BasicScrollBarUI`

#### installComponents

    protected void installComponents()

Overrides:
  `installComponents` in class `BasicScrollBarUI`

#### installListeners

    protected void installListeners()

Overrides:
  `installListeners` in class `BasicScrollBarUI`

#### layoutContainer

    public void layoutContainer(Container scrollbarContainer)

Specified by:
  `layoutContainer` in interface `LayoutManager`
Overrides:
  `layoutContainer` in class `BasicScrollBarUI`

#### getMinimumThumbSize

    protected Dimension getMinimumThumbSize()

Overrides:
  `getMinimumThumbSize` in class `BasicScrollBarUI`

#### getPreferredSize

    public Dimension getPreferredSize(JComponent c)

Overrides:
  `getPreferredSize` in class `BasicScrollBarUI`

#### getThumbBounds

    protected Rectangle getThumbBounds()

Overrides:
  `getThumbBounds` in class `BasicScrollBarUI`

#### setThumbBounds

    protected void setThumbBounds(int x,
                      int y,
                      int width,
                      int height)

Overrides:
  `setThumbBounds` in class `BasicScrollBarUI`

#### getTrackBounds

    protected Rectangle getTrackBounds()

Overrides:
  `getTrackBounds` in class `BasicScrollBarUI`

#### paintIncreaseHighlight

    protected void paintIncreaseHighlight(Graphics g)

Overrides:
  `paintIncreaseHighlight` in class `BasicScrollBarUI`

#### paintDecreaseHighlight

    protected void paintDecreaseHighlight(Graphics g)

Overrides:
  `paintDecreaseHighlight` in class `BasicScrollBarUI`

#### createTrackListener

    protected BasicScrollBarUI.TrackListener createTrackListener()

Overrides:
  `createTrackListener` in class `BasicScrollBarUI`