]> source.dussan.org Git - vaadin-framework.git/blob
3c0a4210a5f15f285d3cc08d6736993b75b8ceda
[vaadin-framework.git] /
1 /*
2  * Copyright 2000-2018 Vaadin Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */
16
17 package com.vaadin.v7.client.widget.escalator;
18
19 import com.google.gwt.event.shared.GwtEvent;
20 import com.vaadin.shared.Range;
21
22 /**
23  * Event fired when the range of visible rows changes e.g. because of scrolling.
24  *
25  * @since 7.4
26  * @author Vaadin Ltd
27  */
28 public class RowVisibilityChangeEvent
29         extends GwtEvent<RowVisibilityChangeHandler> {
30     /**
31      * The type of this event.
32      */
33     public static final Type<RowVisibilityChangeHandler> TYPE = new Type<RowVisibilityChangeHandler>();
34
35     private final Range visibleRows;
36
37     /**
38      * Creates a new row visibility change event.
39      *
40      * @param firstVisibleRow
41      *            the index of the first visible row
42      * @param visibleRowCount
43      *            the number of visible rows
44      */
45     public RowVisibilityChangeEvent(int firstVisibleRow, int visibleRowCount) {
46         visibleRows = Range.withLength(firstVisibleRow, visibleRowCount);
47     }
48
49     /**
50      * Gets the index of the first row that is at least partially visible.
51      *
52      * @return the index of the first visible row
53      */
54     public int getFirstVisibleRow() {
55         return visibleRows.getStart();
56     }
57
58     /**
59      * Gets the number of at least partially visible rows.
60      *
61      * @return the number of visible rows
62      */
63     public int getVisibleRowCount() {
64         return visibleRows.length();
65     }
66
67     /**
68      * Gets the range of visible rows.
69      *
70      * @since 7.6
71      * @return the visible rows
72      */
73     public Range getVisibleRowRange() {
74         return visibleRows;
75     }
76
77     /*
78      * (non-Javadoc)
79      *
80      * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
81      */
82     @Override
83     public Type<RowVisibilityChangeHandler> getAssociatedType() {
84         return TYPE;
85     }
86
87     /*
88      * (non-Javadoc)
89      *
90      * @see
91      * com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared
92      * .EventHandler)
93      */
94     @Override
95     protected void dispatch(RowVisibilityChangeHandler handler) {
96         handler.onRowVisibilityChange(this);
97     }
98
99 }