Module java.desktop
Package javax.swing.plaf.synth

## Class SynthViewportUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.ViewportUI
    - - javax.swing.plaf.synth.SynthViewportUI

- All Implemented Interfaces:
    `PropertyChangeListener`, `EventListener`, `SynthConstants`, `SynthUI`

      public class SynthViewportUI
      extends ViewportUI
      implements PropertyChangeListener, SynthUI

  Provides the Synth L&F UI delegate for `JViewport`.
  Since:
    1.7

- - ### Field Summary

    - ### Fields inherited from interface javax.swing.plaf.synth.SynthConstants

      `DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED, SELECTED`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SynthViewportUI​()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static ComponentUI` | `createUI​(JComponent c)` | Creates a new UI object for the given component.
    `SynthContext` | `getContext​(JComponent c)` | Returns the Context for the specified component.
    `protected void` | `installDefaults​(JComponent c)` | Installs defaults for a viewport.
    `protected void` | `installListeners​(JComponent c)` | Installs listeners into the viewport.
    `void` | `installUI​(JComponent c)` | Configures the specified component appropriately for the look and feel.
    `void` | `paint​(Graphics g, JComponent c)` | Paints the specified component according to the Look and Feel.
    `protected void` | `paint​(SynthContext context, Graphics g)` | Paints the specified component.
    `void` | `paintBorder​(SynthContext context, Graphics g, int x, int y, int w, int h)` | Paints the border.
    `void` | `propertyChange​(PropertyChangeEvent e)` | This method gets called when a bound property is changed.
    `protected void` | `uninstallDefaults​(JComponent c)` | Uninstalls defaults from a viewport.
    `protected void` | `uninstallListeners​(JComponent c)` | Uninstalls listeners from the viewport.
    `void` | `uninstallUI​(JComponent c)` | Reverses configuration which was done on the specified component during `installUI`.
    `void` | `update​(Graphics g, JComponent c)` | Notifies this UI delegate to repaint the specified component.

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

      `contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize`

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

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

- - ### Constructor Detail

    - #### SynthViewportUI

          public SynthViewportUI​()

  - ### Method Detail

    - #### createUI

          public static ComponentUI createUI​(JComponent c)

      Creates a new UI object for the given component.
      Parameters:
        `c` - component to create UI object for
      Returns:
        the UI object

    - #### installUI

          public void installUI​(JComponent c)

      Configures the specified component appropriately for the look and feel. This method is invoked when the `ComponentUI` instance is being installed as the UI delegate on the specified component. This method should completely configure the component for the look and feel, including the following:
      1. Install default property values for color, fonts, borders, icons, opacity, etc. on the component. Whenever possible, property values initialized by the client program should not be overridden.
      2. Install a `LayoutManager` on the component if necessary.
      3. Create/add any required sub-components to the component.
      4. Create/install event listeners on the component.
      5. Create/install a `PropertyChangeListener` on the component in order to detect and respond to component property changes appropriately.
      6. Install keyboard UI (mnemonics, traversal, etc.) on the component.
      7. Initialize any appropriate instance data.
      Overrides:
        `installUI` in class `ComponentUI`
      Parameters:
        `c` - the component where this UI delegate is being installed
      See Also:
        `ComponentUI.uninstallUI(javax.swing.JComponent)`, `JComponent.setUI(javax.swing.plaf.ComponentUI)`, `JComponent.updateUI()`

    - #### uninstallUI

          public void uninstallUI​(JComponent c)

      Reverses configuration which was done on the specified component during `installUI`. This method is invoked when this `UIComponent` instance is being removed as the UI delegate for the specified component. This method should undo the configuration performed in `installUI`, being careful to leave the `JComponent` instance in a clean state (no extraneous listeners, look-and-feel-specific property objects, etc.). This should include the following:
      1. Remove any UI-set borders from the component.
      2. Remove any UI-set layout managers on the component.
      3. Remove any UI-added sub-components from the component.
      4. Remove any UI-added event/property listeners from the component.
      5. Remove any UI-installed keyboard UI from the component.
      6. Nullify any allocated instance data objects to allow for GC.
      Overrides:
        `uninstallUI` in class `ComponentUI`
      Parameters:
        `c` - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
      See Also:
        `ComponentUI.installUI(javax.swing.JComponent)`, `JComponent.updateUI()`

    - #### installDefaults

          protected void installDefaults​(JComponent c)

      Installs defaults for a viewport.
      Parameters:
        `c` - a `JViewport` object

    - #### installListeners

          protected void installListeners​(JComponent c)

      Installs listeners into the viewport.
      Parameters:
        `c` - a `JViewport` object

    - #### uninstallListeners

          protected void uninstallListeners​(JComponent c)

      Uninstalls listeners from the viewport.
      Parameters:
        `c` - a `JViewport` object

    - #### uninstallDefaults

          protected void uninstallDefaults​(JComponent c)

      Uninstalls defaults from a viewport.
      Parameters:
        `c` - a `JViewport` object

    - #### getContext

          public SynthContext getContext​(JComponent c)

      Returns the Context for the specified component.
      Specified by:
        `getContext` in interface `SynthUI`
      Parameters:
        `c` - Component requesting SynthContext.
      Returns:
        SynthContext describing component.

    - #### update

          public void update​(Graphics g,
                             JComponent c)

      Notifies this UI delegate to repaint the specified component. This method paints the component background, then calls the `paint(SynthContext,Graphics)` method.

      In general, this method does not need to be overridden by subclasses. All Look and Feel rendering code should reside in the `paint` method.

      Overrides:
        `update` in class `ComponentUI`
      Parameters:
        `g` - the `Graphics` object used for painting
        `c` - the component being painted
      See Also:
        `paint(SynthContext,Graphics)`

    - #### paintBorder

          public void paintBorder​(SynthContext context,
                                  Graphics g,
                                  int x,
                                  int y,
                                  int w,
                                  int h)

      Paints the border. The method is never called, because the `JViewport` class does not support a border. This implementation does nothing.
      Specified by:
        `paintBorder` in interface `SynthUI`
      Parameters:
        `context` - a component context
        `g` - the `Graphics` to paint on
        `x` - the X coordinate
        `y` - the Y coordinate
        `w` - width of the border
        `h` - height of the border

    - #### paint

          public void paint​(Graphics g,
                            JComponent c)

      Paints the specified component according to the Look and Feel.

      This method is not used by Synth Look and Feel. Painting is handled by the `paint(SynthContext,Graphics)` method.

      Overrides:
        `paint` in class `ComponentUI`
      Parameters:
        `g` - the `Graphics` object used for painting
        `c` - the component being painted
      See Also:
        `paint(SynthContext,Graphics)`

    - #### paint

          protected void paint​(SynthContext context,
                               Graphics g)

      Paints the specified component. This implementation does nothing.
      Parameters:
        `context` - context for the component being painted
        `g` - the `Graphics` object used for painting
      See Also:
        `update(Graphics,JComponent)`

    - #### propertyChange

          public void propertyChange​(PropertyChangeEvent e)

      This method gets called when a bound property is changed.
      Specified by:
        `propertyChange` in interface `PropertyChangeListener`
      Parameters:
        `e` - A PropertyChangeEvent object describing the event source and the property that has changed.