/* * Copyright 2000-2016 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.vaadin.server; import java.io.Serializable; /** * <p> * This interface is implemented by all visual objects that can be scrolled * programmatically from the server-side. The unit of scrolling is pixel. * </p> * * @author Vaadin Ltd. * @since 3.0 */ public interface Scrollable extends Serializable { /** * Gets scroll left offset. * * <p> * Scrolling offset is the number of pixels this scrollable has been * scrolled right. * </p> * * @return Horizontal scrolling position in pixels. */ public int getScrollLeft(); /** * Sets scroll left offset. * * <p> * Scrolling offset is the number of pixels this scrollable has been * scrolled right. * </p> * * @param scrollLeft * the xOffset. */ public void setScrollLeft(int scrollLeft); /** * Gets scroll top offset. * * <p> * Scrolling offset is the number of pixels this scrollable has been * scrolled down. * </p> * * @return Vertical scrolling position in pixels. */ public int getScrollTop(); /** * Sets scroll top offset. * * <p> * Scrolling offset is the number of pixels this scrollable has been * scrolled down. * </p> * * <p> * The scrolling position is limited by the current height of the content * area. If the position is below the height, it is scrolled to the bottom. * However, if the same response also adds height to the content area, * scrolling to bottom only scrolls to the bottom of the previous content * area. * </p> * * @param scrollTop * the yOffset. */ public void setScrollTop(int scrollTop); }