com.google.gwt.user.client.ui

## Class ScrollPanel

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.google.gwt.user.client.ui.Panel
      - - com.google.gwt.user.client.ui.SimplePanel
        - - com.google.gwt.user.client.ui.ScrollPanel

- All Implemented Interfaces:
    HasScrollHandlers, HasAttachHandlers, HasHandlers, EventListener, AcceptsOneWidget, HasHorizontalScrolling, HasOneWidget, HasScrolling, HasVerticalScrolling, HasVisibility, HasWidgets, HasWidgets.ForIsWidget, IsWidget, ProvidesResize, RequiresResize, SourcesScrollEvents, java.lang.Iterable<Widget>
  Direct Known Subclasses:
    CustomScrollPanel

      public class ScrollPanel
      extends SimplePanel
      implements SourcesScrollEvents, RequiresResize, ProvidesResize, HasScrolling

  A simple panel that wraps its contents in a scrollable area.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

      `UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled`

    - ### Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.HasWidgets

      `HasWidgets.ForIsWidget`

  - ### Field Summary

    - ### Fields inherited from class com.google.gwt.user.client.ui.SimplePanel

      `widget`

    - ### Fields inherited from class com.google.gwt.user.client.ui.Widget

      `eventsToSink`

    - ### Fields inherited from class com.google.gwt.user.client.ui.UIObject

      `DEBUG_ID_PREFIX, MISSING_ELEMENT_ERROR, SETELEMENT_TWICE_ERROR`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `ScrollPanel()` Creates an empty scroll panel.
    `protected` | `ScrollPanel(Element root, Element scrollable, Element container)` Creates an empty scroll panel using the specified root, scrollable, and container elements.
    `` | `ScrollPanel(Widget child)` Creates a new scroll panel with the given child widget.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `HandlerRegistration` | `addScrollHandler(ScrollHandler handler)` Adds a `ScrollEvent` handler.
    `void` | `addScrollListener(ScrollListener listener)` Deprecated. Use `addScrollHandler(com.google.gwt.event.dom.client.ScrollHandler)` instead
    `void` | `ensureVisible(UIObject item)` Ensures that the specified item is visible, by adjusting the panel's scroll position.
    `protected Element` | `getContainerElement()` Override this method to specify that an element other than the root element be the container for the panel's child widget.
    `int` | `getHorizontalScrollPosition()` Gets the horizontal scroll position.
    `int` | `getMaximumHorizontalScrollPosition()` Get the maximum position of horizontal scrolling.
    `int` | `getMaximumVerticalScrollPosition()` Get the maximum position of vertical scrolling.
    `int` | `getMinimumHorizontalScrollPosition()` Get the minimum position of horizontal scrolling.
    `int` | `getMinimumVerticalScrollPosition()` Get the minimum position of vertical scrolling.
    `protected Element` | `getScrollableElement()` Get the scrollable element.
    `int` | `getScrollPosition()` Deprecated. as of GWT 2.3, replaced by `getVerticalScrollPosition()`
    `int` | `getVerticalScrollPosition()` Gets the vertical scroll position.
    `boolean` | `isTouchScrollingDisabled()` Check whether or not touch based scrolling is disabled.
    `protected void` | `onAttach()` This method is called when a widget is attached to the browser's document.
    `protected void` | `onDetach()` This method is called when a widget is detached from the browser's document.
    `void` | `onResize()` This method must be called whenever the implementor's size has been modified.
    `void` | `removeScrollListener(ScrollListener listener)` Deprecated. Use the `HandlerRegistration.removeHandler()` method on the object returned by `addScrollHandler(com.google.gwt.event.dom.client.ScrollHandler)` instead
    `void` | `scrollToBottom()` Scroll to the bottom of this panel.
    `void` | `scrollToLeft()` Scroll to the far left of this panel.
    `void` | `scrollToRight()` Scroll to the far right of this panel.
    `void` | `scrollToTop()` Scroll to the top of this panel.
    `void` | `setAlwaysShowScrollBars(boolean alwaysShow)` Sets whether this panel always shows its scroll bars, or only when necessary.
    `void` | `setHeight(java.lang.String height)` Sets the object's height.
    `void` | `setHorizontalScrollPosition(int position)` Sets the horizontal scroll position.
    `void` | `setScrollPosition(int position)` Deprecated. as of GWT 2.3, replaced by `setVerticalScrollPosition(int)`
    `void` | `setSize(java.lang.String width, java.lang.String height)` Sets the object's size.
    `boolean` | `setTouchScrollingDisabled(boolean isDisabled)` Set whether or not touch scrolling is disabled.
    `void` | `setVerticalScrollPosition(int position)` Sets the vertical scroll position.
    `void` | `setWidth(java.lang.String width)` Sets the object's width.

    - ### Methods inherited from class com.google.gwt.user.client.ui.SimplePanel

      `add, getWidget, iterator, remove, setWidget, setWidget`

    - ### Methods inherited from class com.google.gwt.user.client.ui.Panel

      `add, adopt, adopt, clear, disown, doAttachChildren, doDetachChildren, orphan, remove`

    - ### Methods inherited from class com.google.gwt.user.client.ui.Widget

      `addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, ensureHandlers, fireEvent, getHandlerCount, getHandlerManager, getLayoutData, getParent, isAttached, isOrWasAttached, onBrowserEvent, onLoad, onUnload, removeFromParent, replaceElement, setLayoutData, setParent, sinkEvents`

    - ### Methods inherited from class com.google.gwt.user.client.ui.UIObject

      `addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setElement, setPixelSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, sinkBitlessEvent, toString, unsinkEvents`

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

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

    - ### Methods inherited from interface com.google.gwt.event.shared.HasHandlers

      `fireEvent`

    - ### Methods inherited from interface com.google.gwt.user.client.ui.IsWidget

      `asWidget`

- - ### Constructor Detail

    - #### ScrollPanel

          public ScrollPanel()

      Creates an empty scroll panel.

    - #### ScrollPanel

          public ScrollPanel(Widget child)

      Creates a new scroll panel with the given child widget.
      Parameters:
        `child` - the widget to be wrapped by the scroll panel

    - #### ScrollPanel

          protected ScrollPanel(Element root,
                     Element scrollable,
                     Element container)

      Creates an empty scroll panel using the specified root, scrollable, and container elements.
      Parameters:
        `root` - the root element of the Widget
        `scrollable` - the scrollable element, which can be the same as the root element
        `container` - the container element that holds the child

  - ### Method Detail

    - #### addScrollHandler

          public HandlerRegistration addScrollHandler(ScrollHandler handler)

      Description copied from interface: `HasScrollHandlers`
      Adds a `ScrollEvent` handler.
      Specified by:
        `addScrollHandler` in interface `HasScrollHandlers`
      Parameters:
        `handler` - the scroll handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addScrollListener

          @Deprecated
          public void addScrollListener(ScrollListener listener)

      Deprecated. Use `addScrollHandler(com.google.gwt.event.dom.client.ScrollHandler)` instead
      Description copied from interface: `SourcesScrollEvents`
      Adds a listener interface to receive scroll events.
      Specified by:
        `addScrollListener` in interface `SourcesScrollEvents`
      Parameters:
        `listener` - the listener interface to add

    - #### ensureVisible

          public void ensureVisible(UIObject item)

      Ensures that the specified item is visible, by adjusting the panel's scroll position.
      Parameters:
        `item` - the item whose visibility is to be ensured

    - #### getHorizontalScrollPosition

          public int getHorizontalScrollPosition()

      Gets the horizontal scroll position.
      Specified by:
        `getHorizontalScrollPosition` in interface `HasHorizontalScrolling`
      Returns:
        the horizontal scroll position, in pixels

    - #### getMaximumHorizontalScrollPosition

          public int getMaximumHorizontalScrollPosition()

      Description copied from interface: `HasHorizontalScrolling`
      Get the maximum position of horizontal scrolling. This is usually the `scrollWidth - clientWidth`.
      Specified by:
        `getMaximumHorizontalScrollPosition` in interface `HasHorizontalScrolling`
      Returns:
        the maximum horizontal scroll position

    - #### getMaximumVerticalScrollPosition

          public int getMaximumVerticalScrollPosition()

      Description copied from interface: `HasVerticalScrolling`
      Get the maximum position of vertical scrolling. This is usually the `scrollHeight - clientHeight`.
      Specified by:
        `getMaximumVerticalScrollPosition` in interface `HasVerticalScrolling`
      Returns:
        the maximum vertical scroll position

    - #### getMinimumHorizontalScrollPosition

          public int getMinimumHorizontalScrollPosition()

      Description copied from interface: `HasHorizontalScrolling`
      Get the minimum position of horizontal scrolling.
      Specified by:
        `getMinimumHorizontalScrollPosition` in interface `HasHorizontalScrolling`
      Returns:
        the minimum horizontal scroll position

    - #### getMinimumVerticalScrollPosition

          public int getMinimumVerticalScrollPosition()

      Description copied from interface: `HasVerticalScrolling`
      Get the minimum position of vertical scrolling.
      Specified by:
        `getMinimumVerticalScrollPosition` in interface `HasVerticalScrolling`
      Returns:
        the minimum vertical scroll position

    - #### getScrollPosition

          @Deprecated
          public int getScrollPosition()

      Deprecated. as of GWT 2.3, replaced by `getVerticalScrollPosition()`
      Gets the vertical scroll position.
      Returns:
        the vertical scroll position, in pixels

    - #### getVerticalScrollPosition

          public int getVerticalScrollPosition()

      Description copied from interface: `HasVerticalScrolling`
      Gets the vertical scroll position.
      Specified by:
        `getVerticalScrollPosition` in interface `HasVerticalScrolling`
      Returns:
        the vertical scroll position, in pixels

    - #### isTouchScrollingDisabled

          public boolean isTouchScrollingDisabled()

      Check whether or not touch based scrolling is disabled. This method always returns false on devices that do not support touch scrolling.
      Returns:
        true if disabled, false if enabled

    - #### onResize

          public void onResize()

      Description copied from interface: `RequiresResize`
      This method must be called whenever the implementor's size has been modified.
      Specified by:
        `onResize` in interface `RequiresResize`

    - #### removeScrollListener

          @Deprecated
          public void removeScrollListener(ScrollListener listener)

      Deprecated. Use the `HandlerRegistration.removeHandler()` method on the object returned by `addScrollHandler(com.google.gwt.event.dom.client.ScrollHandler)` instead
      Description copied from interface: `SourcesScrollEvents`
      Removes a previously added scroll listener.
      Specified by:
        `removeScrollListener` in interface `SourcesScrollEvents`
      Parameters:
        `listener` - the listener interface to remove

    - #### scrollToBottom

          public void scrollToBottom()

      Scroll to the bottom of this panel.

    - #### scrollToLeft

          public void scrollToLeft()

      Scroll to the far left of this panel.

    - #### scrollToRight

          public void scrollToRight()

      Scroll to the far right of this panel.

    - #### scrollToTop

          public void scrollToTop()

      Scroll to the top of this panel.

    - #### setAlwaysShowScrollBars

          public void setAlwaysShowScrollBars(boolean alwaysShow)

      Sets whether this panel always shows its scroll bars, or only when necessary.
      Parameters:
        `alwaysShow` - `true` to show scroll bars at all times

    - #### setHeight

          public void setHeight(java.lang.String height)

      Sets the object's height. This height does not include decorations such as border, margin, and padding.
      Overrides:
        `setHeight` in class `UIObject`
      Parameters:
        `height` - the object's new height, in absolute CSS units (e.g. "10px", "1em" but not "50%")

    - #### setHorizontalScrollPosition

          public void setHorizontalScrollPosition(int position)

      Sets the horizontal scroll position.
      Specified by:
        `setHorizontalScrollPosition` in interface `HasHorizontalScrolling`
      Parameters:
        `position` - the new horizontal scroll position, in pixels

    - #### setScrollPosition

          @Deprecated
          public void setScrollPosition(int position)

      Deprecated. as of GWT 2.3, replaced by `setVerticalScrollPosition(int)`
      Sets the vertical scroll position.
      Parameters:
        `position` - the new vertical scroll position, in pixels

    - #### setSize

          public void setSize(java.lang.String width,
                     java.lang.String height)

      Sets the object's size. This size does not include decorations such as border, margin, and padding.
      Overrides:
        `setSize` in class `UIObject`
      Parameters:
        `width` - the object's new width, in absolute CSS units (e.g. "10px", "1em", but not "50%")
        `height` - the object's new height, in absolute CSS units (e.g. "10px", "1em", but not "50%")

    - #### setTouchScrollingDisabled

          public boolean setTouchScrollingDisabled(boolean isDisabled)

      Set whether or not touch scrolling is disabled. By default, touch scrolling is enabled on devices that support touch events.
      Parameters:
        `isDisabled` - true to disable, false to enable
      Returns:
        true if touch scrolling is enabled and supported, false if disabled or not supported

    - #### setVerticalScrollPosition

          public void setVerticalScrollPosition(int position)

      Description copied from interface: `HasVerticalScrolling`
      Sets the vertical scroll position.
      Specified by:
        `setVerticalScrollPosition` in interface `HasVerticalScrolling`
      Parameters:
        `position` - the new vertical scroll position, in pixels

    - #### setWidth

          public void setWidth(java.lang.String width)

      Sets the object's width. This width does not include decorations such as border, margin, and padding.
      Overrides:
        `setWidth` in class `UIObject`
      Parameters:
        `width` - the object's new width, in absolute CSS units (e.g. "10px", "1em", but not "50%")

    - #### getContainerElement

          protected Element getContainerElement()

      Description copied from class: `SimplePanel`
      Override this method to specify that an element other than the root element be the container for the panel's child widget. This can be useful when you want to create a simple panel that decorates its contents. Note that this method continues to return the `Element` class defined in the `User` module to maintain backwards compatibility.
      Overrides:
        `getContainerElement` in class `SimplePanel`
      Returns:
        the element to be used as the panel's container

    - #### getScrollableElement

          protected Element getScrollableElement()

      Get the scrollable element. That is the element with its overflow set to 'auto' or 'scroll'.
      Returns:
        the scrollable element

    - #### onAttach

          protected void onAttach()

      Description copied from class: `Widget`

      This method is called when a widget is attached to the browser's document. To receive notification after a Widget has been added to the document, override the `Widget.onLoad()` method or use `Widget.addAttachHandler(com.google.gwt.event.logical.shared.AttachEvent.Handler)`.

      It is strongly recommended that you override `Widget.onLoad()` or `Widget.doAttachChildren()` instead of this method to avoid inconsistencies between logical and physical attachment states.

      Subclasses that override this method must call `super.onAttach()` to ensure that the Widget has been attached to its underlying Element.

      Overrides:
        `onAttach` in class `Widget`
      See Also:
        `Widget.onLoad()`, `Widget.doAttachChildren()`

    - #### onDetach

          protected void onDetach()

      Description copied from class: `Widget`

      This method is called when a widget is detached from the browser's document. To receive notification before a Widget is removed from the document, override the `Widget.onUnload()` method or use `Widget.addAttachHandler(com.google.gwt.event.logical.shared.AttachEvent.Handler)`.

      It is strongly recommended that you override `Widget.onUnload()` or `Widget.doDetachChildren()` instead of this method to avoid inconsistencies between logical and physical attachment states.

      Subclasses that override this method must call `super.onDetach()` to ensure that the Widget has been detached from the underlying Element. Failure to do so will result in application memory leaks due to circular references between DOM Elements and JavaScript objects.

      Overrides:
        `onDetach` in class `Widget`
      See Also:
        `Widget.onUnload()`, `Widget.doDetachChildren()`