Class ScrollbarBundle

    • Field Detail

      • root

        protected final com.google.gwt.dom.client.Element root
      • scrollSizeElement

        protected final com.google.gwt.dom.client.Element scrollSizeElement
      • isInvisibleScrollbar

        protected boolean isInvisibleScrollbar
    • Method Detail

      • internalGetScrollSize

        protected abstract String internalGetScrollSize()
      • setStylePrimaryName

        public void setStylePrimaryName​(String primaryStyleName)
        Sets the primary style name
        Parameters:
        primaryStyleName - The primary style name to use
      • getElement

        public final com.google.gwt.dom.client.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 method is an IE8 workaround, since it doesn't always show scrollbars with overflow: auto enabled.

        Firefox on the other hand loses pending scroll events when the scrollbar is hidden, so the event must be fired manually.

        When IE8 support is dropped, this should really be simplified.

      • 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 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 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()
      • 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