Package org.pushingpixels.substance.internal.ui

# Class SubstanceScrollPaneUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.ScrollPaneUI
javax.swing.plaf.basic.BasicScrollPaneUI
org.pushingpixels.substance.internal.ui.SubstanceScrollPaneUI

All Implemented Interfaces:
  `ScrollPaneConstants`

public class SubstanceScrollPaneUI extends BasicScrollPaneUI
UI for scroll panes in Substance look and feel.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`protected static class`
`SubstanceScrollPaneUI.AdjustedLayout`
Layout manager to adjust the bounds of scrollbars and the viewport when the default (`SubstanceScrollPaneBorder`) border is set on the relevant `JScrollPane`.

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

`BasicScrollPaneUI.HSBChangeListener, BasicScrollPaneUI.MouseWheelHandler, BasicScrollPaneUI.PropertyChangeHandler, BasicScrollPaneUI.ViewportChangeHandler, BasicScrollPaneUI.VSBChangeListener`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected org.pushingpixels.trident.Timeline`
`horizontalScrollTimeline`
Timeline of the current horizontal scroll under smart tree scroll mode.
`protected PropertyChangeListener`
`substancePropertyChangeListener`
Property change listener on `SubstanceLookAndFeel.SCROLL_PANE_BUTTONS_POLICY`, `SubstanceLookAndFeel.WATERMARK_VISIBLE` and `layoutManager` properties.
`protected ChangeListener`
`substanceVerticalScrollbarChangeListener`
Listener on the vertical scroll bar.

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

`hsbChangeListener, scrollpane, spPropertyChangeListener, viewportChangeListener, vsbChangeListener`

### Fields inherited from interface javax.swing.ScrollPaneConstants

`COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT`

## Constructor Summary

Constructors
Constructor
Description
`SubstanceScrollPaneUI()`

## Method Summary

Modifier and Type
Method
Description
`static ComponentUI`
`createUI(JComponent comp)`
Creates new UI delegate.
`protected void`
`installDefaults(JScrollPane scrollpane)`
`protected void`
`installListeners(JScrollPane c)`
`protected static void`
`installTableHeaderCornerFiller(JScrollPane scrollpane)`
Installs a corner filler that matches the table header.
`protected void`
`uninstallDefaults(JScrollPane c)`
`protected void`
`uninstallListeners(JComponent c)`
`void`
`update(Graphics g, JComponent c)`

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

`createHSBChangeListener, createMouseWheelListener, createPropertyChangeListener, createViewportChangeListener, createVSBChangeListener, getBaseline, getBaselineResizeBehavior, getMaximumSize, installKeyboardActions, installUI, paint, syncScrollPaneWithViewport, uninstallKeyboardActions, uninstallUI, updateColumnHeader, updateRowHeader, updateScrollBarDisplayPolicy, updateViewport`

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

`contains, getAccessibleChild, getAccessibleChildrenCount, getMinimumSize, getPreferredSize`

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

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

## Field Details

### substancePropertyChangeListener

protected PropertyChangeListener substancePropertyChangeListener
Property change listener on `SubstanceLookAndFeel.SCROLL_PANE_BUTTONS_POLICY`, `SubstanceLookAndFeel.WATERMARK_VISIBLE` and `layoutManager` properties.

### substanceVerticalScrollbarChangeListener

protected ChangeListener substanceVerticalScrollbarChangeListener
Listener on the vertical scroll bar. Installed for the smart tree scroll (see `SubstanceLookAndFeel.TREE_SMART_SCROLL_ANIMATION_KIND`.

### horizontalScrollTimeline

protected org.pushingpixels.trident.Timeline horizontalScrollTimeline
Timeline of the current horizontal scroll under smart tree scroll mode.

## Constructor Details

### SubstanceScrollPaneUI

public SubstanceScrollPaneUI()

## Method Details

### createUI

public static ComponentUI createUI(JComponent comp)
Creates new UI delegate.

Parameters:
  `comp` - Component.
Returns:
  UI delegate for the component.

### installDefaults

protected void installDefaults(JScrollPane scrollpane)

Overrides:
  `installDefaults` in class `BasicScrollPaneUI`

### uninstallDefaults

protected void uninstallDefaults(JScrollPane c)

Overrides:
  `uninstallDefaults` in class `BasicScrollPaneUI`

### installListeners

protected void installListeners(JScrollPane c)

Overrides:
  `installListeners` in class `BasicScrollPaneUI`

### uninstallListeners

protected void uninstallListeners(JComponent c)

Overrides:
  `uninstallListeners` in class `BasicScrollPaneUI`

### update

public void update(Graphics g, JComponent c)

Overrides:
  `update` in class `ComponentUI`

### installTableHeaderCornerFiller

protected static void installTableHeaderCornerFiller(JScrollPane scrollpane)
Installs a corner filler that matches the table header. This is done to provide a continuous appearance for tables with table headers placed in scroll panes.

Parameters:
  `scrollpane` - Scroll pane.