From: Johannes Dahlström Date: Fri, 4 May 2012 14:44:22 +0000 (+0000) Subject: #8720 Use TouchScrollDelegate.enableTouchScrolling() instead of a TouchScrollDelegate... X-Git-Tag: 7.0.0.alpha3~185^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c3bba747205792447d67b3ac0c1ecf91ec6f87ca;p=vaadin-framework.git #8720 Use TouchScrollDelegate.enableTouchScrolling() instead of a TouchScrollDelegate instance directly svn changeset:23681/svn branch:6.8 --- diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTabsheetPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VTabsheetPanel.java index 126b0ebea1..f1dbea18b2 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VTabsheetPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VTabsheetPanel.java @@ -4,16 +4,13 @@ package com.vaadin.terminal.gwt.client.ui; -import com.google.gwt.dom.client.Node; -import com.google.gwt.dom.client.NodeList; -import com.google.gwt.event.dom.client.TouchStartEvent; -import com.google.gwt.event.dom.client.TouchStartHandler; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.Util; +import com.vaadin.terminal.gwt.client.ui.TouchScrollDelegate.TouchScrollHandler; /** * A panel that displays all of its child widgets in a 'deck', where only one @@ -27,7 +24,8 @@ import com.vaadin.terminal.gwt.client.Util; public class VTabsheetPanel extends ComplexPanel { private Widget visibleWidget; - private TouchScrollDelegate touchScrollDelegate; + + private TouchScrollHandler touchScrollHandler; /** * Creates an empty tabsheet panel. @@ -35,30 +33,8 @@ public class VTabsheetPanel extends ComplexPanel { public VTabsheetPanel() { setElement(DOM.createDiv()); sinkEvents(Event.TOUCHEVENTS); - addDomHandler(new TouchStartHandler() { - public void onTouchStart(TouchStartEvent event) { - /* - * All container elements needs to be scrollable by one finger. - * Update the scrollable element list of touch delegate on each - * touch start. - */ - NodeList childNodes = getElement().getChildNodes(); - Element[] elements = new Element[childNodes.getLength()]; - for (int i = 0; i < elements.length; i++) { - elements[i] = (Element) childNodes.getItem(i); - } - getTouchScrollDelegate().setElements(elements); - getTouchScrollDelegate().onTouchStart(event); - } - }, TouchStartEvent.getType()); - } - - protected TouchScrollDelegate getTouchScrollDelegate() { - if (touchScrollDelegate == null) { - touchScrollDelegate = new TouchScrollDelegate(); - } - return touchScrollDelegate; + touchScrollHandler = TouchScrollDelegate.enableTouchScrolling(this); } /** @@ -77,7 +53,6 @@ public class VTabsheetPanel extends ComplexPanel { private Element createContainerElement() { Element el = DOM.createDiv(); DOM.setStyleAttribute(el, "position", "absolute"); - DOM.setStyleAttribute(el, "overflow", "auto"); hide(el); return el; } @@ -142,6 +117,8 @@ public class VTabsheetPanel extends ComplexPanel { } visibleWidget = newVisible; unHide(DOM.getParent(visibleWidget.getElement())); + touchScrollHandler.setElements(visibleWidget.getElement() + .getParentElement()); } } @@ -199,7 +176,6 @@ public class VTabsheetPanel extends ComplexPanel { Util.runWebkitOverflowAutoFix(DOM.getParent(visibleWidget .getElement())); } - } public void replaceComponent(Widget oldComponent, Widget newComponent) {