Example usage for com.google.gwt.user.client Event getMetaKey

List of usage examples for com.google.gwt.user.client Event getMetaKey

Introduction

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

Prototype

public final boolean getMetaKey() 

Source Link

Document

Gets whether the META key was depressed when the given event occurred.

Usage

From source file:asquare.gwt.debug.client.DebugUtil.java

License:Apache License

private static String createModifiersString(Event event) {
    ArrayList<String> modifiers = new ArrayList<String>();
    if (event.getShiftKey()) {
        modifiers.add("shift");
    }/*from   w ww  . j a  va  2s  . c om*/
    if (event.getCtrlKey()) {
        modifiers.add("ctrl");
    }
    if (event.getAltKey()) {
        modifiers.add("alt");
    }
    if (event.getMetaKey()) {
        modifiers.add("meta");
    }

    if (modifiers.size() == 0)
        return "()";

    StringBuilder result = new StringBuilder("(");
    for (int i = 0, size = modifiers.size(); i < size; i++) {
        if (i > 0) {
            result.append('|');
        }
        result.append(modifiers.get(i));
    }
    result.append(')');
    return result.toString();
}

From source file:asquare.gwt.tk.client.util.Platform.java

License:Apache License

public static boolean isToggleKeyDown(Event event) {
    return DomUtil.isMac() ? event.getMetaKey() : event.getCtrlKey();
}

From source file:cc.alcina.framework.gwt.client.widget.dialog.GlassDialogBox.java

License:Apache License

@Override
protected void onPreviewNativeEvent(NativePreviewEvent event) {
    if (event.isFirstHandler()) {
        Event as = Event.as(event.getNativeEvent());
        int typeInt = as.getTypeInt();
        if ((typeInt & Event.KEYEVENTS) > 0) {
            if (as.getCtrlKey() || as.getMetaKey() || as.getAltKey()) {
                event.consume();/*from w ww  . j  av a 2  s  .c o  m*/
            }
        }
    }
    super.onPreviewNativeEvent(event);
}

From source file:cc.alcina.framework.gwt.client.widget.dialog.RelativePopupPanel.java

License:Apache License

/**
 * Preview the {@link NativePreviewEvent}.
 * /*from  w  w w.  j ava  2s  . com*/
 * @param event
 *            the {@link NativePreviewEvent}
 */
private void previewNativeEvent(NativePreviewEvent event) {
    // If the event has been canceled or consumed, ignore it
    if (event.isCanceled() || (!previewAllNativeEvents && event.isConsumed())) {
        // We need to ensure that we cancel the event even if its been
        // consumed so
        // that popups lower on the stack do not auto hide
        if (modal) {
            event.cancel();
        }
        return;
    }
    // Fire the event hook and return if the event is canceled
    onPreviewNativeEvent(event);
    if (event.isCanceled()) {
        return;
    }
    // If the event targets the popup or the partner, consume it
    Event nativeEvent = Event.as(event.getNativeEvent());
    boolean eventTargetsPopupOrPartner = eventTargetsPopup(nativeEvent) || eventTargetsPartner(nativeEvent);
    if (eventTargetsPopupOrPartner) {
        event.consume();
    }
    // Cancel the event if it doesn't target the modal popup. Note that the
    // event can be both canceled and consumed.
    if (modal) {
        switch (nativeEvent.getType()) {
        case BrowserEvents.KEYDOWN:
        case BrowserEvents.KEYPRESS:
        case BrowserEvents.KEYUP:
            if (nativeEvent.getAltKey() || nativeEvent.getMetaKey() || nativeEvent.getCtrlKey()) {
                return;
            }
        }
        event.cancel();
    }
    // Switch on the event type
    int type = nativeEvent.getTypeInt();
    switch (type) {
    case Event.ONMOUSEDOWN:
    case Event.ONTOUCHSTART:
        // Don't eat events if event capture is enabled, as this can
        // interfere with dialog dragging, for example.
        if (DOM.getCaptureElement() != null) {
            event.consume();
            return;
        }
        if (!eventTargetsPopupOrPartner && autoHide) {
            EventTarget target = nativeEvent.getEventTarget();
            // if (Element.is(target)) {
            // ClientUtils.dumpElementTree(Element.as(target));
            // }
            hide(true);
            return;
        }
        break;
    case Event.ONMOUSEUP:
    case Event.ONMOUSEMOVE:
    case Event.ONCLICK:
    case Event.ONDBLCLICK: {
        // Don't eat events if event capture is enabled, as this can
        // interfere with dialog dragging, for example.
        if (DOM.getCaptureElement() != null) {
            event.consume();
            return;
        }
        break;
    }
    case Event.ONFOCUS: {
        if (nativeEvent.getEventTarget().is(Element.class)) {
            Element target = nativeEvent.getEventTarget().cast();
            if (modal && !eventTargetsPopupOrPartner && (target != null)) {
                blur(target);
                event.cancel();
                return;
            }
        }
        break;
    }
    case Event.ONKEYPRESS: {
        if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE && isHideOnEscape()) {
            hide(false);
            event.cancel();
            return;
        }
        break;
    }
    }
}

From source file:com.arcbees.chosen.client.ChosenImpl.java

License:Apache License

protected void resultSelect(Event e) {
    if (resultHighlight != null) {
        GQuery high = resultHighlight;/*from   w  w w.  j a v a  2  s  . c  om*/

        resultClearHighlight();

        resultDeactivate(high, true);

        high.addClass(css.resultSelected());

        OptionItem item = getOptionItem(high);
        item.setSelected(true);
        OptionElement option = selectElement.getOptions().getItem(item.getOptionsIndex());
        if (option != null) {
            option.setSelected(true);
        }

        addChoice(item);

        winnowResultsClear();

        String oldValue = getCurrentValue();
        String newValue = item.getValue();

        selectedValues.add(newValue);

        onResultSelected(item, newValue, oldValue, e.getMetaKey());

        searchFieldScale(fWidth);
    }
}

From source file:com.haulmont.cuba.web.toolkit.ui.client.button.CubaButtonWidget.java

License:Apache License

protected boolean isShortcut(Event event) {
    return event.getShiftKey() || event.getAltKey() || event.getCtrlKey() || event.getMetaKey();
}

From source file:com.haulmont.cuba.web.toolkit.ui.client.Tools.java

License:Apache License

public static boolean isAnyModifierKeyPressed(Event event) {
    return (event.getShiftKey() || event.getAltKey() || event.getCtrlKey() || event.getMetaKey());
}

From source file:com.vaadin.addon.spreadsheet.client.SheetEventListener.java

private void onKeyDown(Event event) {
    if (!widget.isEditingCell()) {
        if (!sheetFocused) {
            return; // focus in input or custom editor
        }/*from   www.ja  v  a2 s .c  o  m*/
        final int keyCode = event.getKeyCode();
        switch (keyCode) {
        case KeyCodes.KEY_BACKSPACE:
        case KeyCodes.KEY_F2:
        case KeyCodes.KEY_UP:
        case KeyCodes.KEY_DOWN:
        case KeyCodes.KEY_LEFT:
        case KeyCodes.KEY_RIGHT:
        case KeyCodes.KEY_TAB:
        case KeyCodes.KEY_DELETE:
        case KeyCodes.KEY_SPACE:
            if (event.getCharCode() == 0) {
                widget.getSheetHandler().onSheetKeyPress(event, "");
                // prevent the default browser action (scroll to key
                // direction) or switch focus (tab)
                event.preventDefault();
                event.stopPropagation();
            }
            break;
        case 89: // y
            if ((!isMac && event.getCtrlKey()) || event.getMetaKey()) {
                widget.getSheetHandler().onRedoPress();
                event.preventDefault();
                event.stopPropagation();
            }
            break;
        case 90: // z
            if ((!isMac && event.getCtrlKey()) || event.getMetaKey()) {
                widget.getSheetHandler().onUndoPress();
                event.preventDefault();
                event.stopPropagation();
            }
            break;
        case 65: // a
            if ((!isMac && event.getCtrlKey()) || event.getMetaKey()) {
                widget.getSheetHandler().selectAll();
                event.preventDefault();
                event.stopPropagation();
            }
            break;
        default:
            break;
        }
    }
}

From source file:com.vaadin.addon.spreadsheet.client.SheetEventListener.java

private void onKeyPress(Event event) {
    if (!widget.isEditingCell()) {
        if (!sheetFocused) {
            return; // focus in input or custom editor
        }/*  ww  w  .  j  av a 2  s.  com*/
        final int keyCode = event.getKeyCode();
        final int charCode = event.getCharCode();
        // these have been handled with onKeyDown (FF causes both
        // for some reason!)
        if ((charCode == 122 || charCode == 121) && (event.getCtrlKey() || event.getMetaKey())) {
            event.preventDefault();
            event.stopPropagation();
            return;
        }
        if (charCode == 0) {
            switch (keyCode) {
            // these have been handled with onKeyDown (FF causes both
            // for some reason!)
            case KeyCodes.KEY_UP:
            case KeyCodes.KEY_DOWN:
            case KeyCodes.KEY_LEFT:
            case KeyCodes.KEY_RIGHT:
            case KeyCodes.KEY_TAB:
            case KeyCodes.KEY_BACKSPACE:
            case KeyCodes.KEY_DELETE:
            case KeyCodes.KEY_SPACE:
                event.preventDefault();
                event.stopPropagation();
                break;

            case KeyCodes.KEY_ENTER:
                // happens on FF (other browsers have charcode as 13)
                widget.getSheetHandler().onSheetKeyPress(event,
                        widget.getSheetJsniUtil().convertUnicodeIntoCharacter(charCode));
                break;
            }
        } else if (!event.getCtrlKey() && !event.getMetaKey()) {
            widget.getSheetHandler().onSheetKeyPress(event,
                    widget.getSheetJsniUtil().convertUnicodeIntoCharacter(charCode));
        }
    }
}

From source file:com.vaadin.addon.spreadsheet.client.SheetWidget.java

/**
 *
 * @param target/*from   w ww. j  ava  2s.  c om*/
 *            The clicked element
 * @param event
 *            The original event (that can be onClick or onTouchStart)
 */
protected void onSheetMouseDown(Event event) {
    Element target = event.getEventTarget().cast();

    String className = target.getAttribute("class");

    // click target is the inner div because IE10 and 9 are not compatible
    // with 'pointer-events: none'
    if ((BrowserInfo.get().isIE9() || BrowserInfo.get().isIE10())
            && (className == null || className.isEmpty())) {
        String parentClassName = target.getParentElement().getAttribute("class");
        if (parentClassName.contains("cell")) {
            className = parentClassName;
        }
    }
    if (cellCommentEditMode && !className.contains("comment-overlay")) {
        cellCommentEditMode = false;
        currentlyEditedCellComment.setEditMode(false);
        if (currentlyEditedCellComment.equals(cellCommentOverlay)) {
            cellCommentOverlay.hide();
            cellCommentCellClassName = null;
            cellCommentCellColumn = -1;
            cellCommentCellRow = -1;
        }
    }

    if (className.contains("sheet") || target.getTagName().equals("input") || className.equals("floater")) {
        return; // event target is one of the panes or input
    }

    if (isEventInCustomEditorCell(event)) {
        // allow sheet context menu on top of custom editors
        if (event.getButton() == NativeEvent.BUTTON_RIGHT) {
            actionHandler.onCellRightClick(event, selectedCellCol, selectedCellRow);
        } else if (selectingCells) { // this is probably unnecessary
            stoppedSelectingCellsWithDrag(event);
        }
    } else if (className.contains("cell")) {
        if (className.equals("cell-comment-triangle")) {
            jsniUtil.parseColRow(target.getParentElement().getAttribute("class"));
        } else {
            jsniUtil.parseColRow(className);
        }
        int targetCol = jsniUtil.getParsedCol();
        int targetRow = jsniUtil.getParsedRow();
        // because of text overflow, the click might have happened on
        // top of a another cell than what event has.
        // merged cells are a special case, text won't overflow -> skip
        try {
            if (!className.endsWith(MERGED_CELL_CLASSNAME)) {
                int clientX = SpreadsheetWidget.getTouchOrMouseClientX(event);
                int clientY = SpreadsheetWidget.getTouchOrMouseClientY(event);

                Cell targetCell = getRealEventTargetCell(clientX, clientY, getCell(targetCol, targetRow));
                target = targetCell.getElement();
                targetCol = targetCell.getCol();
                targetRow = targetCell.getRow();
            }
        } catch (JavaScriptException jse) {
            debugConsole.severe(
                    "SheetWidget:onSheetMouseDown - JSE while trying to find real event target, className:"
                            + className);
        } catch (IndexOutOfBoundsException ioobe) {
            debugConsole.severe(
                    "SheetWidget:onSheetMouseDown - IOOBE while trying to find real event target, className:"
                            + className);
        }

        event.stopPropagation();
        event.preventDefault();
        if (event.getButton() == NativeEvent.BUTTON_RIGHT) {
            Event.releaseCapture(sheet);
            actionHandler.onCellRightClick(event, targetCol, targetRow);
        } else {
            sheet.focus();
            // quit input if active
            if (editingCell && !input.getElement().isOrHasChild(target)) {
                actionHandler.onCellInputBlur(input.getValue());
            }
            if (event.getCtrlKey() || event.getMetaKey() || event.getShiftKey()) {
                actionHandler.onCellClick(targetCol, targetRow, target.getInnerText(), event.getShiftKey(),
                        event.getMetaKey() || event.getCtrlKey(), true);
                tempCol = -1;
                tempRow = -1;
            } else { // no special keys used
                // link cells are special keys
                // TODO should investigate what is the correct action when
                // clicking on hyperlink cells that overflow to next cells
                if (cellLinksMap != null
                        && cellLinksMap.containsKey(toKey(jsniUtil.getParsedCol(), jsniUtil.getParsedRow()))) {
                    actionHandler.onLinkCellClick(targetCol, targetRow);
                } else { // otherwise selecting starts
                    actionHandler.onCellClick(targetCol, targetRow, target.getInnerText(), event.getShiftKey(),
                            event.getMetaKey() || event.getCtrlKey(), false);
                    selectingCells = true;
                    tempCol = targetCol;
                    tempRow = targetRow;
                    startCellTopLeft = isCellRenderedInTopLeftPane(targetCol, targetRow);
                    startCellTopRight = isCellRenderedInTopRightPane(targetCol, targetRow);
                    startCellBottomLeft = isCellRenderedInBottomLeftPane(targetCol, targetRow);
                    crossedDown = !startCellTopLeft && !startCellTopRight;
                    crossedLeft = !startCellTopLeft && !startCellBottomLeft;
                    clientX = SpreadsheetWidget.getTouchOrMouseClientX(event);
                    clientY = SpreadsheetWidget.getTouchOrMouseClientY(event);
                    Event.setCapture(sheet);
                }
            }
        }
    }
}