diff options
author | Henrik Paul <henrik@vaadin.com> | 2014-08-27 15:18:30 +0300 |
---|---|---|
committer | Henrik Paul <henrik@vaadin.com> | 2014-08-28 11:31:41 +0000 |
commit | 1de6a75497bae315dfcb70c272225a6d3ea0af19 (patch) | |
tree | b90ef2ae20c64438b795b34b8b306773197ebe53 /client | |
parent | b49e431840030436bdcecfb0cff3ff38b6509b6b (diff) | |
download | vaadin-framework-1de6a75497bae315dfcb70c272225a6d3ea0af19.tar.gz vaadin-framework-1de6a75497bae315dfcb70c272225a6d3ea0af19.zip |
ScrollbarBundle, Escalator and Grid fire Scroll events (#13334)
Change-Id: I362f1f8d2107d762b43ab52c1f22dfd218f67ba4
Diffstat (limited to 'client')
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/Escalator.java | 22 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/Grid.java | 61 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java | 55 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/AbstractGridKeyEventHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/AbstractGridKeyEventHandler.java) | 2 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/BodyKeyDownHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/BodyKeyDownHandler.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/BodyKeyPressHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/BodyKeyPressHandler.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/BodyKeyUpHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/BodyKeyUpHandler.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/FooterKeyDownHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/FooterKeyDownHandler.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/FooterKeyPressHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/FooterKeyPressHandler.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/FooterKeyUpHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/FooterKeyUpHandler.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/GridKeyDownEvent.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/GridKeyDownEvent.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/GridKeyPressEvent.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/GridKeyPressEvent.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/GridKeyUpEvent.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/GridKeyUpEvent.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/HeaderKeyDownHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/HeaderKeyDownHandler.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/HeaderKeyPressHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/HeaderKeyPressHandler.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/HeaderKeyUpHandler.java (renamed from client/src/com/vaadin/client/ui/grid/keyevents/HeaderKeyUpHandler.java) | 4 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/ScrollEvent.java | 39 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/events/ScrollHandler.java | 34 | ||||
-rw-r--r-- | client/src/com/vaadin/client/ui/grid/selection/MultiSelectionRenderer.java | 8 |
19 files changed, 224 insertions, 45 deletions
diff --git a/client/src/com/vaadin/client/ui/grid/Escalator.java b/client/src/com/vaadin/client/ui/grid/Escalator.java index dd220b2964..ceff55e303 100644 --- a/client/src/com/vaadin/client/ui/grid/Escalator.java +++ b/client/src/com/vaadin/client/ui/grid/Escalator.java @@ -57,6 +57,8 @@ import com.vaadin.client.ui.grid.PositionFunction.TranslatePosition; import com.vaadin.client.ui.grid.PositionFunction.WebkitTranslate3DPosition; import com.vaadin.client.ui.grid.ScrollbarBundle.HorizontalScrollbarBundle; import com.vaadin.client.ui.grid.ScrollbarBundle.VerticalScrollbarBundle; +import com.vaadin.client.ui.grid.events.ScrollEvent; +import com.vaadin.client.ui.grid.events.ScrollHandler; import com.vaadin.shared.ui.grid.GridState; import com.vaadin.shared.ui.grid.HeightMode; import com.vaadin.shared.ui.grid.Range; @@ -3950,11 +3952,20 @@ public class Escalator extends Widget { final Element root = DOM.createDiv(); setElement(root); + ScrollHandler scrollHandler = new ScrollHandler() { + @Override + public void onScroll(ScrollEvent event) { + fireEvent(new ScrollEvent()); + } + }; + root.appendChild(verticalScrollbar.getElement()); + verticalScrollbar.addScrollHandler(scrollHandler); verticalScrollbar.getElement().setTabIndex(-1); verticalScrollbar.setScrollbarThickness(Util.getNativeScrollbarSize()); root.appendChild(horizontalScrollbar.getElement()); + horizontalScrollbar.addScrollHandler(scrollHandler); horizontalScrollbar.getElement().setTabIndex(-1); horizontalScrollbar .setScrollbarThickness(Util.getNativeScrollbarSize()); @@ -4668,4 +4679,15 @@ public class Escalator extends Widget { + direction); } } + + /** + * Adds a scroll handler to this escalator + * + * @param handler + * the scroll handler to add + * @return a handler registration for the registered scroll handler + */ + public HandlerRegistration addScrollHandler(ScrollHandler handler) { + return addHandler(handler, ScrollEvent.TYPE); + } } diff --git a/client/src/com/vaadin/client/ui/grid/Grid.java b/client/src/com/vaadin/client/ui/grid/Grid.java index 4d8aa25c3b..9c12b37bb5 100644 --- a/client/src/com/vaadin/client/ui/grid/Grid.java +++ b/client/src/com/vaadin/client/ui/grid/Grid.java @@ -52,22 +52,24 @@ import com.vaadin.client.ui.SubPartAware; import com.vaadin.client.ui.grid.GridFooter.FooterRow; import com.vaadin.client.ui.grid.GridHeader.HeaderRow; import com.vaadin.client.ui.grid.GridStaticSection.StaticCell; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyDownHandler; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyPressHandler; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyUpHandler; -import com.vaadin.client.ui.grid.keyevents.BodyKeyDownHandler; -import com.vaadin.client.ui.grid.keyevents.BodyKeyPressHandler; -import com.vaadin.client.ui.grid.keyevents.BodyKeyUpHandler; -import com.vaadin.client.ui.grid.keyevents.FooterKeyDownHandler; -import com.vaadin.client.ui.grid.keyevents.FooterKeyPressHandler; -import com.vaadin.client.ui.grid.keyevents.FooterKeyUpHandler; -import com.vaadin.client.ui.grid.keyevents.GridKeyDownEvent; -import com.vaadin.client.ui.grid.keyevents.GridKeyPressEvent; -import com.vaadin.client.ui.grid.keyevents.GridKeyUpEvent; -import com.vaadin.client.ui.grid.keyevents.HeaderKeyDownHandler; -import com.vaadin.client.ui.grid.keyevents.HeaderKeyPressHandler; -import com.vaadin.client.ui.grid.keyevents.HeaderKeyUpHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyDownHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyPressHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyUpHandler; +import com.vaadin.client.ui.grid.events.BodyKeyDownHandler; +import com.vaadin.client.ui.grid.events.BodyKeyPressHandler; +import com.vaadin.client.ui.grid.events.BodyKeyUpHandler; +import com.vaadin.client.ui.grid.events.FooterKeyDownHandler; +import com.vaadin.client.ui.grid.events.FooterKeyPressHandler; +import com.vaadin.client.ui.grid.events.FooterKeyUpHandler; +import com.vaadin.client.ui.grid.events.GridKeyDownEvent; +import com.vaadin.client.ui.grid.events.GridKeyPressEvent; +import com.vaadin.client.ui.grid.events.GridKeyUpEvent; +import com.vaadin.client.ui.grid.events.HeaderKeyDownHandler; +import com.vaadin.client.ui.grid.events.HeaderKeyPressHandler; +import com.vaadin.client.ui.grid.events.HeaderKeyUpHandler; +import com.vaadin.client.ui.grid.events.ScrollEvent; +import com.vaadin.client.ui.grid.events.ScrollHandler; import com.vaadin.client.ui.grid.renderers.ComplexRenderer; import com.vaadin.client.ui.grid.renderers.WidgetRenderer; import com.vaadin.client.ui.grid.selection.HasSelectionChangeHandlers; @@ -1225,6 +1227,13 @@ public class Grid<T> extends Composite implements setSelectionMode(SelectionMode.SINGLE); + escalator.addScrollHandler(new ScrollHandler() { + @Override + public void onScroll(ScrollEvent event) { + fireEvent(new ScrollEvent()); + } + }); + escalator .addRowVisibilityChangeHandler(new RowVisibilityChangeHandler() { @Override @@ -1814,6 +1823,15 @@ public class Grid<T> extends Composite implements return escalator.getScrollTop(); } + /** + * Gets the horizontal scroll offset + * + * @return the number of pixels this grid is scrolled to the right + */ + public double getScrollLeft() { + return escalator.getScrollLeft(); + } + private static final Logger getLogger() { return Logger.getLogger(Grid.class.getName()); } @@ -2560,4 +2578,15 @@ public class Grid<T> extends Composite implements return firstRowIndex; } + + /** + * Adds a scroll handler to this grid + * + * @param handler + * the scroll handler to add + * @return a handler registration for the registered scroll handler + */ + public HandlerRegistration addScrollHandler(ScrollHandler handler) { + return addHandler(handler, ScrollEvent.TYPE); + } } diff --git a/client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java b/client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java index a45affb0be..ceaa4b9fec 100644 --- a/client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java +++ b/client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java @@ -16,6 +16,8 @@ package com.vaadin.client.ui.grid; +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.Style.Overflow; import com.google.gwt.dom.client.Style.Unit; @@ -27,6 +29,8 @@ import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.EventListener; import com.google.gwt.user.client.Timer; +import com.vaadin.client.ui.grid.events.ScrollEvent; +import com.vaadin.client.ui.grid.events.ScrollHandler; /** * An element-like bundle representing a configurable and visual scrollbar in @@ -39,6 +43,41 @@ import com.google.gwt.user.client.Timer; */ abstract class ScrollbarBundle { + private class ScrollEventFirer { + private final ScheduledCommand fireEventCommand = new ScheduledCommand() { + @Override + public void execute() { + if (!pixelValuesEqual(startScrollPos, getScrollPos())) { + getHandlerManager().fireEvent(new ScrollEvent()); + } + reset(); + } + }; + + private boolean isBeingFired; + private double startScrollPos; + + public ScrollEventFirer() { + reset(); + } + + public void scheduleEvent() { + if (!isBeingFired) { + /* + * We'll gather all the scroll events, and only fire once, once + * everything has calmed down. + */ + Scheduler.get().scheduleDeferred(fireEventCommand); + isBeingFired = true; + } + } + + private void reset() { + isBeingFired = false; + startScrollPos = getScrollPos(); + } + } + /** * The orientation of the scrollbar. */ @@ -288,6 +327,8 @@ abstract class ScrollbarBundle { private TemporaryResizer invisibleScrollbarTemporaryResizer = new TemporaryResizer(); + private final ScrollEventFirer scrollEventFirer = new ScrollEventFirer(); + private ScrollbarBundle() { root.appendChild(scrollSizeElement); } @@ -409,6 +450,8 @@ abstract class ScrollbarBundle { * only facilitating future virtual scrollbars. */ internalSetScrollPos(toInt32(scrollPos)); + + scrollEventFirer.scheduleEvent(); } } @@ -603,6 +646,7 @@ abstract class ScrollbarBundle { int newScrollPos = internalGetScrollPos(); if (!isLocked()) { scrollPos = newScrollPos; + scrollEventFirer.scheduleEvent(); } else if (scrollPos != newScrollPos) { // we need to actually undo the setting of the scroll. internalSetScrollPos(toInt32(scrollPos)); @@ -694,4 +738,15 @@ abstract class ScrollbarBundle { * @return the scroll direction of this scrollbar bundle */ public abstract Direction getDirection(); + + /** + * Adds a scroll handler to the scrollbar bundle. + * + * @param handler + * the handler to add + * @return the registration object for the handler registration + */ + public HandlerRegistration addScrollHandler(final ScrollHandler handler) { + return getHandlerManager().addHandler(ScrollEvent.TYPE, handler); + } } diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/AbstractGridKeyEventHandler.java b/client/src/com/vaadin/client/ui/grid/events/AbstractGridKeyEventHandler.java index 57708e8bc9..8dcd24305b 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/AbstractGridKeyEventHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/AbstractGridKeyEventHandler.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; import com.google.gwt.event.shared.EventHandler; import com.vaadin.client.ui.grid.Grid.AbstractGridKeyEvent; diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/BodyKeyDownHandler.java b/client/src/com/vaadin/client/ui/grid/events/BodyKeyDownHandler.java index 9e61624a28..2ec81174b9 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/BodyKeyDownHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/BodyKeyDownHandler.java @@ -13,9 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyDownHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyDownHandler; /** * Handler for {@link GridKeyDownEvent}s that happen when active cell is in the diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/BodyKeyPressHandler.java b/client/src/com/vaadin/client/ui/grid/events/BodyKeyPressHandler.java index f44c1d172e..f328a11ab8 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/BodyKeyPressHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/BodyKeyPressHandler.java @@ -13,9 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyPressHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyPressHandler; /** * Handler for {@link GridKeyPressEvent}s that happen when active cell is in the diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/BodyKeyUpHandler.java b/client/src/com/vaadin/client/ui/grid/events/BodyKeyUpHandler.java index a6b3929d80..f5cab67946 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/BodyKeyUpHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/BodyKeyUpHandler.java @@ -13,9 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyUpHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyUpHandler; /** * Handler for {@link GridKeyUpEvent}s that happen when active cell is in the diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/FooterKeyDownHandler.java b/client/src/com/vaadin/client/ui/grid/events/FooterKeyDownHandler.java index 5e9fffdcda..e84da350dd 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/FooterKeyDownHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/FooterKeyDownHandler.java @@ -13,9 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyDownHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyDownHandler; /** * Handler for {@link GridKeyDownEvent}s that happen when active cell is in the diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/FooterKeyPressHandler.java b/client/src/com/vaadin/client/ui/grid/events/FooterKeyPressHandler.java index d5713d9135..617e25f190 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/FooterKeyPressHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/FooterKeyPressHandler.java @@ -13,9 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyPressHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyPressHandler; /** * Handler for {@link GridKeyPressEvent}s that happen when active cell is in the diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/FooterKeyUpHandler.java b/client/src/com/vaadin/client/ui/grid/events/FooterKeyUpHandler.java index 87978e1cd2..4dd3dc7f01 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/FooterKeyUpHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/FooterKeyUpHandler.java @@ -13,9 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyUpHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyUpHandler; /** * Handler for {@link GridKeyUpEvent}s that happen when active cell is in the diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/GridKeyDownEvent.java b/client/src/com/vaadin/client/ui/grid/events/GridKeyDownEvent.java index 65c8327eb6..2fab683bb0 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/GridKeyDownEvent.java +++ b/client/src/com/vaadin/client/ui/grid/events/GridKeyDownEvent.java @@ -13,12 +13,12 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; import com.google.gwt.dom.client.BrowserEvents; import com.vaadin.client.ui.grid.Grid; import com.vaadin.client.ui.grid.Grid.AbstractGridKeyEvent; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyDownHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyDownHandler; /** * Represents native key down event in Grid. diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/GridKeyPressEvent.java b/client/src/com/vaadin/client/ui/grid/events/GridKeyPressEvent.java index 388467990b..112200b03a 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/GridKeyPressEvent.java +++ b/client/src/com/vaadin/client/ui/grid/events/GridKeyPressEvent.java @@ -13,12 +13,12 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; import com.google.gwt.dom.client.BrowserEvents; import com.vaadin.client.ui.grid.Grid; import com.vaadin.client.ui.grid.Grid.AbstractGridKeyEvent; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyPressHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyPressHandler; /** * Represents native key press event in Grid. diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/GridKeyUpEvent.java b/client/src/com/vaadin/client/ui/grid/events/GridKeyUpEvent.java index dd1fb33e3f..9aa8ce7084 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/GridKeyUpEvent.java +++ b/client/src/com/vaadin/client/ui/grid/events/GridKeyUpEvent.java @@ -13,12 +13,12 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; import com.google.gwt.dom.client.BrowserEvents; import com.vaadin.client.ui.grid.Grid; import com.vaadin.client.ui.grid.Grid.AbstractGridKeyEvent; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyUpHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyUpHandler; /** * Represents native key up event in Grid. diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/HeaderKeyDownHandler.java b/client/src/com/vaadin/client/ui/grid/events/HeaderKeyDownHandler.java index d8a1132a84..a19bfad6bf 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/HeaderKeyDownHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/HeaderKeyDownHandler.java @@ -13,9 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyDownHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyDownHandler; /** * Handler for {@link GridKeyDownEvent}s that happen when active cell is in the diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/HeaderKeyPressHandler.java b/client/src/com/vaadin/client/ui/grid/events/HeaderKeyPressHandler.java index a2245b1dfe..1188dc9b3e 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/HeaderKeyPressHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/HeaderKeyPressHandler.java @@ -13,9 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyPressHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyPressHandler; /** * Handler for {@link GridKeyPressEvent}s that happen when active cell is in the diff --git a/client/src/com/vaadin/client/ui/grid/keyevents/HeaderKeyUpHandler.java b/client/src/com/vaadin/client/ui/grid/events/HeaderKeyUpHandler.java index 405195ec94..3a8bc3e78a 100644 --- a/client/src/com/vaadin/client/ui/grid/keyevents/HeaderKeyUpHandler.java +++ b/client/src/com/vaadin/client/ui/grid/events/HeaderKeyUpHandler.java @@ -13,9 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ -package com.vaadin.client.ui.grid.keyevents; +package com.vaadin.client.ui.grid.events; -import com.vaadin.client.ui.grid.keyevents.AbstractGridKeyEventHandler.GridKeyUpHandler; +import com.vaadin.client.ui.grid.events.AbstractGridKeyEventHandler.GridKeyUpHandler; /** * Handler for {@link GridKeyUpEvent}s that happen when active cell is in the diff --git a/client/src/com/vaadin/client/ui/grid/events/ScrollEvent.java b/client/src/com/vaadin/client/ui/grid/events/ScrollEvent.java new file mode 100644 index 0000000000..751823f9a5 --- /dev/null +++ b/client/src/com/vaadin/client/ui/grid/events/ScrollEvent.java @@ -0,0 +1,39 @@ +/* + * Copyright 2000-2014 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.client.ui.grid.events; + +import com.google.gwt.event.shared.GwtEvent; + +/** + * An event that signifies that a scrollbar bundle has been scrolled + * + * @author Vaadin Ltd + */ +public class ScrollEvent extends GwtEvent<ScrollHandler> { + + /** The type of this event */ + public static final Type<ScrollHandler> TYPE = new Type<ScrollHandler>(); + + @Override + public Type<ScrollHandler> getAssociatedType() { + return TYPE; + } + + @Override + protected void dispatch(final ScrollHandler handler) { + handler.onScroll(this); + } +} diff --git a/client/src/com/vaadin/client/ui/grid/events/ScrollHandler.java b/client/src/com/vaadin/client/ui/grid/events/ScrollHandler.java new file mode 100644 index 0000000000..473b18071a --- /dev/null +++ b/client/src/com/vaadin/client/ui/grid/events/ScrollHandler.java @@ -0,0 +1,34 @@ +/* + * Copyright 2000-2014 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.client.ui.grid.events; + +import com.google.gwt.event.shared.EventHandler; + +/** + * A handler that gets called whenever a scrollbar bundle is scrolled + * + * @author Vaadin Ltd + */ +public interface ScrollHandler extends EventHandler { + /** + * A callback method that is called once a scrollbar bundle has been + * scrolled. + * + * @param event + * the scroll event + */ + public void onScroll(ScrollEvent event); +} diff --git a/client/src/com/vaadin/client/ui/grid/selection/MultiSelectionRenderer.java b/client/src/com/vaadin/client/ui/grid/selection/MultiSelectionRenderer.java index bfcc639a64..222c8ab806 100644 --- a/client/src/com/vaadin/client/ui/grid/selection/MultiSelectionRenderer.java +++ b/client/src/com/vaadin/client/ui/grid/selection/MultiSelectionRenderer.java @@ -41,10 +41,10 @@ import com.vaadin.client.ui.grid.DataAvailableEvent; import com.vaadin.client.ui.grid.DataAvailableHandler; import com.vaadin.client.ui.grid.FlyweightCell; import com.vaadin.client.ui.grid.Grid; -import com.vaadin.client.ui.grid.keyevents.BodyKeyDownHandler; -import com.vaadin.client.ui.grid.keyevents.BodyKeyUpHandler; -import com.vaadin.client.ui.grid.keyevents.GridKeyDownEvent; -import com.vaadin.client.ui.grid.keyevents.GridKeyUpEvent; +import com.vaadin.client.ui.grid.events.BodyKeyDownHandler; +import com.vaadin.client.ui.grid.events.BodyKeyUpHandler; +import com.vaadin.client.ui.grid.events.GridKeyDownEvent; +import com.vaadin.client.ui.grid.events.GridKeyUpEvent; import com.vaadin.client.ui.grid.renderers.ComplexRenderer; import com.vaadin.client.ui.grid.selection.SelectionModel.Multi.Batched; import com.vaadin.shared.ui.grid.ScrollDestination; |