package org.vaadin.touchkit.gwt.client.vcom; import org.vaadin.touchkit.gwt.client.ui.VSwipeView; import org.vaadin.touchkit.gwt.client.ui.VSwipeView.SwipeListener; import org.vaadin.touchkit.ui.SwipeView; import com.google.gwt.core.shared.GWT; import com.google.gwt.event.dom.client.ScrollEvent; import com.google.gwt.event.dom.client.ScrollHandler; import com.google.gwt.user.client.ui.Widget; import com.vaadin.client.ComponentConnector; import com.vaadin.client.ConnectorHierarchyChangeEvent; import com.vaadin.client.communication.RpcProxy; import com.vaadin.client.communication.StateChangeEvent; import com.vaadin.client.ui.AbstractSingleComponentContainerConnector; import com.vaadin.shared.ui.Connect; @Connect(SwipeView.class) public class SwipeViewConnector extends AbstractSingleComponentContainerConnector implements ScrollHandler, SwipeListener { SwipeViewRpc rpc = RpcProxy.create(SwipeViewRpc.class, this); public SwipeViewConnector() { getWidget().addHandler(this, ScrollEvent.getType()); getWidget().setSwipeListener(this); } @Override public SwipeViewSharedState getState() { return (SwipeViewSharedState) super.getState(); } @Override public void onStateChanged(StateChangeEvent stateChangeEvent) { super.onStateChanged(stateChangeEvent); getWidget().setScrollTop(getState().scrollTop); } @Override public VSwipeView getWidget() { return (VSwipeView) super.getWidget(); } @Override protected Widget createWidget() { return GWT.create(VSwipeView.class); } @Override public void onScroll(ScrollEvent event) { rpc.setScrollTop(getWidget().getScrollTop()); } @Override public void onSwipeBack() { rpc.navigateBackward(); } @Override public void onSwipeForward() { rpc.navigateForward(); } @Override public void updateCaption(ComponentConnector connector) { // NOP, not supported } @Override public void onConnectorHierarchyChange( ConnectorHierarchyChangeEvent connectorHierarchyChangeEvent) { // We always have 1 child, unless the child is hidden getWidget().setWidget(getContentWidget()); } }