docs: public static void ensureVisible(final Element containerElement, Element element, int animationTime) {
  
          Element item = element;
          int realOffset = 0;
          while ((item != null) && (item != containerElement)) {
              realOffset += element.getOffsetTop();
              item = item.getOffsetParent();
          }
          final int endScrollTop = realOffset - (containerElement.getOffsetHeight() / 2);
  
          if (animationTime <= 0) {
              // no animation
              containerElement.setScrollTop(endScrollTop);
              return;
          }
          final int startScrollTop = containerElement.getScrollTop();
          (new Animation() {
  
              /**
               * @see com.google.gwt.animation.client.Animation#onUpdate(double)
               */
              @Override
              protected void onUpdate(double progress) {
  
                  containerElement.setScrollTop(startScrollTop + (int)((endScrollTop - startScrollTop) * progress));
              }
          }).run(animationTime);
      }