Example usage for com.google.gwt.user.client DOM setCapture

List of usage examples for com.google.gwt.user.client DOM setCapture

Introduction

In this page you can find the example usage for com.google.gwt.user.client DOM setCapture.

Prototype

public static void setCapture(Element elem) 

Source Link

Document

Sets mouse/touch/gesture capture on the given element.

Usage

From source file:asquare.gwt.tk.client.ui.behavior.DragController.java

License:Apache License

@Override
public void onMouseDown(MouseEvent e) {
    m_mouseDown = true;
    DOM.setCapture(getPluggedInWidget().getElement());
}

From source file:at.ac.fhcampuswien.atom.client.gui.attributes.components.slider.SliderBar.java

License:Apache License

/**
 * Listen for events that will move the knob.
 * // ww  w.  j av  a 2 s  .  co m
 * @param event the event that occurred
 */
@Override
public void onBrowserEvent(Event event) {
    super.onBrowserEvent(event);
    if (enabled) {
        switch (DOM.eventGetType(event)) {
        // Unhighlight and cancel keyboard events
        case Event.ONBLUR:
            keyTimer.cancel();
            if (slidingMouse) {
                DOM.releaseCapture(getElement());
                slidingMouse = false;
                slideKnob(event);
                stopSliding(true, true);
            } else if (slidingKeyboard) {
                slidingKeyboard = false;
                stopSliding(true, true);
            }
            unhighlight();
            break;

        // Highlight on focus
        case Event.ONFOCUS:
            highlight();
            break;

        // Mousewheel events
        case Event.ONMOUSEWHEEL:
            int velocityY = DOM.eventGetMouseWheelVelocityY(event);
            DOM.eventPreventDefault(event);
            if (velocityY > 0) {
                shiftRight(1);
            } else {
                shiftLeft(1);
            }
            break;

        // Shift left or right on key press
        case Event.ONKEYDOWN:
            if (!slidingKeyboard) {
                int multiplier = 1;
                if (DOM.eventGetCtrlKey(event)) {
                    multiplier = (int) (getTotalRange() / stepSize / 10);
                }

                switch (DOM.eventGetKeyCode(event)) {
                case KeyCodes.KEY_HOME:
                    DOM.eventPreventDefault(event);
                    setCurrentValue(minValue);
                    break;
                case KeyCodes.KEY_END:
                    DOM.eventPreventDefault(event);
                    setCurrentValue(maxValue);
                    break;
                case KeyCodes.KEY_LEFT:
                    DOM.eventPreventDefault(event);
                    slidingKeyboard = true;
                    startSliding(false, true);
                    shiftLeft(multiplier);
                    keyTimer.schedule(400, false, multiplier);
                    break;
                case KeyCodes.KEY_RIGHT:
                    DOM.eventPreventDefault(event);
                    slidingKeyboard = true;
                    startSliding(false, true);
                    shiftRight(multiplier);
                    keyTimer.schedule(400, true, multiplier);
                    break;
                case 32:
                    DOM.eventPreventDefault(event);
                    setCurrentValue(minValue + getTotalRange() / 2);
                    break;
                }
            }
            break;
        // Stop shifting on key up
        case Event.ONKEYUP:
            keyTimer.cancel();
            if (slidingKeyboard) {
                slidingKeyboard = false;
                stopSliding(true, true);
            }
            break;

        // Mouse Events
        case Event.ONMOUSEDOWN:
            setFocus(true);
            slidingMouse = true;
            DOM.setCapture(getElement());
            startSliding(true, true);
            DOM.eventPreventDefault(event);
            slideKnob(event);
            break;
        case Event.ONMOUSEUP:
            if (slidingMouse) {
                DOM.releaseCapture(getElement());
                slidingMouse = false;
                slideKnob(event);
                stopSliding(true, true);
            }
            break;
        case Event.ONMOUSEMOVE:
            if (slidingMouse) {
                slideKnob(event);
            }
            break;
        }
    }
}

From source file:cc.alcina.framework.gwt.client.widget.complex.SliderBar.java

License:Apache License

/**
 * Listen for events that will move the knob.
 *
 * @param event/*  w  w w  .  j av  a  2s. c o  m*/
 *            the event that occurred
 */
@Override
public void onBrowserEvent(Event event) {
    super.onBrowserEvent(event);
    if (enabled) {
        switch (DOM.eventGetType(event)) {
        // Unhighlight and cancel keyboard events
        case Event.ONBLUR:
            keyTimer.cancel();
            if (slidingMouse) {
                DOM.releaseCapture(getElement());
                slidingMouse = false;
                slideKnob(event);
                stopSliding(true, true);
            } else if (slidingKeyboard) {
                slidingKeyboard = false;
                stopSliding(true, true);
            }
            unhighlight();
            break;
        // Highlight on focus
        case Event.ONFOCUS:
            highlight();
            break;
        // Mousewheel events
        case Event.ONMOUSEWHEEL:
            int velocityY = DOM.eventGetMouseWheelVelocityY(event);
            DOM.eventPreventDefault(event);
            if (velocityY > 0) {
                shiftUp(1);
            } else {
                shiftDown(1);
            }
            break;
        // Shift left or right on key press
        case Event.ONKEYDOWN:
            if (!slidingKeyboard && isKeyEventsEnabled()) {
                int multiplier = 1;
                if (DOM.eventGetCtrlKey(event)) {
                    multiplier = (int) (getTotalRange() / stepSize / 10);
                }
                switch (DOM.eventGetKeyCode(event)) {
                case KeyCodes.KEY_HOME:
                    DOM.eventPreventDefault(event);
                    setCurrentValue(minValue);
                    break;
                case KeyCodes.KEY_END:
                    DOM.eventPreventDefault(event);
                    setCurrentValue(maxValue);
                    break;
                case KeyCodes.KEY_LEFT:
                    DOM.eventPreventDefault(event);
                    slidingKeyboard = true;
                    startSliding(false, true);
                    shiftDown(multiplier);
                    keyTimer.schedule(400, false, multiplier);
                    break;
                case KeyCodes.KEY_RIGHT:
                    DOM.eventPreventDefault(event);
                    slidingKeyboard = true;
                    startSliding(false, true);
                    shiftUp(multiplier);
                    keyTimer.schedule(400, true, multiplier);
                    break;
                case 32:
                    DOM.eventPreventDefault(event);
                    setCurrentValue(minValue + getTotalRange() / 2);
                    break;
                }
            }
            break;
        // Stop shifting on key up
        case Event.ONKEYUP:
            keyTimer.cancel();
            if (slidingKeyboard) {
                slidingKeyboard = false;
                stopSliding(true, true);
            }
            break;
        // Mouse Events
        case Event.ONMOUSEDOWN:
            setFocus(true);
            slidingMouse = true;
            DOM.setCapture(getElement());
            startSliding(true, true);
            DOM.eventPreventDefault(event);
            slideKnob(event);
            break;
        case Event.ONMOUSEUP:
            if (slidingMouse) {
                DOM.releaseCapture(getElement());
                slidingMouse = false;
                slideKnob(event);
                stopSliding(true, true);
            }
            break;
        case Event.ONMOUSEMOVE:
            if (slidingMouse) {
                slideKnob(event);
            }
            break;
        }
    }
}

From source file:com.alkacon.geranium.client.ui.AreaSelectPanel.java

License:Open Source License

/**
 * @see com.google.gwt.event.dom.client.MouseDownHandler#onMouseDown(com.google.gwt.event.dom.client.MouseDownEvent)
 *//*from  ww w  .j  a  v  a  2  s. co m*/
public void onMouseDown(MouseDownEvent event) {

    if (event.getNativeButton() != NativeEvent.BUTTON_LEFT) {
        // only act on left button down, ignore right click
        return;
    }
    cacheElementSize();
    switch (m_state) {
    case EMPTY:
        DOM.setCapture(getElement());
        m_state = State.SELECTING;
        m_firstX = event.getRelativeX(getElement());
        m_firstY = event.getRelativeY(getElement());
        m_currentSelection = new PositionBean();
        setSelectPosition(m_firstX, m_firstY, 0, 0);
        showSelect(true);

        break;
    case SELECTED:

        m_firstX = event.getRelativeX(getElement());
        m_firstY = event.getRelativeY(getElement());
        if (m_mouseOverArea == null) {
            // mouse not over selection, remove selection
            clearSelection();
            fireChangeEvent(true);
            break;
        }
        switch (m_mouseOverArea) {
        case BORDER_TOP:
            m_state = State.RESIZE_HEIGHT;

            // fixing opposite border
            m_firstX = m_currentSelection.getLeft();
            m_firstY = m_currentSelection.getTop() + m_currentSelection.getHeight();
            break;
        case BORDER_BOTTOM:
            m_state = State.RESIZE_HEIGHT;

            // fixing opposite border                        
            m_firstX = m_currentSelection.getLeft();
            m_firstY = m_currentSelection.getTop();
            break;
        case BORDER_LEFT:
            m_state = State.RESIZE_WIDTH;

            // fixing opposite border
            m_firstX = m_currentSelection.getLeft() + m_currentSelection.getWidth();
            m_firstY = m_currentSelection.getTop();
            break;
        case BORDER_RIGHT:
            m_state = State.RESIZE_WIDTH;

            // fixing opposite border
            m_firstX = m_currentSelection.getLeft();
            m_firstY = m_currentSelection.getTop();
            break;
        case CENTER:
            m_state = State.DRAGGING;
            m_moveOffsetX = m_firstX - m_currentSelection.getLeft();
            m_moveOffsetY = m_firstY - m_currentSelection.getTop();
            break;
        case CORNER_BOTTOM_LEFT:
            m_state = State.SELECTING;

            // fixing opposite corner
            m_firstX = m_currentSelection.getLeft() + m_currentSelection.getWidth();
            m_firstY = m_currentSelection.getTop();
            break;
        case CORNER_BOTTOM_RIGHT:
            m_state = State.SELECTING;
            // fixing opposite corner
            m_firstX = m_currentSelection.getLeft();
            m_firstY = m_currentSelection.getTop();
            break;
        case CORNER_TOP_LEFT:
            m_state = State.SELECTING;

            // fixing opposite corner
            m_firstX = m_currentSelection.getLeft() + m_currentSelection.getWidth();
            m_firstY = m_currentSelection.getTop() + m_currentSelection.getHeight();
            break;
        case CORNER_TOP_RIGHT:
            m_state = State.SELECTING;

            // fixing opposite corner
            m_firstX = m_currentSelection.getLeft();
            m_firstY = m_currentSelection.getTop() + m_currentSelection.getHeight();
            break;
        default:
        }
        DOM.setCapture(getElement());

        break;
    case DRAGGING:
    case RESIZE_HEIGHT:
    case RESIZE_WIDTH:
    case SELECTING:
    default:
        // Messed up selection state.
        // May happen if mouse-cursor was moved outside the window or frame while button pressed and button was released outside.
        if (m_currentSelection != null) {
            m_state = State.SELECTED;
            fireChangeEvent(true);
        } else {
            // this should never happen
            clearSelection();
        }
    }

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

From source file:com.alkacon.geranium.client.ui.Popup.java

License:Open Source License

/**
 * Called on mouse down in the caption area, begins the dragging loop by
 * turning on event capture./*from w w  w  . j a v a2 s.  c o m*/
 * 
 * @see DOM#setCapture
 * @see #continueDragging
 * @param event the mouse down event that triggered dragging
 */
protected void beginDragging(MouseDownEvent event) {

    m_dragging = true;
    m_windowWidth = Window.getClientWidth();
    m_clientLeft = Document.get().getBodyOffsetLeft();
    m_clientTop = Document.get().getBodyOffsetTop();
    DOM.setCapture(getElement());
    m_dragStartX = event.getX();
    m_dragStartY = event.getY();
    addStyleName(I_LayoutBundle.INSTANCE.dialogCss().dragging());
}

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

License:Apache License

private void startCapturing() {
    capturingWidget.setPixelSize(0, 0);
    RootPanel.get().add(capturingWidget, 0, 0);
    DOM.setCapture(capturingWidget.getElement());
}

From source file:com.appkit.interactions.client.dnd.MouseDragHandler.java

License:Apache License

private void startCapturing() {

    capturingWidget.setPixelSize(0, 0);
    RootPanel.get().add(capturingWidget, 0, 0);
    DOM.setCapture(capturingWidget.getElement());

}

From source file:com.apress.progwt.client.gui.timeline.TLORangeEdge.java

License:Apache License

public void onMouseDown(Widget sender, int x, int y) {
    resizing = true;
    DOM.setCapture(myLabel.getElement());
    resizeStartX = x;

}

From source file:com.bearsoft.gwt.ui.containers.DraggableDecoration.java

public DraggableDecoration(String... aClasses) {
    super();/*  ww w.j  a v  a2 s . c o m*/
    Element e = Document.get().createDivElement();
    setElement(e);
    for (String className : aClasses) {
        e.addClassName(className);
    }
    addDomHandler(new MouseDownHandler() {

        @Override
        public void onMouseDown(MouseDownEvent event) {
            DOM.setCapture(getElement());
            event.preventDefault();
            event.stopPropagation();
            mouseScreenX = event.getScreenX();
            mouseScreenY = event.getScreenY();
            event.stopPropagation();
            Widget target = getMovableTarget();
            assert target != null : "movable target widget must present to accept position changes";
            String tLeft = target.getElement().getStyle().getLeft();
            targetScrollLeft = Double.parseDouble(tLeft.substring(0, tLeft.length() - 2));
            String tTop = target.getElement().getStyle().getTop();
            targetScrollTop = Double.parseDouble(tTop.substring(0, tTop.length() - 2));

            target = getResizableTarget();
            assert target != null : "resizable target widget must present to accept size changes";
            String tWidth = target.getElement().getStyle().getWidth();
            targetWidth = Double.parseDouble(tWidth.substring(0, tWidth.length() - 2));
            String tHeight = target.getElement().getStyle().getHeight();
            targetHeight = Double.parseDouble(tHeight.substring(0, tHeight.length() - 2));
            mousePressed();
        }
    }, MouseDownEvent.getType());
    addDomHandler(new MouseUpHandler() {

        @Override
        public void onMouseUp(MouseUpEvent event) {
            DOM.releaseCapture(getElement());
            event.preventDefault();
            event.stopPropagation();
            mouseReleased();
        }
    }, MouseUpEvent.getType());
    addDomHandler(new MouseMoveHandler() {

        @Override
        public void onMouseMove(MouseMoveEvent event) {
            if (DOM.getCaptureElement() == getElement()) {
                int dx = event.getScreenX() - mouseScreenX;
                int dy = event.getScreenY() - mouseScreenY;
                event.preventDefault();
                event.stopPropagation();
                changeTarget(getMovableTarget(), getResizableTarget(), dx, dy, event);
            }
        }

    }, MouseMoveEvent.getType());
}

From source file:com.bearsoft.gwt.ui.containers.window.WindowPanel.java

@Override
public final void setCaptionWidget(HasHTML aCaptionWidget) {
    if (captionWidget != aCaptionWidget) {
        if (captionWidget != null) {
            captionWidget.removeFromParent();
        }/*  www .ja  v a2 s.  c  o  m*/
        if (mdHandler != null) {
            mdHandler.removeHandler();
        }
        if (muHandler != null) {
            muHandler.removeHandler();
        }
        if (mmHandler != null) {
            mmHandler.removeHandler();
        }
        if (aCaptionWidget instanceof Widget) {
            captionWidget = (Widget) aCaptionWidget;
        } else {
            captionWidget = new Caption(aCaptionWidget.getHTML());
        }
        if (captionWidget != null) {
            mdHandler = captionWidget.addDomHandler(new MouseDownHandler() {

                @Override
                public void onMouseDown(MouseDownEvent event) {
                    event.preventDefault();
                    event.stopPropagation();
                    focus();
                    if (movable && !maximized) {
                        DOM.setCapture(captionWidget.getElement());
                        mouseScreenX = event.getScreenX();
                        mouseScreenY = event.getScreenY();
                        String tLeft = getMovableTarget().getElement().getStyle().getLeft();
                        targetScrollLeft = Integer.parseInt(tLeft.substring(0, tLeft.length() - 2));
                        String tTop = getMovableTarget().getElement().getStyle().getTop();
                        targetScrollTop = Integer.parseInt(tTop.substring(0, tTop.length() - 2));
                        beginMoving();
                    }
                }

            }, MouseDownEvent.getType());
            muHandler = captionWidget.addDomHandler(new MouseUpHandler() {

                @Override
                public void onMouseUp(MouseUpEvent event) {
                    event.preventDefault();
                    event.stopPropagation();
                    if (movable && !maximized) {
                        DOM.releaseCapture(captionWidget.getElement());
                        endMoving();
                    }
                }

            }, MouseUpEvent.getType());
            mmHandler = captionWidget.addDomHandler(new MouseMoveHandler() {

                @Override
                public void onMouseMove(MouseMoveEvent event) {
                    if (movable && !maximized) {
                        if (DOM.getCaptureElement() == captionWidget.getElement()) {
                            event.preventDefault();
                            event.stopPropagation();
                            int dx = event.getScreenX() - mouseScreenX;
                            int dy = event.getScreenY() - mouseScreenY;
                            setPosition(targetScrollLeft + dx >= 0 ? targetScrollLeft + dx : 0,
                                    targetScrollTop + dy >= 0 ? targetScrollTop + dy : 0);
                        }
                    }
                }

            }, MouseMoveEvent.getType());
            verticalPanel.insert(captionWidget, 0);
        }
    }
}