com.vaadin.client.widget.escalator
Class ScrollbarBundle

java.lang.Object
  extended by com.vaadin.client.widget.escalator.ScrollbarBundle
All Implemented Interfaces:
DeferredWorker
Direct Known Subclasses:
ScrollbarBundle.HorizontalScrollbarBundle, ScrollbarBundle.VerticalScrollbarBundle

public abstract class ScrollbarBundle
extends java.lang.Object
implements DeferredWorker

An element-like bundle representing a configurable and visual scrollbar in one axis.

Since:
7.4
Author:
Vaadin Ltd
See Also:
ScrollbarBundle.VerticalScrollbarBundle, ScrollbarBundle.HorizontalScrollbarBundle

Nested Class Summary
static class ScrollbarBundle.Direction
          The orientation of the scrollbar.
static class ScrollbarBundle.HorizontalScrollbarBundle
          A representation of a single horizontal scrollbar.
static class ScrollbarBundle.VerticalScrollbarBundle
          A representation of a single vertical scrollbar.
static class ScrollbarBundle.VisibilityChangeEvent
           
static interface ScrollbarBundle.VisibilityHandler
          A means to listen to when the scrollbar handle in a ScrollbarBundle either appears or is removed.
 
Field Summary
protected  boolean isInvisibleScrollbar
           
protected  Element root
           
protected  Element scrollSizeElement
           
 
Method Summary
 com.google.gwt.event.shared.HandlerRegistration addScrollHandler(ScrollHandler handler)
          Adds a scroll handler to the scrollbar bundle.
 com.google.gwt.event.shared.HandlerRegistration addVisibilityHandler(ScrollbarBundle.VisibilityHandler handler)
          Adds handler for the scrollbar handle visibility.
protected  void forceScrollbar(boolean enable)
          Force the scrollbar to be visible with CSS.
abstract  ScrollbarBundle.Direction getDirection()
          Returns the scroll direction of this scrollbar bundle.
 Element getElement()
          Gets the root element of this scrollbar-composition.
protected  com.google.gwt.event.shared.HandlerManager getHandlerManager()
           
 double getOffsetSize()
          Gets the length of the scrollbar
 double getScrollbarThickness()
          Gets the scrollbar's thickness.
 double getScrollPos()
          Gets the scroll position of the scrollbar in the axis the scrollbar is representing.
 double getScrollSize()
          Gets the amount of pixels the scrollbar needs to be able to scroll through.
protected abstract  void internalForceScrollbar(boolean enable)
           
abstract  java.lang.String internalGetOffsetSize()
           
protected abstract  java.lang.String internalGetScrollbarThickness()
          Gets the scrollbar's thickness as defined in the DOM.
protected abstract  int internalGetScrollPos()
          Retrieves the element's scroll position (scrollTop or scrollLeft).
protected abstract  java.lang.String internalGetScrollSize()
           
protected abstract  void internalSetOffsetSize(double px)
          Modifies root's dimensions in the axis the scrollbar is representing.
protected abstract  void internalSetScrollbarThickness(double px)
          Modifies scrollSizeElement's dimensions in the opposite axis to what the scrollbar is representing.
protected abstract  void internalSetScrollPos(int px)
          Modifies the element's scroll position (scrollTop or scrollLeft).
protected abstract  void internalSetScrollSize(double px)
          Modifies scrollSizeElement's dimensions in such a way that the scrollbar is able to scroll a certain number of pixels in the axis it is representing.
 boolean isLocked()
          Checks whether the scrollbar bundle is locked or not.
 boolean isWorkPending()
          Checks whether there are operations pending for this widget or connector that must be executed before reaching a steady state.
 void onLoad()
          Should be called whenever this bundle is attached to the DOM (typically, from the onLoad of the containing widget).
 void recalculateMaxScrollPos()
           
 void setLocked(boolean isLocked)
          Locks or unlocks the scrollbar bundle.
 void setOffsetSize(double px)
          Sets the length of the scrollbar.
 void setScrollbarThickness(double px)
          Sets the scrollbar's thickness.
 void setScrollPos(double px)
          Sets the scroll position of the scrollbar in the axis the scrollbar is representing.
 void setScrollPosByDelta(double delta)
          Modifies the scroll position of this scrollbar by a number of pixels.
 void setScrollSize(double px)
          Sets the amount of pixels the scrollbar needs to be able to scroll through.
 void setStylePrimaryName(java.lang.String primaryStyleName)
          Sets the primary style name
 boolean showsScrollHandle()
          Checks whether the scrollbar's handle is visible.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

root

protected final Element root

scrollSizeElement

protected final Element scrollSizeElement

isInvisibleScrollbar

protected boolean isInvisibleScrollbar
Method Detail

internalGetScrollSize

protected abstract java.lang.String internalGetScrollSize()

setStylePrimaryName

public void setStylePrimaryName(java.lang.String primaryStyleName)
Sets the primary style name

Parameters:
primaryStyleName - The primary style name to use

getElement

public final Element getElement()
Gets the root element of this scrollbar-composition.

Returns:
the root element

setScrollPosByDelta

public final void setScrollPosByDelta(double delta)
Modifies the scroll position of this scrollbar by a number of pixels.

Note: Even though double values are used, they are currently only used as integers as large int (or small but fast long). This means, all values are truncated to zero decimal places.

Parameters:
delta - the delta in pixels to change the scroll position by

internalSetOffsetSize

protected abstract void internalSetOffsetSize(double px)
Modifies root's dimensions in the axis the scrollbar is representing.

Parameters:
px - the new size of root in the dimension this scrollbar is representing

setOffsetSize

public final void setOffsetSize(double px)
Sets the length of the scrollbar.

Parameters:
px - the length of the scrollbar in pixels

forceScrollbar

protected void forceScrollbar(boolean enable)
Force the scrollbar to be visible with CSS. In practice, this means to set either overflow-x or overflow-y to " scroll" in the scrollbar's direction.

This is an IE8 workaround, since it doesn't always show scrollbars with overflow: auto enabled.


internalForceScrollbar

protected abstract void internalForceScrollbar(boolean enable)

getOffsetSize

public double getOffsetSize()
Gets the length of the scrollbar

Returns:
the length of the scrollbar in pixels

internalGetOffsetSize

public abstract java.lang.String internalGetOffsetSize()

setScrollPos

public final void setScrollPos(double px)
Sets the scroll position of the scrollbar in the axis the scrollbar is representing.

Note: Even though double values are used, they are currently only used as integers as large int (or small but fast long). This means, all values are truncated to zero decimal places.

Parameters:
px - the new scroll position in pixels

onLoad

public void onLoad()
Should be called whenever this bundle is attached to the DOM (typically, from the onLoad of the containing widget). Used to ensure the DOM scroll position is maintained when detaching and reattaching the bundle.

Since:
7.4.1

internalSetScrollPos

protected abstract void internalSetScrollPos(int px)
Modifies the element's scroll position (scrollTop or scrollLeft).

Note: The parameter here is a type of integer (instead of a double) by design. The browsers internally convert all double values into an integer value. To make this fact explicit, this API has chosen to force integers already at this level.

Parameters:
px - integer pixel value to scroll to

getScrollPos

public final double getScrollPos()
Gets the scroll position of the scrollbar in the axis the scrollbar is representing.

Returns:
the new scroll position in pixels

internalGetScrollPos

protected abstract int internalGetScrollPos()
Retrieves the element's scroll position (scrollTop or scrollLeft).

Note: The parameter here is a type of integer (instead of a double) by design. The browsers internally convert all double values into an integer value. To make this fact explicit, this API has chosen to force integers already at this level.

Returns:
integer pixel value of the scroll position

internalSetScrollSize

protected abstract void internalSetScrollSize(double px)
Modifies scrollSizeElement's dimensions in such a way that the scrollbar is able to scroll a certain number of pixels in the axis it is representing.

Parameters:
px - the new size of scrollSizeElement in the dimension this scrollbar is representing

setScrollSize

public final void setScrollSize(double px)
Sets the amount of pixels the scrollbar needs to be able to scroll through.

Parameters:
px - the number of pixels the scrollbar should be able to scroll through

getScrollSize

public double getScrollSize()
Gets the amount of pixels the scrollbar needs to be able to scroll through.

Returns:
the number of pixels the scrollbar should be able to scroll through

internalSetScrollbarThickness

protected abstract void internalSetScrollbarThickness(double px)
Modifies scrollSizeElement's dimensions in the opposite axis to what the scrollbar is representing.

Parameters:
px - the dimension that scrollSizeElement should take in the opposite axis to what the scrollbar is representing

setScrollbarThickness

public final void setScrollbarThickness(double px)
Sets the scrollbar's thickness.

If the thickness is set to 0, the scrollbar will be treated as an "invisible" scrollbar. This means, the DOM structure will be given a non-zero size, but getScrollbarThickness() will still return the value 0.

Parameters:
px - the scrollbar's thickness in pixels

internalGetScrollbarThickness

protected abstract java.lang.String internalGetScrollbarThickness()
Gets the scrollbar's thickness as defined in the DOM.

Returns:
the scrollbar's thickness as defined in the DOM, in pixels

getScrollbarThickness

public final double getScrollbarThickness()
Gets the scrollbar's thickness.

This value will differ from the value in the DOM, if the thickness was set to 0 with setScrollbarThickness(double), as the scrollbar is then treated as "invisible."

Returns:
the scrollbar's thickness in pixels

showsScrollHandle

public boolean showsScrollHandle()
Checks whether the scrollbar's handle is visible.

In other words, this method checks whether the contents is larger than can visually fit in the element.

Returns:
true iff the scrollbar's handle is visible

recalculateMaxScrollPos

public void recalculateMaxScrollPos()

getHandlerManager

protected com.google.gwt.event.shared.HandlerManager getHandlerManager()

addVisibilityHandler

public com.google.gwt.event.shared.HandlerRegistration addVisibilityHandler(ScrollbarBundle.VisibilityHandler handler)
Adds handler for the scrollbar handle visibility.

Parameters:
handler - the ScrollbarBundle.VisibilityHandler to add
Returns:
HandlerRegistration used to remove the handler

setLocked

public void setLocked(boolean isLocked)
Locks or unlocks the scrollbar bundle.

A locked scrollbar bundle will refuse to scroll, both programmatically and via user-triggered events.

Parameters:
isLocked - true to lock, false to unlock

isLocked

public boolean isLocked()
Checks whether the scrollbar bundle is locked or not.

Returns:
true iff the scrollbar bundle is locked

getDirection

public abstract ScrollbarBundle.Direction getDirection()
Returns the scroll direction of this scrollbar bundle.

Returns:
the scroll direction of this scrollbar bundle

addScrollHandler

public com.google.gwt.event.shared.HandlerRegistration addScrollHandler(ScrollHandler handler)
Adds a scroll handler to the scrollbar bundle.

Parameters:
handler - the handler to add
Returns:
the registration object for the handler registration

isWorkPending

public boolean isWorkPending()
Description copied from interface: DeferredWorker
Checks whether there are operations pending for this widget or connector that must be executed before reaching a steady state.

Specified by:
isWorkPending in interface DeferredWorker


Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.