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

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

Introduction

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

Prototype

@Override
    public int getVerticalScrollPosition() 

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);//from   w  ww.  ja va  2 s.  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:cl.uai.client.page.MarkingPage.java

License:Open Source License

/**
 * Highlight a particular mark within the page
 * /*from   w w w.ja  v  a 2 s.  c  om*/
 * @param markId the mark's id
 */
public void highlightRubricMark(int markId) {
    if (!(marks.get(markId) instanceof RubricMark)) {
        return;
    }
    RubricMark mark = (RubricMark) marks.get(markId);
    ScrollPanel scrollPanel = EMarkingWeb.markingInterface.getMarkingPagesInterface().getScrollPanel();
    int top = scrollPanel.getVerticalScrollPosition() + (mark.getAbsoluteTop() - scrollPanel.getAbsoluteTop());
    scrollPanel.setVerticalScrollPosition(top);
}

From source file:cl.uai.client.rubric.RubricPanel.java

License:Open Source License

/**
 * Highlights a criterion within the rubric panel
 * /*from  ww w  .  j  a  va2  s .  co  m*/
 * @param criterionid id of the criterion to highlight
 */
public void highlightRubricCriterion(int criterionid) {
    // Find the row in the hash map
    FlowPanel hpanel = rubricRows.get(criterionid);
    if (hpanel == null)
        return;

    // Remove style in case it already has it
    hpanel.removeStyleName(Resources.INSTANCE.css().rubricmarkhover());
    hpanel.addStyleName(Resources.INSTANCE.css().rubricmarkhover());

    Criterion criterion = MarkingInterface.submissionData.getRubricfillings().get(criterionid);

    // If the marked criteria is shown, scroll to it
    if (isCriterionVisible(criterion)) {
        ScrollPanel scrollPanel = (ScrollPanel) this.getParent();
        int top = scrollPanel.getVerticalScrollPosition()
                + (hpanel.getAbsoluteTop() - scrollPanel.getAbsoluteTop());
        scrollPanel.setVerticalScrollPosition(top);
    }
}

From source file:com.alkacon.geranium.client.util.ScrollToBottomHandler.java

License:Open Source License

/**
 * @see com.google.gwt.event.dom.client.ScrollHandler#onScroll(com.google.gwt.event.dom.client.ScrollEvent)
 */// w ww . j  av  a2 s  . com
public void onScroll(ScrollEvent event) {

    if (!m_enabled) {
        return;
    }
    final ScrollPanel scrollPanel = (ScrollPanel) event.getSource();
    final int scrollPos = scrollPanel.getVerticalScrollPosition();
    Widget child = scrollPanel.getWidget();
    int childHeight = child.getOffsetHeight();
    int ownHeight = scrollPanel.getOffsetHeight();
    boolean isBottom = (scrollPos + ownHeight) >= (childHeight - m_scrollThreshold);
    if (isBottom) {
        m_callback.run();
        m_enabled = false;
        scrollPanel.setVerticalScrollPosition(scrollPos);
        Scheduler.get().scheduleDeferred(new ScheduledCommand() {

            /**
             * @see com.google.gwt.core.client.Scheduler.ScheduledCommand#execute()
             */
            public void execute() {

                scrollPanel.setVerticalScrollPosition(scrollPos);
                m_enabled = true;
            }
        });
    }
}

From source file:com.ponysdk.ui.terminal.addon.floatablepanel.PCFloatablePanel.java

License:Apache License

private boolean setAndGetVerticalScrollChanged(ScrollPanel scrollPanel) {
    final boolean changed = scrollPanel.getVerticalScrollPosition() != lastVerticalScrollPosition;
    lastVerticalScrollPosition = scrollPanel.getVerticalScrollPosition();
    return changed;
}

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

License:Apache License

private void setVerticalScroll(boolean isVerticalScrollEnabled) {
    if (isVerticalScrollEnabled && !(isVerticalScrollable())) {
        verticalScrollEnabled = true;//w w  w . ja v  a  2s.  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:de.uni_koeln.spinfo.maalr.webapp.ui.common.client.PagingDataGrid.java

License:Apache License

public PagingDataGrid(int pageSize) {
    super(pageSize - 1, (Resources) GWT.create(TableRes.class));
    this.incrementSize = pageSize;
    getScrollPanel().addScrollHandler(new ScrollHandler() {

        private int lastScrollPos = 0;

        @Override//from  w ww .j  av  a 2  s.  c  om
        public void onScroll(ScrollEvent event) {
            // If scrolling up, ignore the event.
            getScrollPanel().getElement().focus();
            int oldScrollPos = lastScrollPos;
            ScrollPanel scrollable = getScrollPanel();
            lastScrollPos = scrollable.getVerticalScrollPosition();
            if (oldScrollPos >= lastScrollPos) {
                return;
            }

            int maxScrollTop = scrollable.getWidget().getOffsetHeight() - scrollable.getOffsetHeight();
            if (lastScrollPos >= maxScrollTop) {
                handlerManager.fireEvent(new LazyLoadEvent(PagingDataGrid.this));
                //               // We are near the end, so increase the page size.
                //               int newPageSize = Math.min(display.getVisibleRange()
                //                     .getLength() + getIncrementSize(), display.getRowCount());
                //               display.setVisibleRange(0, newPageSize);
            }
        }

    });

}

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

License:Open Source License

private void scroll(ScrollPanel sp) {
    int hsp = sp.getHorizontalScrollPosition();
    int vsp = sp.getVerticalScrollPosition();

    int hminimum = getViewport().getHorizontalRangeModel().getMinimum();
    int vminimum = getViewport().getVerticalRangeModel().getMinimum();

    scrollTo(hminimum + hsp, vminimum + vsp);
}

From source file:org.nsesa.editor.gwt.amendment.client.ui.document.marker.AmendmentMarkerController.java

License:EUPL

@Override
protected void onTimerRun() {
    if (sourceFileController != null) {
        view.clearMarkers();/*w  w w.j a  v  a2  s .  c o m*/
        final ScrollPanel scrollPanel = sourceFileController.getContentController().getView().getScrollPanel();
        final int documentHeight = scrollPanel.getMaximumVerticalScrollPosition();
        if (amendmentManager != null) {
            for (final AmendmentController amendmentController : amendmentManager.getAmendmentControllers()) {
                if (amendmentController.getDocumentController() == sourceFileController.getDocumentController()
                        && amendmentController.getView().asWidget().isAttached()) {
                    final int amendmentTop = amendmentController.getView().asWidget().getAbsoluteTop()
                            - scrollPanel.asWidget().getAbsoluteTop() + scrollPanel.getVerticalScrollPosition();
                    final double division = (double) amendmentTop / (double) (documentHeight);
                    LOG.finest("Amendment is: " + amendmentTop + ", and division is at " + division);
                    final FocusWidget focusWidget = view.addMarker(division,
                            colorCodes.get(amendmentController.getModel().getAmendmentContainerStatus()));
                    focusWidget.addClickHandler(new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                            // TODO: this is a very poor solution to find a amendable widget to scroll to ...
                            if (!amendmentController.getOverlayWidget().asWidget().isVisible()) {
                                final OverlayWidget amendedOverlayWidget = amendmentController
                                        .getOverlayWidget();
                                if (amendedOverlayWidget != null) {
                                    amendedOverlayWidget.getOverlayElement().getPreviousSiblingElement();

                                    OverlayWidget previousNonIntroducedOverlayWidget = amendedOverlayWidget
                                            .getPreviousSibling(new OverlayWidgetSelector() {
                                                @Override
                                                public boolean select(OverlayWidget toSelect) {
                                                    return !toSelect.isIntroducedByAnAmendment();
                                                }
                                            });

                                    while (previousNonIntroducedOverlayWidget != null
                                            && !previousNonIntroducedOverlayWidget.asWidget().isVisible()) {
                                        previousNonIntroducedOverlayWidget = previousNonIntroducedOverlayWidget
                                                .getPreviousSibling(new OverlayWidgetSelector() {
                                                    @Override
                                                    public boolean select(OverlayWidget toSelect) {
                                                        return !toSelect.isIntroducedByAnAmendment();
                                                    }
                                                });
                                    }
                                    if (previousNonIntroducedOverlayWidget != null)
                                        sourceFileController
                                                .scrollTo(previousNonIntroducedOverlayWidget.asWidget());
                                    else {
                                        sourceFileController.scrollTo(
                                                amendedOverlayWidget.getParentOverlayWidget().asWidget());
                                    }
                                }
                            } else {
                                sourceFileController.scrollTo(amendmentController.getView().asWidget());
                            }
                        }
                    });
                }
            }
        }
    }
}

From source file:org.opencms.ade.galleries.client.ui.CmsResultsBackwardsScrollHandler.java

License:Open Source License

/**
 * @see com.google.gwt.event.dom.client.ScrollHandler#onScroll(com.google.gwt.event.dom.client.ScrollEvent)
 *///from   w  w w  .java  2 s .  com
public void onScroll(ScrollEvent event) {

    if (m_searchBean == null) {
        return;
    }
    if (m_resultBeans == null) {
        return;
    }
    if (!m_enabled) {
        return;
    }
    final ScrollPanel scrollPanel = (ScrollPanel) event.getSource();
    final int scrollPos = scrollPanel.getVerticalScrollPosition();
    if ((scrollPos <= SCROLL_THRESHOLD) && hasMore()) {
        m_enabled = false;
        Scheduler.get().scheduleDeferred(new ScheduledCommand() {

            /**
             * @see com.google.gwt.core.client.Scheduler.ScheduledCommand#execute()
             */
            public void execute() {

                m_enabled = true;
                m_resultsTab.getList().setVerticalScrollPosition(50);
            }
        });
        loadPreviousPage();
    }

}