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

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

Introduction

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

Prototype

@Deprecated
public static int eventGetKeyCode(Event evt) 

Source Link

Document

Gets the key code associated with this event.

Usage

From source file:org.palaso.languageforge.client.lex.controls.FastTree.java

License:Apache License

@Override
@SuppressWarnings("fallthrough")
public void onBrowserEvent(Event event) {
    int eventType = DOM.eventGetType(event);

    if (event.getButton() == Event.BUTTON_RIGHT) {
        DOM.eventCancelBubble(event, true);
        DOM.eventPreventDefault(event);//from w w w .  j a  v  a2 s.  com
    }

    switch (eventType) {
    case Event.ONCLICK: {
        Element e = DOM.eventGetTarget(event);
        if (shouldTreeDelegateFocusToElement(e)) {
            // The click event should have given focus to this element
            // already.
            // Avoid moving focus back up to the tree (so that focusable
            // widgets
            // attached to TreeItems can receive keyboard events).
        } else {
            if (!hasModifiers(event)) {
                clickedOnFocus(DOM.eventGetTarget(event));
            }
        }
        break;
    }

    case Event.ONMOUSEUP: {
        boolean left = event.getButton() == Event.BUTTON_LEFT;

        if (lostMouseDown) {
            // artificial mouse down due to IE bug where mouse downs are
            // lost.

            if (left && !hasModifiers(event)) {
                elementClicked(root, event);
            }

            if (event.getButton() == Event.BUTTON_RIGHT) {
                if (contextClickHandler != null) {

                    Element target = DOM.eventGetTarget(event);
                    ArrayList<Element> chain = new ArrayList<Element>();
                    collectElementChain(chain, getElement(), target);
                    FastTreeItem item = findItemByChain(chain, 0, root);
                    if (item != null && item != root) {

                        onSelection(item, false, true);

                        DOM.eventCancelBubble(event, true);
                        DOM.eventPreventDefault(event);
                        int x = DOM.eventGetClientX(event);
                        int y = DOM.eventGetClientY(event);

                        TreeItemContextClickEvent contextEvent = new TreeItemContextClickEvent(item,
                                popupPanel);
                        contextClickHandler.onTreeItemContextClick(contextEvent);

                        popupPanel.setPopupPosition(x, y);
                        popupPanel.show();
                        break;
                    }
                }
            }
        }

        lostMouseDown = true;
        break;
    }
    case Event.ONMOUSEDOWN: {
        boolean left = event.getButton() == Event.BUTTON_LEFT;

        lostMouseDown = false;
        if (left && !hasModifiers(event)) {
            elementClicked(root, event);
        }
        if (!left) {
            lostMouseDown = true;
        }
        break;
    }

    case Event.ONKEYDOWN:
        keyDown = event;
        // Intentional fallthrough.
    case Event.ONKEYUP:
        if (eventType == Event.ONKEYUP) {
            // If we got here because of a key tab, then we need to make
            // sure the
            // current tree item is selected.
            if (DOM.eventGetKeyCode(event) == KeyCodes.KEY_TAB) {
                ArrayList<Element> chain = new ArrayList<Element>();
                collectElementChain(chain, getElement(), DOM.eventGetTarget(event));
                FastTreeItem item = findItemByChain(chain, 0, root);
                if (item != getSelectedItem()) {
                    setSelectedItem(item, true);
                }
            }
        }

    case Event.ONCONTEXTMENU: {
        break;
    }
    // Intentional fall through.
    case Event.ONKEYPRESS: {

        if (hasModifiers(event)) {
            break;
        }

        // Trying to avoid duplicate key downs and fire navigation despite
        // missing key downs.
        if (eventType != Event.ONKEYUP) {
            if (lastKeyDown == null || (!lastKeyDown.equals(keyDown))) {
                keyboardNavigation(event);
            }
            if (eventType == Event.ONKEYPRESS) {
                lastKeyDown = null;
            } else {
                lastKeyDown = keyDown;
            }
        }
        if (DOMHelper.isArrowKey(DOM.eventGetKeyCode(event))) {
            DOM.eventCancelBubble(event, true);
            DOM.eventPreventDefault(event);
        }
        break;
    }
    }

    // We must call SynthesizedWidget's implementation for all other events.
    super.onBrowserEvent(event);
}

From source file:org.palaso.languageforge.client.lex.controls.FastTree.java

License:Apache License

protected void keyboardNavigation(Event event) {
    // If nothing's selected, select the first item.
    if (curSelection == null) {
        if (root.getChildCount() > 0) {
            onSelection(root.getChild(0), true, true);
        }// w w w  .ja v  a2s. c o m
        super.onBrowserEvent(event);
    } else {

        // Handle keyboard events if keyboard navigation is enabled

        switch (DOMHelper.standardizeKeycode(DOM.eventGetKeyCode(event))) {
        case KeyCodes.KEY_UP: {
            moveSelectionUp(curSelection);
            break;
        }
        case KeyCodes.KEY_DOWN: {
            moveSelectionDown(curSelection, true);
            break;
        }
        case KeyCodes.KEY_LEFT: {
            if (curSelection.isOpen()) {
                curSelection.setState(false);
            } else {
                FastTreeItem parent = curSelection.getParentItem();
                if (parent != null) {
                    setSelectedItem(parent);
                }
            }
            break;
        }
        case KeyCodes.KEY_RIGHT: {
            if (!curSelection.isOpen()) {
                curSelection.setState(true);
            }
            // Do nothing if the element is already open.
            break;
        }
        }
    }
}

From source file:org.utgenome.gwt.widget.client.Icon.java

License:Apache License

@Override
public void onBrowserEvent(Event event) {
    // Should not act on button if disabled.

    int type = DOM.eventGetType(event);
    switch (type) {
    case Event.ONMOUSEDOWN:
        isFocusing = true;/* w  ww  .  ja  v a 2s  .c o m*/
        onClickStart();
        // DOM.setCapture(getElement());
        isCapturing = true;
        // Prevent dragging (on some browsers);
        DOM.eventPreventDefault(event);
        break;
    case Event.ONMOUSEUP:
        if (isCapturing) {
            isCapturing = false;
            // DOM.releaseCapture(getElement());
            if (isHovering) {
                onClick();
            }
        }
        break;
    case Event.ONMOUSEMOVE:
        if (isCapturing) {
            // Prevent dragging (on other browsers);
            DOM.eventPreventDefault(event);
        }
        break;
    case Event.ONMOUSEOUT:
        Element to = DOM.eventGetToElement(event);
        if (DOM.isOrHasChild(getElement(), DOM.eventGetTarget(event))
                && (to == null || !DOM.isOrHasChild(getElement(), to))) {
            if (isCapturing) {
                onClickCancel();
                // DOM.releaseCapture(getElement());
            }
        }
        setHovering(false);
        break;
    case Event.ONMOUSEOVER:
        if (DOM.isOrHasChild(getElement(), DOM.eventGetTarget(event))) {
            setHovering(true);
            if (isCapturing) {
                onClickStart();
            }
        }
        break;
    case Event.ONCLICK:
        // we handle clicks ourselves
        return;
    case Event.ONBLUR:
        if (isFocusing) {
            isFocusing = false;
            onClickCancel();
        }
        break;
    case Event.ONLOSECAPTURE:
        if (isCapturing) {
            isCapturing = false;
            onClickCancel();
        }
        break;
    case Event.ONERROR:
        setHovering(false);
        break;
    }

    super.onBrowserEvent(event);

    // Synthesize clicks based on keyboard events AFTER the normal key handling.
    char keyCode = (char) DOM.eventGetKeyCode(event);
    switch (type) {
    case Event.ONKEYDOWN:
        if (keyCode == ' ') {
            isFocusing = true;
            onClickStart();
        }
        break;
    case Event.ONKEYUP:
        if (isFocusing && keyCode == ' ') {
            isFocusing = false;
            onClick();
        }
        break;
    case Event.ONKEYPRESS:
        if (keyCode == '\n' || keyCode == '\r') {
            onClickStart();
            onClick();
        }
        break;
    }
}

From source file:org.utgenome.gwt.widget.client.Switch.java

License:Apache License

@Override
public void onBrowserEvent(Event event) {
    // Should not act on button if disabled.

    int type = DOM.eventGetType(event);
    switch (type) {
    case Event.ONMOUSEDOWN:
        isFocusing = true;/*from   w ww  .  j  a v a 2 s .  c  om*/
        onClickStart();
        DOM.setCapture(getElement());
        isCapturing = true;
        // Prevent dragging (on some browsers);
        DOM.eventPreventDefault(event);
        break;
    case Event.ONMOUSEUP:
        if (isCapturing) {
            isCapturing = false;
            DOM.releaseCapture(getElement());
            if (isHovering) {
                onClick();
            }
        }
        break;
    case Event.ONMOUSEMOVE:
        if (isCapturing) {
            // Prevent dragging (on other browsers);
            DOM.eventPreventDefault(event);
        }
        break;
    case Event.ONMOUSEOUT:
        Element to = DOM.eventGetToElement(event);
        if (DOM.isOrHasChild(getElement(), DOM.eventGetTarget(event))
                && (to == null || !DOM.isOrHasChild(getElement(), to))) {
            if (isCapturing) {
                onClickCancel();
            }
            setHovering(false);
        }
        break;
    case Event.ONMOUSEOVER:
        if (DOM.isOrHasChild(getElement(), DOM.eventGetTarget(event))) {
            setHovering(true);
            if (isCapturing) {
                onClickStart();
            }
        }
        break;
    case Event.ONCLICK:
        // we handle clicks ourselves
        return;
    case Event.ONBLUR:
        if (isFocusing) {
            isFocusing = false;
            onClickCancel();
        }
        break;
    case Event.ONLOSECAPTURE:
        if (isCapturing) {
            isCapturing = false;
            onClickCancel();
        }
        break;
    }

    super.onBrowserEvent(event);

    // Synthesize clicks based on keyboard events AFTER the normal key handling.
    char keyCode = (char) DOM.eventGetKeyCode(event);
    switch (type) {
    case Event.ONKEYDOWN:
        if (keyCode == ' ') {
            isFocusing = true;
            onClickStart();
        }
        break;
    case Event.ONKEYUP:
        if (isFocusing && keyCode == ' ') {
            isFocusing = false;
            onClick();
        }
        break;
    case Event.ONKEYPRESS:
        if (keyCode == '\n' || keyCode == '\r') {
            onClickStart();
            onClick();
        }
        break;
    }
}

From source file:org.waveprotocol.wave.client.editor.sugg.SuggestionMenu.java

License:Apache License

private void handleEventInner(Event event) {
    switch (DOM.eventGetType(event)) {
    case Event.ONCONTEXTMENU:
        event.preventDefault();//from ww w. j a  v a  2s  .  c o m
        break;
    case Event.ONKEYPRESS:
    case Event.ONKEYDOWN: {
        // NOTE(user): It is necessary to stop propagation on the key events to
        // prevent them from leaking to the blip/wave presenters.
        int keyCode = DOM.eventGetKeyCode(event);

        // Move left/right to previous/next drop down widget
        switch (keyCode) {
        case KeyCodes.KEY_LEFT:
        case KeyCodes.KEY_RIGHT:
            handler.handleLeftRight(keyCode == KeyCodes.KEY_RIGHT);
            event.stopPropagation();
            return;
        case KeyCodes.KEY_ENTER:
            event.stopPropagation();
        }

        if (keyCode >= '1' && keyCode <= '9') {
            // TODO(danilatos): Is this ok? i18n etc?
            int index = keyCode - '1';

            if (index >= 0 && index < getItems().size()) {
                MenuItem item = getItems().get(index);
                if (item == null) {
                    return;
                }

                item.getCommand().execute();
                DOM.eventPreventDefault(event);
            }
        }
        break;
    }
    case Event.ONMOUSEOUT: {
        // Need to check that we really seem to have left the menu, as
        // mouse-out events get triggered whenever the mouse moves between
        // selections in the menu.
        EventTarget target = event.getRelatedEventTarget();
        Element targetElement = Element.as(target);
        if (!getElement().isOrHasChild(targetElement)) {
            handler.handleMouseOut();
        }
        break;
    }
    case Event.ONMOUSEOVER: {
        handler.handleMouseOver();
        break;
    }
    }
}

From source file:pl.balon.gwt.diagramsexample.client.examples.DiagramBuilderExample.java

License:Apache License

protected void createContents() {

    PickupDragController dragController = new PickupDragController(getArea(), true);
    AbsolutePositionDropController dropController = new AbsolutePositionDropController(getArea());

    toolboxDragController = new ToolboxDragController(dropController, dragController);

    toolbox = new HorizontalPanel();
    toolbox.setStyleName("toolbox");
    panel = new AbsolutePanel();
    helpPanel = new HorizontalPanel();
    helpPanel.setStyleName("helpPanel");

    VerticalPanel vp = new VerticalPanel();
    vp.setStyleName("builder");
    vp.add(helpPanel);/*  w  ww  .j  a v  a  2s .c o  m*/
    vp.add(toolbox);
    vp.add(panel);
    getArea().add(vp);

    createToolboxNode("A", "all");
    createToolboxNode("L", "left");
    createToolboxNode("R", "right");
    createToolboxNode("T", "top");
    createToolboxNode("B", "bottom");

    createStyleOption("rectilinear", true);
    createStyleOption("bezier", false);
    createStyleOption("straight", false);

    createHelpEntry("drag&drop from toolbar to add");
    createHelpEntry("CTRL+click to select/connect");
    createHelpEntry("DEL to delete selected");

    DOM.addEventPreview(new EventPreview() {
        public boolean onEventPreview(Event event) {

            if (Event.ONKEYDOWN == DOM.eventGetType(event)
                    && KeyboardListener.KEY_DELETE == DOM.eventGetKeyCode(event) && !selected.isEmpty()) {
                for (Iterator i = selected.listIterator(); i.hasNext();) {
                    Widget w = (Widget) i.next();
                    UIObjectConnector.unwrap(w);
                    i.remove();
                    w.removeFromParent();
                }
                return false;
            }

            return true;
        }
    });

}

From source file:toastwars.client.slider.SliderBar.java

License:Apache License

/**
 * Listen for events that will move the knob.
 * //from  w w  w .j a va2s.co  m
 * @param event
 *            the event that occurred
 */
public void onBrowserEvent(Event event) {
    super.onBrowserEvent(event);
    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 KeyboardListener.KEY_HOME:
                DOM.eventPreventDefault(event);
                setCurrentValue(minValue);
                break;
            case KeyboardListener.KEY_END:
                DOM.eventPreventDefault(event);
                setCurrentValue(maxValue);
                break;
            case KeyboardListener.KEY_LEFT:
                DOM.eventPreventDefault(event);
                slidingKeyboard = true;
                startSliding(false, true);
                shiftLeft(multiplier);
                keyTimer.schedule(400, false, multiplier);
                break;
            case KeyboardListener.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;
    }
}