Example usage for com.google.gwt.event.dom.client TouchEvent getTouches

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

Introduction

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

Prototype

public JsArray<Touch> getTouches() 

Source Link

Document

Get an array of all current Touch touches .

Usage

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

License:Open Source License

private final List<TouchPoint> getTouches(final TouchEvent<?> event) {
    final JsArray<Touch> jsarray = event.getTouches();

    final Element element = event.getRelativeElement();

    if ((null != jsarray) && (jsarray.length() > 0)) {
        final int size = jsarray.length();

        final ArrayList<TouchPoint> touches = new ArrayList<TouchPoint>(size);

        for (int i = 0; i < size; i++) {
            final Touch touch = jsarray.get(i);

            touches.add(new TouchPoint(touch.getRelativeX(element), touch.getRelativeY(element)));
        }//from  w w w.  j a  v  a2  s  . c  om
        return touches;
    } else {
        int x = event.getNativeEvent().getClientX() - element.getAbsoluteLeft() + element.getScrollLeft()
                + element.getOwnerDocument().getScrollLeft();

        int y = event.getNativeEvent().getClientY() - element.getAbsoluteTop() + element.getScrollTop()
                + element.getOwnerDocument().getScrollTop();

        return Arrays.asList(new TouchPoint(x, y));
    }
}

From source file:com.allen_sauer.gwt.dnd.client.MouseDragHandler.java

License:Apache License

private void onTouchEndorCancel(TouchEvent<?> event) {
    if (event.getTouches().length() != 0) {
        // ignore multiple fingers for now
        return;// w  w w.  j a v a 2s .  c  om
    }

    // in case mouse down occurred elsewhere
    if (mouseDownWidget == null) {
        return;
    }

    try {
        if (dragging == NOT_DRAGGING) {
            doSelectionToggle(event);
            return;
        }

        // Proceed with the drop
        try {
            drop(context.mouseX, context.mouseY);
            if (dragging != ACTIVELY_DRAGGING) {
                doSelectionToggle(event);
            }
        } finally {
            dragEndCleanup();
        }
    } finally {
        mouseDownWidget = null;
        dragEndCleanup();
    }
}

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

License:Open Source License

private final ArrayList<TouchPoint> getTouches(TouchEvent<?> event) {
    ArrayList<TouchPoint> touches = new ArrayList<TouchPoint>();

    JsArray<Touch> jsarray = event.getTouches();

    Element element = event.getRelativeElement();

    if ((null != jsarray) && (jsarray.length() > 0)) {
        int size = jsarray.length();

        for (int i = 0; i < size; i++) {
            Touch touch = jsarray.get(i);

            touches.add(new TouchPoint(touch.getRelativeX(element), touch.getRelativeY(element)));
        }//from  ww w.j  a va 2  s .c o m
    } else {
        int x = event.getNativeEvent().getClientX() - element.getAbsoluteLeft() + element.getScrollLeft()
                + element.getOwnerDocument().getScrollLeft();

        int y = event.getNativeEvent().getClientY() - element.getAbsoluteTop() + element.getScrollTop()
                + element.getOwnerDocument().getScrollTop();

        touches.add(new TouchPoint(x, y));
    }
    return touches;
}

From source file:com.vaadin.addon.timeline.gwt.client.VTimelineBrowser.java

/**
 * Called when a user is dragging the graph with n-amount of fingers
 * // w  w w.  j  a  v a  2 s.c  o  m
 * @param event
 */
private void touchMove(TouchEvent<?> event) {
    if (event.getTouches().length() > 1) {
        Touch t1 = event.getTouches().get(0);
        Touch t2 = event.getTouches().get(1);

        int left, right;
        if (t1.getClientX() > t2.getClientX()) {
            left = t2.getClientX() - getElement().getAbsoluteLeft();
            right = t1.getClientX() - getElement().getAbsoluteLeft();
        } else {
            left = t1.getClientX() - getElement().getAbsoluteLeft();
            right = t2.getClientX() - getElement().getAbsoluteLeft();
        }

        // Boundary checks
        if (left < 0) {
            left = 0;
        }
        if (right >= getCanvasWidth()) {
            right = getCanvasWidth();
        }

        scroller.setLeftPosition(left);
        scroller.setRightPosition(right);
        scroller.lockSize();
        refreshSelection();

    } else if (!multitouching) {
        moveDragging(event.getNativeEvent());
    }
}

From source file:com.vaadin.addon.timeline.gwt.client.VTimelineDisplay.java

/**
 * Triggered whenever a touch event occurs
 * //from   ww  w.  j a  v  a  2 s.co m
 * @param event
 *            The touch event
 */
private void touchMove(TouchEvent<?> event) {
    event.preventDefault();
    if (event.getTouches().length() > 1) {
        Touch t1 = event.getTouches().get(0);
        Touch t2 = event.getTouches().get(1);
        int fingerDistance = Math.abs(t1.getClientX() - t2.getClientX());

        if (t1.getClientX() < t2.getClientX()) {
            /*
             * t1 is left finger, t2 is right finger
             */
            lastMouseX = t1.getClientX() + fingerDistance / 2;
        } else {
            /*
             * t2 is left finger, t1 is right finger
             */
            lastMouseX = t2.getClientX() + fingerDistance / 2;
        }

        if (lastTouchFingerDistance > 0) {
            if (fingerDistance > lastTouchFingerDistance) {
                zoomOut(lastMouseX, Math.abs(lastTouchFingerDistance - fingerDistance) / 10);
            } else {
                zoomIn(lastMouseX, Math.abs(lastTouchFingerDistance - fingerDistance) / 10);
            }
        } else {
            lastTouchFingerDistance = fingerDistance;
        }
    } else if (!multitouching) {
        lastMouseX = Util.getTouchOrMouseClientX(event.getNativeEvent());
        moveDragging(event.getNativeEvent());
    }
}

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

private ScreenPt makeScreenPt(TouchEvent ev) {
    Touch t = (Touch) ev.getTouches().get(0);
    return new ScreenPt(_pv.getScrollX() + t.getClientX() - _mouseMoveArea.getAbsoluteLeft(),
            _pv.getScrollY() + t.getClientY() - _mouseMoveArea.getAbsoluteTop());
}

From source file:nl.mpi.tg.eg.experiment.client.listener.TouchInputCapture.java

License:Open Source License

private void onAnyTouch(TouchEvent event) {
    recordTouches(event.getTouches());
    bumpTouchRecords();/*ww  w.j av  a2 s.  com*/
    //        touchesToDebugLabel(event.getTouches());
}

From source file:nl.mpi.tg.eg.experiment.client.view.ColourPickerCanvasView.java

License:Open Source License

private void setColour(TouchEvent event, Canvas targetCanvas, VerticalPanel targetPanel) {
    if (event.getTouches().length() > 0) {
        final JsArray<Touch> touches = event.getTargetTouches();
        if (touches.length() > 0) {
            Touch touch = touches.get(0);
            setColour(touch.getRelativeX(targetCanvas.getElement()),
                    touch.getRelativeY(targetCanvas.getElement()), targetCanvas, targetPanel);
        }/*ww w  .ja  v  a 2s  .c o  m*/
    }
}

From source file:nl.mpi.tg.eg.experiment.client.view.ColourPickerCanvasView.java

License:Open Source License

private void setHue(TouchEvent event, Canvas targetCanvas) {
    if (event.getTouches().length() > 0) {
        final JsArray<Touch> touches = event.getTargetTouches();
        if (touches.length() > 0) {
            Touch touch = touches.get(0);
            setHue(touch.getRelativeX(targetCanvas.getElement()), touch.getRelativeY(targetCanvas.getElement()),
                    targetCanvas);//www.  ja va  2  s  . co m
        }
    }
}

From source file:org.geomajas.gwt2.client.controller.TouchNavigationController.java

License:Open Source License

/**
 * Method used to calculate exact middle point between multiple touches of a touch events.
 *
 * @param event a touch event//from   w  w  w  . j a  v a2  s .c  o  m
 * @return middle point
 */
protected Coordinate getMidPoint(TouchEvent<?> event) {
    Coordinate[] coords = new Coordinate[event.getTouches().length()];
    for (int i = 0; i < event.getTargetTouches().length(); i++) {
        coords[i] = new Coordinate(event.getTouches().get(i).getClientX(),
                event.getTouches().get(i).getClientY());
    }

    double x = 0;
    double y = 0;

    for (Coordinate coord : coords) {
        x += coord.getX();
        y += coord.getY();
    }

    x /= coords.length;
    y /= coords.length;

    return new Coordinate(x, y);
}