Package 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:
  `java.awt.LayoutManager`, `javax.swing.SwingConstants`

Direct Known Subclasses:
  `IAppScrollBarUI`

    public class SkinnableScrollBarUI
    extends javax.swing.plaf.basic.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

`javax.swing.plaf.basic.BasicScrollBarUI.ArrowButtonListener, javax.swing.plaf.basic.BasicScrollBarUI.ModelListener, javax.swing.plaf.basic.BasicScrollBarUI.PropertyChangeHandler, javax.swing.plaf.basic.BasicScrollBarUI.ScrollListener, javax.swing.plaf.basic.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
`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

All Methods Instance Methods Concrete Methods
`protected javax.swing.plaf.basic.BasicScrollBarUI.TrackListener` `createTrackListener()`
`protected java.awt.Dimension` `getMinimumThumbSize()`
`java.awt.Dimension` `getPreferredSize​(javax.swing.JComponent c)`
`protected java.awt.Rectangle` `getThumbBounds()`
`protected java.awt.Rectangle` `getTrackBounds()`
`protected void` `installComponents()`
`protected void` `installListeners()`
`void` `installUI​(javax.swing.JComponent c)`
`void` `layoutContainer​(java.awt.Container scrollbarContainer)`
`protected void` `paintDecreaseHighlight​(java.awt.Graphics g)`
`protected void` `paintIncreaseHighlight​(java.awt.Graphics g)`
`protected void` `setThumbBounds​(int x, int y, int width, int height)`
`protected void` `uninstallComponents()`

### 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, 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​(javax.swing.JComponent c)

Overrides:
  `installUI` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### uninstallComponents

    protected void uninstallComponents()

Overrides:
  `uninstallComponents` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### installComponents

    protected void installComponents()

Overrides:
  `installComponents` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### installListeners

    protected void installListeners()

Overrides:
  `installListeners` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### layoutContainer

    public void layoutContainer​(java.awt.Container scrollbarContainer)

Specified by:
  `layoutContainer` in interface `java.awt.LayoutManager`
Overrides:
  `layoutContainer` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### getMinimumThumbSize

    protected java.awt.Dimension getMinimumThumbSize()

Overrides:
  `getMinimumThumbSize` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### getPreferredSize

    public java.awt.Dimension getPreferredSize​(javax.swing.JComponent c)

Overrides:
  `getPreferredSize` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### getThumbBounds

    protected java.awt.Rectangle getThumbBounds()

Overrides:
  `getThumbBounds` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### setThumbBounds

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

Overrides:
  `setThumbBounds` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### getTrackBounds

    protected java.awt.Rectangle getTrackBounds()

Overrides:
  `getTrackBounds` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### paintIncreaseHighlight

    protected void paintIncreaseHighlight​(java.awt.Graphics g)

Overrides:
  `paintIncreaseHighlight` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### paintDecreaseHighlight

    protected void paintDecreaseHighlight​(java.awt.Graphics g)

Overrides:
  `paintDecreaseHighlight` in class `javax.swing.plaf.basic.BasicScrollBarUI`

#### createTrackListener

    protected javax.swing.plaf.basic.BasicScrollBarUI.TrackListener createTrackListener()

Overrides:
  `createTrackListener` in class `javax.swing.plaf.basic.BasicScrollBarUI`