Example usage for com.google.gwt.user.client.ui ScrollPanel addScrollHandler

List of usage examples for com.google.gwt.user.client.ui ScrollPanel addScrollHandler

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui ScrollPanel addScrollHandler.

Prototype

@Override
    public HandlerRegistration addScrollHandler(ScrollHandler handler) 

Source Link

Usage

From source file:cc.alcina.framework.gwt.client.cell.ShowMorePager.java

License:Apache License

public void attachTo(HasRows display, ScrollPanel scrollable) {
    setDisplay(display);/*w w w  . j av a 2s . c  om*/
    // Handle scroll events.
    scrollable.addScrollHandler(new ScrollHandler() {
        @Override
        public void onScroll(ScrollEvent event) {
            // If scrolling up, ignore the event.
            int oldScrollPos = lastScrollPos;
            lastScrollPos = scrollable.getVerticalScrollPosition();
            if (oldScrollPos >= lastScrollPos) {
                return;
            }
            HasRows display = getDisplay();
            if (display == null) {
                return;
            }
            int scrollPanelContentsHeight = scrollable.getWidget().getOffsetHeight();
            int scrollPanelHeight = scrollable.getOffsetHeight();
            int maxScrollTop = scrollPanelContentsHeight - scrollPanelHeight - 20;
            // hack but not sure how to deal with said autoscrolls
            if (Math.abs(lastScrollPos - oldScrollPos) > 500) {
                // handle autoscroll to end
                return;
            }
            if (lastScrollPos >= maxScrollTop) {
                // We are near the end, so increase the page size.
                int newPageSize = Math.min(display.getVisibleRange().getLength() + incrementSize,
                        display.getRowCount());
                if (newPageSize != 0) {
                    Range newRange = new Range(0, newPageSize);
                    if (display.getVisibleRange().getStart() == newRange.getStart()
                            && display.getVisibleRange().getLength() >= newRange.getLength()) {
                        // don't show a smaller visible range (which would
                        // force a search)
                        return;
                    }
                    display.setVisibleRange(0, newPageSize);
                }
            }
        }
    });
}

From source file:com.vaadin.addon.calendar.gwt.client.ui.schedule.WeekGrid.java

private void setVerticalScroll(boolean isVerticalScrollEnabled) {
    if (isVerticalScrollEnabled && !(isVerticalScrollable())) {
        verticalScrollEnabled = true;/* w  w w . ja va2 s.  com*/
        horizontalScrollEnabled = false;
        wrapper.remove(content);

        final ScrollPanel scrollPanel = new ScrollPanel();
        scrollPanel.setStylePrimaryName("v-calendar-week-wrapper");
        scrollPanel.setWidget(content);

        scrollPanel.addScrollHandler(new ScrollHandler() {
            public void onScroll(ScrollEvent event) {
                if (calendar.getScrollListener() != null) {
                    calendar.getScrollListener().scroll(scrollPanel.getScrollPosition());
                }
            }
        });

        setWidget(scrollPanel);
        wrapper = scrollPanel;

    } else if (!isVerticalScrollEnabled && (isVerticalScrollable())) {
        verticalScrollEnabled = false;
        horizontalScrollEnabled = false;
        wrapper.remove(content);

        SimplePanel simplePanel = new SimplePanel();
        simplePanel.setStylePrimaryName("v-calendar-week-wrapper");
        simplePanel.setWidget(content);

        setWidget(simplePanel);
        wrapper = simplePanel;
    }
}

From source file:com.vaadin.client.ui.calendar.schedule.WeekGrid.java

License:Apache License

private void setVerticalScroll(boolean isVerticalScrollEnabled) {
    if (isVerticalScrollEnabled && !(isVerticalScrollable())) {
        verticalScrollEnabled = true;//from   w ww  . j a v  a2 s  . c o  m
        horizontalScrollEnabled = false;
        wrapper.remove(content);

        final ScrollPanel scrollPanel = new ScrollPanel();
        scrollPanel.setStylePrimaryName("v-calendar-week-wrapper");
        scrollPanel.setWidget(content);

        scrollPanel.addScrollHandler(new ScrollHandler() {
            @Override
            public void onScroll(ScrollEvent event) {
                if (calendar.getScrollListener() != null) {
                    calendar.getScrollListener().scroll(scrollPanel.getVerticalScrollPosition());
                }
            }
        });

        setWidget(scrollPanel);
        wrapper = scrollPanel;

    } else if (!isVerticalScrollEnabled && (isVerticalScrollable())) {
        verticalScrollEnabled = false;
        horizontalScrollEnabled = false;
        wrapper.remove(content);

        SimplePanel simplePanel = new SimplePanel();
        simplePanel.setStylePrimaryName("v-calendar-week-wrapper");
        simplePanel.setWidget(content);

        setWidget(simplePanel);
        wrapper = simplePanel;
    }
}

From source file:org.activityinfo.ui.client.widget.CellTable.java

License:Open Source License

private void addScrollHandlers() {
    final ScrollPanel scrollAncestor = getScrollAncestor();
    if (scrollAncestor != null) {
        scrollAncestor.addScrollHandler(new com.google.gwt.event.dom.client.ScrollHandler() {
            @Override//www . j  a  va2  s  .  c om
            public void onScroll(com.google.gwt.event.dom.client.ScrollEvent event) {
                eventBus.fireEvent(new ScrollEvent(scrollAncestor));
            }
        });
    } else { // attach scroll handler to window (if scrollAncestor can't be identified)
        Window.addWindowScrollHandler(new Window.ScrollHandler() {
            @Override
            public void onWindowScroll(Window.ScrollEvent event) {
                eventBus.fireEvent(new ScrollEvent(scrollAncestor));
            }
        });
    }
}

From source file:org.eclipse.draw2d.FigureCanvas.java

License:Open Source License

/**
 * Adds listeners for scrolling./*  www . j av a2s . com*/
 */
private void hook() {
    getLightweightSystem().getUpdateManager().addUpdateListener(new UpdateListener() {
        public void notifyPainting(Rectangle damage, java.util.Map dirtyRegions) {
        }

        public void notifyValidating() {
            if (!isDisposed())
                layoutViewport();
        }
    });

    getHorizontalBar().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            scrollToX(getHorizontalBar().getSelection() - hBarOffset);
        }
    });

    getVerticalBar().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            scrollToY(getVerticalBar().getSelection() - vBarOffset);
        }
    });

    if (getSimplePanel() != null) {
        final ScrollPanel sp = (ScrollPanel) getSimplePanel().getParent();

        if (sp != null) {
            sp.addScrollHandler(new ScrollHandler() {
                @Override
                public void onScroll(ScrollEvent event) {
                    scroll(sp);
                }
            });
        }
    }
}

From source file:org.rstudio.core.client.widget.VirtualizedDataGrid.java

License:Open Source License

public HandlerRegistration addScrollHandler(ScrollHandler handler) {
    ScrollPanel panel = getScrollPanel();
    return panel.addScrollHandler(handler);
}