Class CustomScrollPanel
- All Implemented Interfaces:
HasScrollHandlers
,HasAttachHandlers
,HasHandlers
,EventListener
,AcceptsOneWidget
,HasHorizontalScrolling
,HasOneWidget
,HasScrolling
,HasVerticalScrolling
,HasVisibility
,HasWidgets
,HasWidgets.ForIsWidget
,IsWidget
,ProvidesResize
,RequiresResize
,SourcesScrollEvents
,Iterable<Widget>
ScrollPanel
that allows user provided
scrollbars.
The postion of scrollbars in a CustomScrollPanel
differs from that of
a native scrollable element. In a native element, scrollbars appear adjacent
to the content, shrinking the content client height and width when they
appear. CustomScrollPanel
instead overlays scrollbars on top of the
content, so the content does not change size when scrollbars appear. If the
scrollbars obscures the content, you can set the padding-top
and
padding-bottom
of the content to shift the content out from
under the scrollbars.
NOTE: Unlike ScrollPanel
, which implements RequiresResize
but
doesn't really require it, CustomScrollPanel
actually does require
resize and should only be added to a panel that implements
ProvidesResize
, such as most layout panels and
ResizeLayoutPanel
.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
A ClientBundle of resources used by this widget.static interface
Styles used by this widget.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
ConstructorDescriptionCreates an emptyCustomScrollPanel
.CustomScrollPanel
(CustomScrollPanel.Resources resources) CustomScrollPanel
(Widget child) Creates aCustomScrollPanel
with the specified child widget. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
If a widget contains one or more child widgets that are not in the logical widget hierarchy (the child is physically connected only on the DOM level), it must override this method and callWidget.onAttach()
for each of its child widgets.protected void
If a widget contains one or more child widgets that are not in the logical widget hierarchy (the child is physically connected only on the DOM level), it must override this method and callWidget.onDetach()
for each of its child widgets.Get the scrollbar used for horizontal scrolling.Get the scrollbar used for vertical scrolling.protected void
onAttach()
This method is called when a widget is attached to the browser's document.void
onBrowserEvent
(Event event) Fired whenever a browser event is received.protected void
onDetach()
This method is called when a widget is detached from the browser's document.protected void
onLoad()
This method is called immediately after a widget becomes attached to the browser's document.void
onResize()
This method must be called whenever the implementor's size has been modified.boolean
Removes a child widget.void
Remove theHorizontalScrollbar
, if one exists.void
Remove theVerticalScrollbar
, if one exists.void
setAlwaysShowScrollBars
(boolean alwaysShow) Sets whether this panel always shows its scroll bars, or only when necessary.void
setHorizontalScrollbar
(HorizontalScrollbar scrollbar, int height) Set the scrollbar used for horizontal scrolling.void
setVerticalScrollbar
(VerticalScrollbar scrollbar, int width) Set the scrollbar used for vertical scrolling.void
Sets this panel's widget.Methods inherited from class com.google.gwt.user.client.ui.ScrollPanel
addScrollHandler, addScrollListener, ensureVisible, getContainerElement, getHorizontalScrollPosition, getMaximumHorizontalScrollPosition, getMaximumVerticalScrollPosition, getMinimumHorizontalScrollPosition, getMinimumVerticalScrollPosition, getScrollableElement, getScrollPosition, getVerticalScrollPosition, isTouchScrollingDisabled, removeScrollListener, scrollToBottom, scrollToLeft, scrollToRight, scrollToTop, setHeight, setHorizontalScrollPosition, setScrollPosition, setSize, setTouchScrollingDisabled, setVerticalScrollPosition, setWidth
Methods inherited from class com.google.gwt.user.client.ui.SimplePanel
add, getWidget, iterator, setWidget
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, onUnload, removeFromParent, replaceElement, setLayoutData, setParent, sinkEvents, unsinkEvents
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
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 java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
CustomScrollPanel
public CustomScrollPanel()Creates an emptyCustomScrollPanel
. -
CustomScrollPanel
-
CustomScrollPanel
Creates aCustomScrollPanel
with the specified child widget.- Parameters:
child
- the widget to be wrapped by the scroll panel
-
-
Method Details
-
getHorizontalScrollbar
Get the scrollbar used for horizontal scrolling.- Returns:
- the horizontal scrollbar, or null if none specified
-
getVerticalScrollbar
Get the scrollbar used for vertical scrolling.- Returns:
- the vertical scrollbar, or null if none specified
-
onBrowserEvent
Description copied from interface:EventListener
Fired whenever a browser event is received.- Specified by:
onBrowserEvent
in interfaceEventListener
- Overrides:
onBrowserEvent
in classWidget
- Parameters:
event
- the event received
-
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 interfaceRequiresResize
- Overrides:
onResize
in classScrollPanel
-
remove
Description copied from class:Panel
Removes a child widget.How to Override this Method
There are several important things that must take place in the correct order to properly remove a Widget from a Panel. Not all of these steps will be relevant to every Panel, but all of the steps must be considered.
- Validate: Make sure this Panel is actually the parent of the
child Widget; return
false
if it is not. - Orphan: Call
Panel.orphan(Widget)
first while the child Widget is still attached. - Physical Detach: Adjust the DOM to account for the removal of the child Widget. The Widget's Element must be physically removed from the DOM.
- Logical Detach: Update the Panel's state variables to reflect
the removal of the child Widget. Example: the Widget is removed from the
Panel's
WidgetCollection
.
- Specified by:
remove
in interfaceHasWidgets
- Overrides:
remove
in classSimplePanel
- Parameters:
w
- the widget to be removed- Returns:
true
if the child was present
- Validate: Make sure this Panel is actually the parent of the
child Widget; return
-
removeHorizontalScrollbar
public void removeHorizontalScrollbar()Remove theHorizontalScrollbar
, if one exists. -
removeVerticalScrollbar
public void removeVerticalScrollbar()Remove theVerticalScrollbar
, if one exists. -
setAlwaysShowScrollBars
public void setAlwaysShowScrollBars(boolean alwaysShow) Description copied from class:ScrollPanel
Sets whether this panel always shows its scroll bars, or only when necessary.- Overrides:
setAlwaysShowScrollBars
in classScrollPanel
- Parameters:
alwaysShow
-true
to show scroll bars at all times
-
setHorizontalScrollbar
Set the scrollbar used for horizontal scrolling.- Parameters:
scrollbar
- the scrollbar, or null to clear itheight
- the height of the scrollbar in pixels
-
setVerticalScrollbar
Set the scrollbar used for vertical scrolling.- Parameters:
scrollbar
- the scrollbar, or null to clear itwidth
- the width of the scrollbar in pixels
-
setWidget
Description copied from class:SimplePanel
Sets this panel's widget. Any existing child widget will be removed.- Specified by:
setWidget
in interfaceHasOneWidget
- Overrides:
setWidget
in classSimplePanel
- Parameters:
w
- the panel's new widget, ornull
to clear the panel
-
doAttachChildren
protected void doAttachChildren()Description copied from class:Widget
If a widget contains one or more child widgets that are not in the logical widget hierarchy (the child is physically connected only on the DOM level), it must override this method and callWidget.onAttach()
for each of its child widgets.- Overrides:
doAttachChildren
in classPanel
- See Also:
-
doDetachChildren
protected void doDetachChildren()Description copied from class:Widget
If a widget contains one or more child widgets that are not in the logical widget hierarchy (the child is physically connected only on the DOM level), it must override this method and callWidget.onDetach()
for each of its child widgets.- Overrides:
doDetachChildren
in classPanel
- See Also:
-
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 useWidget.addAttachHandler(com.google.gwt.event.logical.shared.AttachEvent.Handler)
.It is strongly recommended that you override
Widget.onLoad()
orWidget.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 classScrollPanel
- See Also:
-
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 useWidget.addAttachHandler(com.google.gwt.event.logical.shared.AttachEvent.Handler)
.It is strongly recommended that you override
Widget.onUnload()
orWidget.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 classScrollPanel
- See Also:
-
onLoad
protected void onLoad()Description copied from class:Widget
This method is called immediately after a widget becomes attached to the browser's document.
-