Example usage for com.google.gwt.event.dom.client TouchMoveHandler TouchMoveHandler

List of usage examples for com.google.gwt.event.dom.client TouchMoveHandler TouchMoveHandler

Introduction

In this page you can find the example usage for com.google.gwt.event.dom.client TouchMoveHandler TouchMoveHandler.

Prototype

TouchMoveHandler

Source Link

Usage

From source file:anagram.client.GwtCanvasDemo.java

License:Apache License

void initHandlers() {
    canvas.addMouseMoveHandler(new MouseMoveHandler() {
        public void onMouseMove(MouseMoveEvent event) {
            mouseX = event.getRelativeX(canvas.getElement());
            mouseY = event.getRelativeY(canvas.getElement());
        }/*from   w  ww. ja v  a 2  s  .  c  om*/
    });

    canvas.addMouseOutHandler(new MouseOutHandler() {
        public void onMouseOut(MouseOutEvent event) {
            mouseX = -200;
            mouseY = -200;
        }
    });

    canvas.addTouchMoveHandler(new TouchMoveHandler() {
        public void onTouchMove(TouchMoveEvent event) {
            event.preventDefault();
            if (event.getTouches().length() > 0) {
                Touch touch = event.getTouches().get(0);
                mouseX = touch.getRelativeX(canvas.getElement());
                mouseY = touch.getRelativeY(canvas.getElement());
            }
            event.preventDefault();
        }
    });

    canvas.addTouchEndHandler(new TouchEndHandler() {
        public void onTouchEnd(TouchEndEvent event) {
            event.preventDefault();
            mouseX = -200;
            mouseY = -200;
        }
    });

    canvas.addGestureStartHandler(new GestureStartHandler() {
        public void onGestureStart(GestureStartEvent event) {
            event.preventDefault();
        }
    });
}

From source file:ch.unifr.pai.ice.client.tracking.LineTracking1user.java

License:Apache License

public LineTracking1user(boolean doLog, String image) {
    super();//from ww  w.j  ava 2 s.  c  om

    this.doLog = doLog;
    this.lineImage = new Image(GWT.getModuleBaseURL() + image);
    context = canvas.getContext2d();

    canvas.addMouseDownHandler(new MouseDownHandler() {

        @Override
        public void onMouseDown(MouseDownEvent event) {
            event.preventDefault();
        }
    });
    this.add(lineImage);
    this.add(canvas);
    this.setWidgetPosition(canvas, 0, 0);
    this.setWidgetPosition(lineImage, lineOffset, lineOffset);
    // this.add(posLabel);
    this.add(startBt);
    this.add(stopBt);
    cursorPosVector = new Vector<CursorXY>();

    canvas.addMouseMoveHandler(new MouseMoveHandler() {

        @Override
        public void onMouseMove(MouseMoveEvent event) {

            if (tracking) {
                if (x != -1 && y != -1) {
                    context.beginPath();
                    context.moveTo(x, y);
                    context.lineTo(event.getRelativeX(canvas.getCanvasElement()),
                            event.getRelativeY(canvas.getCanvasElement()));
                    context.stroke();
                }
                x = event.getRelativeX(canvas.getCanvasElement());
                y = event.getRelativeY(canvas.getCanvasElement());
                posLabel.setText(x + "," + y);

            }

        }
    });
    canvas.addTouchMoveHandler(new TouchMoveHandler() {

        @Override
        public void onTouchMove(TouchMoveEvent event) {

            if (tracking && event.getTouches().length() > 0) {
                event.preventDefault();
                if (x != -1 && y != -1) {
                    context.beginPath();
                    context.moveTo(x, y);
                    context.lineTo(event.getTouches().get(0).getRelativeX(canvas.getCanvasElement()),
                            event.getTouches().get(0).getRelativeY(canvas.getCanvasElement()));
                    context.stroke();
                }
                x = event.getTouches().get(0).getRelativeX(canvas.getCanvasElement());
                y = event.getTouches().get(0).getRelativeY(canvas.getCanvasElement());
                posLabel.setText(x + "," + y);

            }

        }
    });

    startBt.addMouseDownHandler(new MouseDownHandler() {

        @Override
        public void onMouseDown(MouseDownEvent event) {
            tracking = true;
            timer.scheduleRepeating(timerDelay);
            cursorPosVector.clear();
            startBt.removeFromParent();
        }
    });

    stopBt.addMouseDownHandler(new MouseDownHandler() {

        @Override
        public void onMouseDown(MouseDownEvent event) {
            log();
            tracking = false;
            stopBt.removeFromParent();
            timer.cancel();
        }
    });

}

From source file:com.ait.lienzo.client.widget.LienzoHandlerManager.java

License:Open Source License

private final void addHandlers() {
    m_lienzo.addClickHandler(new ClickHandler() {
        @Override//  ww  w . j av  a 2  s.c  om
        public void onClick(final ClickEvent event) {
            event.preventDefault();

            onNodeMouseClick(new NodeMouseClickEvent(event));
        }
    });
    m_lienzo.addDoubleClickHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(final DoubleClickEvent event) {
            event.preventDefault();

            onNodeMouseDoubleClick(new NodeMouseDoubleClickEvent(event));
        }
    });
    m_lienzo.addMouseMoveHandler(new MouseMoveHandler() {
        @Override
        public void onMouseMove(final MouseMoveEvent event) {
            event.preventDefault();

            if ((m_dragging) && (m_dragging_using_touches)) {
                return; // Ignore weird Mouse Move (0,0) in the middle of a Touch Drag on iOS/Safari
            }
            final NodeMouseMoveEvent nevent = new NodeMouseMoveEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseMove(nevent);
        }
    });
    m_lienzo.addMouseUpHandler(new MouseUpHandler() {
        @Override
        public void onMouseUp(final MouseUpEvent event) {
            final NodeMouseUpEvent nevent = new NodeMouseUpEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseUp(nevent);
        }
    });
    m_lienzo.addMouseDownHandler(new MouseDownHandler() {
        @Override
        public void onMouseDown(final MouseDownEvent event) {
            event.preventDefault();

            final NodeMouseDownEvent nevent = new NodeMouseDownEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseDown(nevent);
        }
    });
    m_lienzo.addMouseOutHandler(new MouseOutHandler() {
        @Override
        public void onMouseOut(final MouseOutEvent event) {
            final NodeMouseOutEvent nevent = new NodeMouseOutEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseOut(nevent);
        }
    });
    m_lienzo.addMouseOverHandler(new MouseOverHandler() {
        @Override
        public void onMouseOver(final MouseOverEvent event) {
            final NodeMouseOverEvent nevent = new NodeMouseOverEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseOver(nevent);
        }
    });
    m_lienzo.addMouseWheelHandler(new MouseWheelHandler() {
        @Override
        public void onMouseWheel(final MouseWheelEvent event) {
            final NodeMouseWheelEvent nevent = new NodeMouseWheelEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                event.stopPropagation();
            } else {
                fireEvent(nevent);
            }
        }
    });
    m_lienzo.addTouchCancelHandler(new TouchCancelHandler() {
        @Override
        public void onTouchCancel(final TouchCancelEvent event) {
            event.preventDefault();

            final NodeTouchCancelEvent nevent = new NodeTouchCancelEvent(event, getTouches(event));

            if (m_mediators.handleEvent(event)) {
                return;
            }
            onNodeMouseOut(nevent);
        }
    });
    m_lienzo.addTouchEndHandler(new TouchEndHandler() {
        @Override
        public void onTouchEnd(final TouchEndEvent event) {
            event.preventDefault();

            final NodeTouchEndEvent nevent = new NodeTouchEndEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseUp(nevent);
        }
    });
    m_lienzo.addTouchMoveHandler(new TouchMoveHandler() {
        @Override
        public void onTouchMove(final TouchMoveEvent event) {
            event.preventDefault();

            m_touches = getTouches(event);

            final NodeTouchMoveEvent nevent = new NodeTouchMoveEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseMove(nevent);
        }
    });
    m_lienzo.addTouchStartHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(final TouchStartEvent event) {
            event.preventDefault();

            m_touches = getTouches(event);

            final NodeTouchStartEvent nevent = new NodeTouchStartEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseDown(nevent);
        }
    });
    m_lienzo.addGestureStartHandler(new GestureStartHandler() {
        @Override
        public void onGestureStart(final GestureStartEvent event) {
            event.preventDefault();

            final NodeGestureStartEvent nevent = new NodeGestureStartEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            fireEvent(nevent);
        }
    });
    m_lienzo.addGestureEndHandler(new GestureEndHandler() {
        @Override
        public void onGestureEnd(final GestureEndEvent event) {
            event.preventDefault();

            final NodeGestureEndEvent nevent = new NodeGestureEndEvent(event.getScale(), event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            fireEvent(nevent);
        }
    });
    m_lienzo.addGestureChangeHandler(new GestureChangeHandler() {
        @Override
        public void onGestureChange(final GestureChangeEvent event) {
            event.preventDefault();

            final NodeGestureChangeEvent nevent = new NodeGestureChangeEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            fireEvent(nevent);
        }
    });
}

From source file:com.ait.lienzo.client.widget.panel.impl.LienzoPanelHandlerManager.java

License:Open Source License

private final void addHandlers() {
    handlerRegistrationManager.register(m_lienzo.addClickHandler(new ClickHandler() {
        @Override//from   w  w w.  j  ava 2 s  .c o m
        public void onClick(final ClickEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseClickEventHandle().onMouseEventBefore(event)) {
                m_dragging_mouse_pressed = false; // could have been set previously by a mousedown, it will need cleaning up
                m_dragging_ignore_clicks = false;
                m_dragging = false;
                return;
            }

            onNodeMouseClick(new NodeMouseClickEvent(event));
            checkPressedMouseButton(event.getNativeButton());

            m_viewport.getOnEventHandlers().getOnMouseClickEventHandle().onMouseEventAfter(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addDoubleClickHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(final DoubleClickEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseDoubleClickEventHandle().onMouseEventBefore(event)) {
                return;
            }

            onNodeMouseDoubleClick(new NodeMouseDoubleClickEvent(event));
            checkPressedMouseButton(event.getNativeButton());

            event.preventDefault();

            m_viewport.getOnEventHandlers().getOnMouseDoubleClickEventHandle().onMouseEventBefore(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseMoveHandler(new MouseMoveHandler() {
        @Override
        public void onMouseMove(final MouseMoveEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseMoveEventHandle().onMouseEventBefore(event)) {
                return;
            }

            if ((m_dragging) && (m_dragging_using_touches)) {
                event.preventDefault();

                return;// Ignore weird Mouse Move (0,0) in the middle of a Touch Drag on iOS/Safari
            }
            final NodeMouseMoveEvent nevent = new NodeMouseMoveEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            checkPressedMouseButton(event.getNativeButton());

            onNodeMouseMove(nevent);

            event.preventDefault();

            m_viewport.getOnEventHandlers().getOnMouseMoveEventHandle().onMouseEventBefore(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseUpHandler(new MouseUpHandler() {
        @Override
        public void onMouseUp(final MouseUpEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseUpEventHandle().onMouseEventBefore(event)) {
                m_dragging_mouse_pressed = false; // could have been set previously by a mousedown, it will need cleaning up
                m_dragging_ignore_clicks = false;
                m_dragging = false;
                return;
            }

            final NodeMouseUpEvent nevent = new NodeMouseUpEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }

            checkPressedMouseButton(event.getNativeButton());

            onNodeMouseUp(nevent);

            m_viewport.getOnEventHandlers().getOnMouseUpEventHandle().onMouseEventBefore(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseDownHandler(new MouseDownHandler() {
        @Override
        public void onMouseDown(final MouseDownEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseDownEventHandle().onMouseEventBefore(event)) {
                return;
            }

            final NodeMouseDownEvent nevent = new NodeMouseDownEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }

            checkPressedMouseButton(event.getNativeButton());

            onNodeMouseDown(nevent);

            m_viewport.getOnEventHandlers().getOnMouseDownEventHandle().onMouseEventBefore(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseOutHandler(new MouseOutHandler() {
        @Override
        public void onMouseOut(final MouseOutEvent event) {
            final NodeMouseOutEvent nevent = new NodeMouseOutEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseOut(nevent);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseOverHandler(new MouseOverHandler() {
        @Override
        public void onMouseOver(final MouseOverEvent event) {
            final NodeMouseOverEvent nevent = new NodeMouseOverEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseOver(nevent);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseWheelHandler(new MouseWheelHandler() {
        @Override
        public void onMouseWheel(final MouseWheelEvent event) {
            final NodeMouseWheelEvent nevent = new NodeMouseWheelEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                event.stopPropagation();
            } else {
                fireEvent(nevent);
            }
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addTouchCancelHandler(new TouchCancelHandler() {
        @Override
        public void onTouchCancel(final TouchCancelEvent event) {
            final NodeTouchCancelEvent nevent = new NodeTouchCancelEvent(event, getTouches(event));

            if (m_mediators.handleEvent(event)) {
                event.preventDefault();

                return;
            }
            onNodeMouseOut(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addTouchEndHandler(new TouchEndHandler() {
        @Override
        public void onTouchEnd(final TouchEndEvent event) {
            final NodeTouchEndEvent nevent = new NodeTouchEndEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            onNodeMouseUp(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addTouchMoveHandler(new TouchMoveHandler() {
        @Override
        public void onTouchMove(final TouchMoveEvent event) {
            m_touches = getTouches(event);

            final NodeTouchMoveEvent nevent = new NodeTouchMoveEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            onNodeMouseMove(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addTouchStartHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(final TouchStartEvent event) {
            m_touches = getTouches(event);

            final NodeTouchStartEvent nevent = new NodeTouchStartEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            onNodeMouseDown(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addGestureStartHandler(new GestureStartHandler() {
        @Override
        public void onGestureStart(final GestureStartEvent event) {
            final NodeGestureStartEvent nevent = new NodeGestureStartEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            fireEvent(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addGestureEndHandler(new GestureEndHandler() {
        @Override
        public void onGestureEnd(final GestureEndEvent event) {
            final NodeGestureEndEvent nevent = new NodeGestureEndEvent(event.getScale(), event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            fireEvent(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addGestureChangeHandler(new GestureChangeHandler() {
        @Override
        public void onGestureChange(final GestureChangeEvent event) {
            final NodeGestureChangeEvent nevent = new NodeGestureChangeEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            fireEvent(nevent);

            event.preventDefault();
        }
    }));
}

From source file:com.emitrom.lienzo.client.widget.LienzoHandlerManager.java

License:Open Source License

private final void addHandlers() {
    m_lienzo.addClickHandler(new ClickHandler() {
        @Override//from w  w w. j av a  2  s. co m
        public void onClick(ClickEvent event) {
            event.preventDefault();

            onNodeMouseClick(new NodeMouseClickEvent(event));
        }
    });
    m_lienzo.addDoubleClickHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(DoubleClickEvent event) {
            onNodeMouseDoubleClick(new NodeMouseDoubleClickEvent(event));
        }
    });
    m_lienzo.addMouseMoveHandler(new MouseMoveHandler() {
        @Override
        public void onMouseMove(MouseMoveEvent event) {
            event.preventDefault();

            NodeMouseMoveEvent nodeEvent = new NodeMouseMoveEvent(event);

            if ((m_dragging) && (m_dragging_using_touches)) {
                return; // Ignore weird Mouse Move (0,0) in the middle of a Touch Drag on iOS/Safari
            }
            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseMove(nodeEvent);
        }
    });
    m_lienzo.addMouseUpHandler(new MouseUpHandler() {
        @Override
        public void onMouseUp(MouseUpEvent event) {
            NodeMouseUpEvent nodeEvent = new NodeMouseUpEvent(event);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseUp(nodeEvent);
        }
    });
    m_lienzo.addMouseDownHandler(new MouseDownHandler() {
        @Override
        public void onMouseDown(MouseDownEvent event) {
            event.preventDefault();

            NodeMouseDownEvent nodeEvent = new NodeMouseDownEvent(event);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseDown(nodeEvent);
        }
    });
    m_lienzo.addMouseOutHandler(new MouseOutHandler() {
        @Override
        public void onMouseOut(MouseOutEvent event) {
            NodeMouseOutEvent nodeEvent = new NodeMouseOutEvent(event);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseOut(nodeEvent);
        }
    });
    m_lienzo.addMouseOverHandler(new MouseOverHandler() {
        @Override
        public void onMouseOver(MouseOverEvent event) {
            NodeMouseOverEvent nodeEvent = new NodeMouseOverEvent(event);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseOver(nodeEvent);
        }
    });
    m_lienzo.addMouseWheelHandler(new MouseWheelHandler() {
        @Override
        public void onMouseWheel(MouseWheelEvent event) {
            NodeMouseWheelEvent nodeEvent = new NodeMouseWheelEvent(event);

            if (false == m_mediators.handleEvent(nodeEvent)) {
                fireEvent(nodeEvent);
            } else {
                event.preventDefault();

                event.stopPropagation();
            }
        }
    });
    m_lienzo.addTouchCancelHandler(new TouchCancelHandler() {
        @Override
        public void onTouchCancel(TouchCancelEvent event) {
            event.preventDefault();

            NodeTouchCancelEvent nodeEvent = new NodeTouchCancelEvent(getTouches(event));

            if (m_mediators.handleEvent(event)) {
                return;
            }
            onNodeMouseOut(nodeEvent);
        }
    });
    m_lienzo.addTouchEndHandler(new TouchEndHandler() {
        @Override
        public void onTouchEnd(TouchEndEvent event) {
            event.preventDefault();

            NodeTouchEndEvent nodeEvent = new NodeTouchEndEvent(m_touches);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseUp(nodeEvent);
        }
    });
    m_lienzo.addTouchMoveHandler(new TouchMoveHandler() {
        @Override
        public void onTouchMove(TouchMoveEvent event) {
            event.preventDefault();

            m_touches = getTouches(event);

            NodeTouchMoveEvent nodeEvent = new NodeTouchMoveEvent(m_touches);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseMove(nodeEvent);
        }
    });
    m_lienzo.addTouchStartHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(TouchStartEvent event) {
            event.preventDefault();

            m_touches = getTouches(event);

            NodeTouchStartEvent nodeEvent = new NodeTouchStartEvent(m_touches);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseDown(nodeEvent);
        }
    });
    m_lienzo.addGestureStartHandler(new GestureStartHandler() {
        @Override
        public void onGestureStart(GestureStartEvent event) {
            event.preventDefault();

            NodeGestureStartEvent nodeEvent = new NodeGestureStartEvent(event.getScale(), event.getRotation());

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            fireEvent(nodeEvent);
        }
    });
    m_lienzo.addGestureEndHandler(new GestureEndHandler() {
        @Override
        public void onGestureEnd(GestureEndEvent event) {
            event.preventDefault();

            NodeGestureEndEvent nodeEvent = new NodeGestureEndEvent(event.getScale(), event.getRotation());

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            fireEvent(nodeEvent);
        }
    });
    m_lienzo.addGestureChangeHandler(new GestureChangeHandler() {
        @Override
        public void onGestureChange(GestureChangeEvent event) {
            event.preventDefault();

            NodeGestureChangeEvent nodeEvent = new NodeGestureChangeEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            fireEvent(nodeEvent);
        }
    });
}

From source file:com.vaadin.client.ui.AbstractComponentConnector.java

License:Apache License

/**
 * The new default behaviour is for long taps to fire a contextclick event
 * if there's a contextclick listener attached to the component.
 * //from  w w  w.j  a va2  s  . c  o m
 * If you do not want this in your component, override this with a blank
 * method to get rid of said behaviour.
 * 
 * Some Vaadin Components already handle the long tap as a context menu.
 * This method is unnecessary for those.
 * 
 * @since 7.6
 */
protected void registerTouchHandlers() {
    touchStartHandler = getWidget().addDomHandler(new TouchStartHandler() {

        @Override
        public void onTouchStart(final TouchStartEvent event) {
            if (longTouchTimer != null && longTouchTimer.isRunning()) {
                return;
            }

            // Prevent selection for the element while pending long tap.
            WidgetUtil.setTextSelectionEnabled(getWidget().getElement(), false);

            if (BrowserInfo.get().isAndroid()) {
                // Android fires ContextMenu events automatically.
                return;
            }

            /*
             * we need to build mouseEventDetails eagerly - the event won't
             * be guaranteed to be around when the timer executes. At least
             * this was the case with iOS devices.
             */

            final MouseEventDetails mouseEventDetails = MouseEventDetailsBuilder
                    .buildMouseEventDetails(event.getNativeEvent(), getWidget().getElement());

            final EventTarget eventTarget = event.getNativeEvent().getEventTarget();

            longTouchTimer = new Timer() {

                @Override
                public void run() {
                    cancelParentTouchTimers(); // we're handling this event,
                                               // our parent components
                                               // don't need to bother with
                                               // it anymore.
                                               // The default context click
                                               // implementation only provides the
                                               // mouse coordinates relative to root
                                               // element of widget.

                    sendContextClickEvent(mouseEventDetails, eventTarget);
                    preventNextTouchEnd = true;
                }
            };

            Touch touch = event.getChangedTouches().get(0);
            touchStartX = touch.getClientX();
            touchStartY = touch.getClientY();

            longTouchTimer.schedule(TOUCH_CONTEXT_MENU_TIMEOUT);

        }
    }, TouchStartEvent.getType());

    touchMoveHandler = getWidget().addDomHandler(new TouchMoveHandler() {

        @Override
        public void onTouchMove(TouchMoveEvent event) {
            if (isSignificantMove(event)) {
                // Moved finger before the context menu timer
                // expired, so let the browser handle the event.
                cancelTouchTimer();
            }

        }

        // mostly copy-pasted code from VScrollTable
        // TODO refactor main logic to a common class
        private boolean isSignificantMove(TouchMoveEvent event) {
            if (longTouchTimer == null) {
                // no touch start
                return false;
            }

            // Calculate the distance between touch start and the current
            // touch
            // position
            Touch touch = event.getChangedTouches().get(0);
            int deltaX = touch.getClientX() - touchStartX;
            int deltaY = touch.getClientY() - touchStartY;
            int delta = deltaX * deltaX + deltaY * deltaY;

            // Compare to the square of the significant move threshold to
            // remove the need for a square root
            if (delta > SIGNIFICANT_MOVE_THRESHOLD * SIGNIFICANT_MOVE_THRESHOLD) {
                return true;
            }
            return false;
        }
    }, TouchMoveEvent.getType());

    touchEndHandler = getWidget().addDomHandler(new TouchEndHandler() {

        @Override
        public void onTouchEnd(TouchEndEvent event) {
            // cancel the timer so the event doesn't fire
            cancelTouchTimer();

            if (preventNextTouchEnd) {
                event.preventDefault();
                preventNextTouchEnd = false;
            }
        }
    }, TouchEndEvent.getType());
}

From source file:com.vaadin.client.ui.VAbstractSplitPanel.java

License:Apache License

public VAbstractSplitPanel(Orientation orientation) {
    setElement(DOM.createDiv());//from w  ww .ja  v  a 2 s. co m
    switch (orientation) {
    case HORIZONTAL:
        setStyleName(CLASSNAME + "-horizontal");
        break;
    case VERTICAL:
    default:
        setStyleName(CLASSNAME + "-vertical");
        break;
    }
    // size below will be overridden in update from uidl, initial size
    // needed to keep IE alive
    setWidth(MIN_SIZE + "px");
    setHeight(MIN_SIZE + "px");
    constructDom();
    setOrientation(orientation);
    sinkEvents(Event.MOUSEEVENTS);

    makeScrollable();

    addDomHandler(new TouchCancelHandler() {
        @Override
        public void onTouchCancel(TouchCancelEvent event) {
            // TODO When does this actually happen??
            VConsole.log("TOUCH CANCEL");
        }
    }, TouchCancelEvent.getType());
    addDomHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(TouchStartEvent event) {
            Node target = event.getTouches().get(0).getTarget().cast();
            if (splitter.isOrHasChild(target)) {
                onMouseDown(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchStartEvent.getType());
    addDomHandler(new TouchMoveHandler() {
        @Override
        public void onTouchMove(TouchMoveEvent event) {
            if (resizing) {
                onMouseMove(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchMoveEvent.getType());
    addDomHandler(new TouchEndHandler() {
        @Override
        public void onTouchEnd(TouchEndEvent event) {
            if (resizing) {
                onMouseUp(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchEndEvent.getType());

}

From source file:com.vaadin.terminal.gwt.client.ui.VSplitPanel.java

License:Open Source License

public VSplitPanel(int orientation) {
    setElement(DOM.createDiv());/*from w ww.  j  a  va2 s  .  com*/
    switch (orientation) {
    case ORIENTATION_HORIZONTAL:
        setStyleName(CLASSNAME + "-horizontal");
        break;
    case ORIENTATION_VERTICAL:
    default:
        setStyleName(CLASSNAME + "-vertical");
        break;
    }
    // size below will be overridden in update from uidl, initial size
    // needed to keep IE alive
    setWidth(MIN_SIZE + "px");
    setHeight(MIN_SIZE + "px");
    constructDom();
    setOrientation(orientation);
    sinkEvents(Event.MOUSEEVENTS);

    addDomHandler(new TouchCancelHandler() {
        public void onTouchCancel(TouchCancelEvent event) {
            // TODO When does this actually happen??
            VConsole.log("TOUCH CANCEL");
        }
    }, TouchCancelEvent.getType());
    addDomHandler(new TouchStartHandler() {
        public void onTouchStart(TouchStartEvent event) {
            Node target = event.getTouches().get(0).getTarget().cast();
            if (splitter.isOrHasChild(target)) {
                onMouseDown(Event.as(event.getNativeEvent()));
            } else {
                getTouchScrollDelegate().onTouchStart(event);
            }
        }

    }, TouchStartEvent.getType());
    addDomHandler(new TouchMoveHandler() {
        public void onTouchMove(TouchMoveEvent event) {
            if (resizing) {
                onMouseMove(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchMoveEvent.getType());
    addDomHandler(new TouchEndHandler() {
        public void onTouchEnd(TouchEndEvent event) {
            if (resizing) {
                onMouseUp(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchEndEvent.getType());

}

From source file:edu.caltech.ipac.firefly.ui.PopupPane.java

private PopupPanel createPopup(boolean modal, boolean autoHide) {

    PopupPanel pp = new PopupPanel(autoHide, modal);

    pp.addDomHandler(new MouseMoveHandler() {
        public void onMouseMove(MouseMoveEvent ev) {
            setCursorShape(ev);//from  w w  w  .ja  v a 2s  .  com
        }
    }, MouseMoveEvent.getType());

    pp.addDomHandler(new MouseDownHandler() {
        public void onMouseDown(MouseDownEvent ev) {
            humanStart(ev);
        }
    }, MouseDownEvent.getType());

    pp.addDomHandler(new MouseUpHandler() {
        public void onMouseUp(MouseUpEvent ev) {
            humanStop(ev);
        }
    }, MouseUpEvent.getType());

    pp.addDomHandler(new MouseMoveHandler() {
        public void onMouseMove(MouseMoveEvent ev) {
            humanMove(ev);
        }
    }, MouseMoveEvent.getType());

    pp.addDomHandler(new TouchStartHandler() {
        public void onTouchStart(TouchStartEvent ev) {
            if (ev.getTargetTouches().length() == 1)
                humanStart(ev);
        }
    }, TouchStartEvent.getType());

    pp.addDomHandler(new TouchMoveHandler() {
        public void onTouchMove(TouchMoveEvent ev) {
            humanMove(ev);
        }
    }, TouchMoveEvent.getType());

    pp.addDomHandler(new TouchEndHandler() {
        public void onTouchEnd(TouchEndEvent ev) {
            humanStop(ev);
        }
    }, TouchEndEvent.getType());

    GwtUtil.setStyle(pp, "clip", "auto");
    return pp;
}

From source file:edu.caltech.ipac.firefly.visualize.ThumbnailView.java

public ThumbnailView(WebPlotView pv, int size) {

    _pv = pv;/*from   w w w .j a va2 s .c  o  m*/
    maxSize = size;
    pv.addListener(Name.PRIMARY_PLOT_CHANGE, new WebEventListener() {
        public void eventNotify(WebEvent ev) {
            if (_parentShowing)
                updateThumbnail();
            else
                _needsUpdate = true;
        }
    });
    pv.addListener(Name.REPLOT, new WebEventListener() {
        public void eventNotify(WebEvent ev) {
            ReplotDetails details = (ReplotDetails) ev.getData();
            if (details.getReplotReason() == ReplotDetails.Reason.IMAGE_RELOADED) {
                if (_parentShowing)
                    updateThumbnail();
                else
                    _needsUpdate = true;
            }
        }
    });

    pv.addScrollHandler(new ScrollHandler() {
        public void onScroll(ScrollEvent event) {
            if (_parentShowing)
                updateThumbnail();
            else
                _needsUpdate = true;
        }
    });

    Widget drawingWidget = _drawable.getDrawingPanelContainer();

    drawingWidget.addDomHandler(new MouseDownHandler() {
        public void onMouseDown(MouseDownEvent ev) {
            beginMove();
        }
    }, MouseDownEvent.getType());

    drawingWidget.addDomHandler(new MouseMoveHandler() {
        public void onMouseMove(MouseMoveEvent ev) {
            move(ev.getX(), ev.getY());
        }
    }, MouseMoveEvent.getType());

    drawingWidget.addDomHandler(new MouseUpHandler() {
        public void onMouseUp(MouseUpEvent ev) {
            endMove();
        }
    }, MouseUpEvent.getType());

    drawingWidget.addDomHandler(new TouchStartHandler() {
        public void onTouchStart(TouchStartEvent ev) {
            beginMove();
        }
    }, TouchStartEvent.getType());

    drawingWidget.addDomHandler(new TouchMoveHandler() {
        public void onTouchMove(TouchMoveEvent ev) {
            Touch t = ev.getTouches().get(0);
            int x = t.getClientX() - _panel.getAbsoluteLeft();
            int y = t.getClientY() - _panel.getAbsoluteTop();
            move(x, y);
        }
    }, TouchMoveEvent.getType());

    drawingWidget.addDomHandler(new TouchEndHandler() {
        public void onTouchEnd(TouchEndEvent ev) {
            endMove();
        }
    }, TouchEndEvent.getType());

    _panel.clear();
    tnWrapper.add(_thumbnailImage);
    _panel.add(tnWrapper);
    initWidget(_panel);
    _panel.add(drawingWidget, 0, 0);
    _drawable.setPixelSize(size, size);
}