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
    Modifier and Type | Class and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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)`
    `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(JComponent c)

      Overrides:
        `installUI` in class `BasicScrollBarUI`

    - #### uninstallComponents

          protected void uninstallComponents()

      Overrides:
        `uninstallComponents` 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`