Example usage for com.google.gwt.dom.client Touch getRelativeY

List of usage examples for com.google.gwt.dom.client Touch getRelativeY

Introduction

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

Prototype

public final int getRelativeY(Element target) 

Source Link

Document

Gets the touch y-position relative to a given element.

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  w  w .  j  av a  2s .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: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)));
        }/* w  ww .j  a v a  2s.  c o m*/
        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.badlogic.gdx.backends.gwt.GwtInput.java

License:Apache License

protected int getRelativeY(Touch touch, CanvasElement target) {
    float yScaleRatio = target.getHeight() * 1f / target.getClientHeight(); // Correct for canvas CSS scaling
    return Math.round(yScaleRatio * touch.getRelativeY(target));
}

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  w ww .  j  a  v a2s.  com*/
    } 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.imaginedreal.mgwt.trafficflow.client.activities.seattle.SeattleViewGwtImpl.java

License:Apache License

@Override
public void renderCameras(final List<CameraItem> cameraItems) {
    // canvas size in px
    final int width = 1121;
    final int height = 2585;

    // get the 2D rendering context
    context3 = cameraCanvas.getContext2d();

    // initialize the canvas
    cameraCanvas.setWidth(width + "px");
    cameraCanvas.setHeight(height + "px");
    cameraCanvas.setPixelSize(width, height);
    cameraCanvas.setCoordinateSpaceWidth(width);
    cameraCanvas.setCoordinateSpaceHeight(height);

    for (final CameraItem item : cameraItems) {
        final Image cameraImage = new Image(Resources.INSTANCE.camera());
        cameraImage.addLoadHandler(new LoadHandler() {

            @Override/*from w  ww .j  av  a2s . co m*/
            public void onLoad(LoadEvent event) {
                ImageElement imageElement = cameraImage.getElement().cast();
                context3.drawImage(imageElement, Double.parseDouble(item.getX()),
                        Double.parseDouble(item.getY()));
            }
        });

        cameraImage.setVisible(false);
        container.add(cameraImage);
    }

    cameraCanvas.addMouseDownHandler(new MouseDownHandler() {
        @Override
        public void onMouseDown(MouseDownEvent event) {
            mouseX = event.getRelativeX(cameraCanvas.getElement());
            mouseY = event.getRelativeY(cameraCanvas.getElement());
            for (CameraItem item : cameraItems) {
                if (((mouseX >= Double.parseDouble(item.getX())
                        && (mouseX <= (Double.parseDouble(item.getX()) + Double.parseDouble(item.getWidth()))))
                        && ((mouseY >= Double.parseDouble(item.getY()))
                                && (mouseY <= (Double.parseDouble(item.getY())
                                        + Double.parseDouble(item.getHeight())))))) {
                    if (presenter != null) {
                        presenter.onCameraImagePressed(item);
                    }
                }
            }
        }
    });

    cameraCanvas.addTouchStartHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(TouchStartEvent event) {
            event.preventDefault();
            if (event.getTouches().length() > 0) {
                Touch touch = event.getTouches().get(0);
                mouseX = touch.getRelativeX(cameraCanvas.getElement());
                mouseY = touch.getRelativeY(cameraCanvas.getElement());
            }
        }
    });

    touchDelegate.addTapHandler(new TapHandler() {
        @Override
        public void onTap(TapEvent event) {
            for (CameraItem item : cameraItems) {
                if (((mouseX >= Double.parseDouble(item.getX())
                        && (mouseX <= (Double.parseDouble(item.getX()) + Double.parseDouble(item.getWidth()))))
                        && ((mouseY >= Double.parseDouble(item.getY()))
                                && (mouseY <= (Double.parseDouble(item.getY())
                                        + Double.parseDouble(item.getHeight())))))) {
                    if (presenter != null) {
                        presenter.onCameraImagePressed(item);
                    }
                }
            }
        }
    });

    if (Boolean.valueOf(localStorage.getItem("KEY_SHOW_CAMERAS"))) {
        showCameras();
    } else {
        hideCameras();
    }
}

From source file:com.sencha.gxt.sample.graph.client.draw.GraphDnD.java

License:Apache License

protected void onTouchStart(TouchStartEvent event) {
    JsArray<Touch> touches = event.getChangedTouches();

    for (int i = 0; i < touches.length(); i++) {
        Touch t = touches.get(i);
        Point dragStartPosition = new Point(t.getRelativeX(graph.getElement()),
                t.getRelativeY(graph.getElement()));
        log.finer("Touch start: " + t.getIdentifier() + " @ " + dragStartPosition.toString());

        boolean start = onStartDrag("touch" + t.getIdentifier(), dragStartPosition.getX(),
                dragStartPosition.getY());

        if (!start) {
            //not actually dragging, give up on this one
            continue;
        }/* ww w.  ja va  2  s.c  o  m*/
        this.touchDragStartPositions.put(t.getIdentifier(), dragStartPosition);

        //watch for next move or up
        touchHandler.add();
        event.preventDefault();

        //TODO fire an event about starting dragging
    }
}

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

public void onTouchStart(TouchStartEvent ev) {
    //        if (ev.getTouches().length()>1) return;
    boolean exclusive = _exclusiveMouse.size() > 0;
    Touch t = ev.getTargetTouches().get(0);
    if (DEBUG) {//from w ww .  j  a  v  a2  s. c  o m
        GwtUtil.showDebugMsg("start, touches:" + ev.getTargetTouches().length() + " -  c: " + t.getClientX()
                + "," + t.getClientY() + " -  p: " + t.getPageX() + "," + t.getPageY() + " -  s: "
                + t.getScreenX() + "," + t.getScreenY() + " -  r: "
                + t.getRelativeX(_mouseMoveArea.getElement()) + ","
                + t.getRelativeY(_mouseMoveArea.getElement()) + " - pos: " + _mouseMoveArea.getAbsoluteLeft()
                + "," + _mouseMoveArea.getAbsoluteTop() + "," + " - scroll: "
                + _mouseMoveArea.getElement().getScrollLeft() + "," + _mouseMoveArea.getElement().getScrollTop()
                + "," + " - absScroll: " + _mouseMoveArea.getElement().getOwnerDocument().getScrollLeft() + ","
                + _mouseMoveArea.getElement().getOwnerDocument().getScrollTop());
    }
    ScreenPt spt = makeScreenPt(ev);
    if (!exclusive)
        addPreventEvent();
    _pv.enableFocus();
    if (!exclusive) {
        DOM.releaseCapture(_mouseMoveArea.getElement());
        DOM.setCapture(_mouseMoveArea.getElement());
    }
    boolean enabledOthers = true;
    if (exclusive) {
        WebPlotView.MouseInfo mi;
        int len = _exclusiveMouse.size();
        boolean enabledExclusive = true;
        for (int i = 1; ((len - i) >= 0 && enabledExclusive); i++) {
            mi = _exclusiveMouse.get(len - i);
            if (mi.isEnabled())
                mi.getHandler().onTouchStart(_pv, spt, ev);
            enabledExclusive = mi.getEnableAllExclusive();
            enabledOthers = mi.getEnableAllPersistent();
        }
    }
    if (enabledOthers) {
        for (WebPlotView.MouseInfo info : _persistentMouse) {
            if (info.isEnabled())
                info.getHandler().onTouchStart(_pv, spt, ev);
        }
    }
    _mouseDown = true;
    _pv.disableTextSelect(true);
    ev.preventDefault();
}

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

public void onTouchMove(TouchMoveEvent ev) {
    //        if (ev.getTouches().length()>1) return;
    Touch t = ev.getTargetTouches().get(0);
    if (DEBUG) {/*from   ww  w .  j a v  a  2  s . co  m*/
        GwtUtil.showDebugMsg("move, touches:" + ev.getTargetTouches().length() + " -  c: " + t.getClientX()
                + "," + t.getClientY() + " -  p: " + t.getPageX() + "," + t.getPageY() + " -  s: "
                + t.getScreenX() + "," + t.getScreenY() + " -  r: "
                + t.getRelativeX(_mouseMoveArea.getElement()) + ","
                + t.getRelativeY(_mouseMoveArea.getElement()) + " - pos: " + _mouseMoveArea.getAbsoluteLeft()
                + "," + _mouseMoveArea.getAbsoluteTop() + "," + " - scroll: "
                + _mouseMoveArea.getElement().getScrollLeft() + "," + _mouseMoveArea.getElement().getScrollTop()
                + "," + " - absScroll: " + _mouseMoveArea.getElement().getOwnerDocument().getScrollLeft() + ","
                + _mouseMoveArea.getElement().getOwnerDocument().getScrollTop());
    }
    ScreenPt spt = makeScreenPt(ev);
    boolean enabledOthers = true;
    if (_exclusiveMouse.size() > 0) {
        //              MouseInfo mi= _exclusiveMouse.peek();
        WebPlotView.MouseInfo mi;

        int len = _exclusiveMouse.size();
        boolean enabledExclusive = true;
        for (int i = 1; ((len - i) >= 0 && enabledExclusive); i++) {
            mi = _exclusiveMouse.get(len - i);
            if (mi.isEnabled())
                mi.getHandler().onTouchMove(_pv, spt, ev);
            enabledExclusive = mi.getEnableAllExclusive();
            enabledOthers = mi.getEnableAllPersistent();
        }

    }
    if (enabledOthers) {
        for (WebPlotView.MouseInfo info : _persistentMouse) {
            if (info.isEnabled())
                info.getHandler().onTouchMove(_pv, spt, ev);
        }
    }
    ev.preventDefault();
}

From source file:forplay.html.HtmlPointer.java

License:Apache License

HtmlPointer(final Element rootElement) {
    // capture mouse down on the root element, only.
    captureEvent(rootElement, "mousedown", new EventHandler() {
        @Override/*  ww  w.  j  a  v  a  2  s.  c  o m*/
        public void handleEvent(NativeEvent evt) {
            if (listener != null) {
                // Prevent the default so that the target element doesn't highlight.
                evt.preventDefault();

                inDragSequence = true;

                listener.onPointerStart(getRelativeX(evt, rootElement), getRelativeY(evt, rootElement));
            }
        }
    });

    // capture mouse up anywhere on the page as long as we are in a drag sequence
    capturePageEvent("mouseup", new EventHandler() {
        @Override
        public void handleEvent(NativeEvent evt) {
            if (listener != null && inDragSequence) {
                // Prevent the default so that the target element doesn't highlight.
                evt.preventDefault();

                inDragSequence = false;

                listener.onPointerEnd(getRelativeX(evt, rootElement), getRelativeY(evt, rootElement));
            }
        }
    });

    // capture mouse move anywhere on the page that fires only if we are in a drag sequence
    capturePageEvent("mousemove", new EventHandler() {
        @Override
        public void handleEvent(NativeEvent evt) {
            if (listener != null && inDragSequence) {
                evt.preventDefault();
                listener.onPointerDrag(getRelativeX(evt, rootElement), getRelativeY(evt, rootElement));
            }
        }
    });

    // capture touch start on the root element, only.
    captureEvent(rootElement, "touchstart", new EventHandler() {
        @Override
        public void handleEvent(NativeEvent evt) {
            if (listener != null) {
                // Prevent the default so that the target element doesn't highlight.
                evt.preventDefault();

                if (evt.getTouches().length() > 0) {
                    inDragSequence = true;
                    com.google.gwt.dom.client.Touch touch = evt.getTouches().get(0);
                    float x = touch.getRelativeX(rootElement);
                    float y = touch.getRelativeY(rootElement);
                    listener.onPointerStart(x, y);
                }
            }
        }
    });

    // capture touch end anywhere on the page as long as we are in a drag sequence
    capturePageEvent("touchend", new EventHandler() {
        @Override
        public void handleEvent(NativeEvent evt) {
            if (listener != null && inDragSequence) {
                // Prevent the default so that the target element doesn't highlight.
                evt.preventDefault();

                if (evt.getTouches().length() > 0) {
                    inDragSequence = false;
                    com.google.gwt.dom.client.Touch touch = evt.getTouches().get(0);
                    float x = touch.getRelativeX(rootElement);
                    float y = touch.getRelativeY(rootElement);
                    listener.onPointerEnd(x, y);
                }
            }
        }
    });

    // capture touch move anywhere on the page as long as we are in a drag sequence
    capturePageEvent("touchmove", new EventHandler() {
        @Override
        public void handleEvent(NativeEvent evt) {
            if (listener != null && inDragSequence) {
                // Prevent the default so that the target element doesn't highlight.
                evt.preventDefault();

                if (evt.getTouches().length() > 0) {
                    com.google.gwt.dom.client.Touch touch = evt.getTouches().get(0);
                    float x = touch.getRelativeX(rootElement);
                    float y = touch.getRelativeY(rootElement);
                    listener.onPointerDrag(x, y);
                }
            }
        }
    });
}

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);
        }/*from w  ww .  j  a v a  2  s.com*/
    }
}