if (child.getElement().getOffsetParent() == null) { return; if (child.getElement().getOffsetParent() == getElement()) { return;
private void checkGWTIssue1813(Widget child, AbsolutePanel parent) { if (!GWT.isScript()) { if (child.getElement().getOffsetParent() != parent.getElement() && !"HTML".equals(child.getElement().getOffsetParent().getNodeName())) { DOMUtil.reportFatalAndThrowRuntimeException("The boundary panel for this drag controller does not appear to have" + " 'position: relative' CSS applied to it." + " This may be due to custom CSS in your application, although this" + " is often caused by using the result of RootPanel.get(\"some-unique-id\") as your boundary" + " panel, as described in GWT issue 1813" + " (http://code.google.com/p/google-web-toolkit/issues/detail?id=1813)." + " You can often remedy this problem by adding one line of code to your application:" + " boundaryPanel.getElement().getStyle().setProperty(\"position\", \"relative\");"); } } }
@Override public boolean execute() { if (!followOutput) { followScheduled = false; return false; } if (scrollPanel.getElement().getOffsetParent() != null) { scrollPanel.scrollToBottom(); scrollPanel.scrollToLeft(); followScheduled = false; return false; } return true; } },
if (child.getElement().getOffsetParent() == null) { return; if (child.getElement().getOffsetParent() == getElement()) { return;
@Override public boolean execute() { if (scrollPanel.getElement().getOffsetParent() != null) { scrollPanel .getElement() .setScrollTop(scrollPanel.getElement().getScrollHeight()); scrollBottomRequired = false; return false; } return true; } },
if (child.getElement().getOffsetParent() == null) { return; if (child.getElement().getOffsetParent() == getElement()) { return;
if (scrollPanel.getElement().getOffsetParent() != null) { scrollPanel.scrollToBottom(); scrollPanel.scrollToLeft();
/** {@inheritDoc} */ @Override public void scrollBottom() { /** scroll bottom immediately if view is visible */ if (scrollPanel.getElement().getOffsetParent() != null) { scrollPanel.getElement().setScrollTop(scrollPanel.getElement().getScrollHeight()); return; } /** otherwise, check the visibility periodically and scroll the view when it's visible */ if (!scrollBottomRequired) { scrollBottomRequired = true; Scheduler.get() .scheduleFixedPeriod( new Scheduler.RepeatingCommand() { @Override public boolean execute() { if (scrollPanel.getElement().getOffsetParent() != null) { scrollPanel .getElement() .setScrollTop(scrollPanel.getElement().getScrollHeight()); scrollBottomRequired = false; return false; } return true; } }, 1000); } }
setBottom(getTop() + widget.getOffsetHeight()); Element elem = widget.getElement().getOffsetParent(); Element p;