Example usage for com.google.gwt.event.dom.client KeyCodes KEY_ESCAPE

List of usage examples for com.google.gwt.event.dom.client KeyCodes KEY_ESCAPE

Introduction

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

Prototype

int KEY_ESCAPE

To view the source code for com.google.gwt.event.dom.client KeyCodes KEY_ESCAPE.

Click Source Link

Document

Escape key code.

Usage

From source file:cc.alcina.framework.gwt.client.cell.EditTextCell.java

License:Apache License

private void editEvent(Context context, Element parent, String value, ViewData viewData, NativeEvent event,
        ValueUpdater<String> valueUpdater) {
    String type = event.getType();
    boolean keyUp = KEYUP.equals(type);
    boolean keyDown = KEYDOWN.equals(type);
    if (keyUp || keyDown) {
        int keyCode = event.getKeyCode();
        if (keyUp && keyCode == KeyCodes.KEY_ENTER) {
            // Commit the change.
            commit(context, parent, viewData, valueUpdater);
        } else if (keyUp && keyCode == KeyCodes.KEY_ESCAPE) {
            // Cancel edit mode.
            String originalText = viewData.getOriginal();
            if (viewData.isEditingAgain()) {
                viewData.setText(originalText);
                viewData.setEditing(false);
            } else {
                setViewData(context.getKey(), null);
            }/*from   ww  w  .j av a  2 s . c  om*/
            cancel(context, parent, value);
        } else {
            // Update the text in the view data on each key.
            updateViewData(parent, viewData, true);
        }
    } else if (BLUR.equals(type)) {
        // Commit the change. Ensure that we are blurring the input element
        // and
        // not the parent element itself.
        EventTarget eventTarget = event.getEventTarget();
        if (Element.is(eventTarget)) {
            Element target = Element.as(eventTarget);
            if ("input".equals(target.getTagName().toLowerCase(Locale.ROOT))) {
                commit(context, parent, viewData, valueUpdater);
            }
        }
    }
}

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

License:Apache License

@Override
protected void onAttach() {
    super.onAttach();
    checkReCenterTimer = new Timer() {
        private int lastCenterHeight;

        @Override//w  w  w . jav a  2 s . com
        public void run() {
            if (lastCenterHeight != 0 && lastCenterHeight != getOffsetHeight()) {
                center();
            }
            lastCenterHeight = getOffsetHeight();
        }
    };
    checkReCenterTimer.scheduleRepeating(200);
    nativePreviewHandlerRegistration = Event.addNativePreviewHandler(e -> {
        int evtCode = e.getTypeInt();
        if (evtCode == Event.ONKEYDOWN && e.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE) {
            cancel();
        }
        if (evtCode == Event.ONKEYDOWN && e.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER
                && e.getNativeEvent().getCtrlKey()) {
            e.cancel();
            okButton.setFocus(true);
            onOkButtonClicked();
        }
    });
}

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

License:Apache License

/**
 * Preview the {@link NativePreviewEvent}.
 * //from  www .  j a v a 2  s  . 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:cc.alcina.framework.gwt.client.widget.SelectWithSearch.java

License:Apache License

public Widget createWidget(Map<G, List<T>> itemMap, ClickHandler clickHandler, int charWidth,
        LazyDataProvider<G, T> lazyProvider) {
    this.clickHandler = clickHandler;
    this.charWidth = charWidth;
    this.lazyProvider = lazyProvider;
    this.holder = isFlowLayout() ? new FlowPanelClickable() : new FlowPanel100pcHeight();
    filter = new FilterWidget(hint);
    filter.getTextBox().addKeyUpHandler(selectableNavigation);
    filter.getTextBox().addKeyDownHandler(selectableNavigation);
    if (getInitialFilterValue() != null) {
        filter.setInitialCursorPos(getInitialFilterCursorPos());
        filter.setValue(getInitialFilterValue());
    }//from w w w.  j av a2 s . c o  m
    filter.setFocusOnAttach(isFocusOnAttach());
    filter.addAttachHandler(filterAttachHandler);
    filter.registerFilterable(this);
    selectableNavigation.setWrappedEnterListener(new ClickHandler() {
        // the listeners aren't registered on every source...pretty sure
        // this is logical...
        @Override
        public void onClick(ClickEvent event) {
            HasClickHandlers sender = (HasClickHandlers) event.getSource();
            if (enterHandler != null) {
                WidgetUtils.fireClickOnHandler(sender, enterHandler);
            }
            if (popdown) {
                WidgetUtils.fireClickOnHandler(sender, popdownHider);
            }
        }
    });
    createItemHolder();
    if (inPanelHint != null) {
        hintLabel = new HTML(inPanelHint);
        hintLabel.setStyleName("hint");
        if (showHintStrategy != null) {
            showHintStrategy.registerHintWidget(hintLabel);
            showHintStrategy.registerFilter(filter);
        }
        itemHolderAsHasWidgets().add(hintLabel);
    }
    groupCaptions = new ArrayList<Label>();
    popdownHider = new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            maybeClosePopdown(event);
        }
    };
    filter.getTextBox().addBlurHandler(new BlurHandler() {
        @Override
        public void onBlur(BlurEvent event) {
            System.out.println("onblur - ignore:" + ignoreNextBlur);
            if (System.currentTimeMillis() - ignoreNextBlur < 100) {
                ignoreNextBlur = 0;
                filter.getTextBox().setFocus(true);
            } else {
                handleFilterBlur();
            }
        }
    });
    if (itemMap != null) {
        setItemMap(itemMap);
    }
    this.scroller = isFlowLayout() ? new ScrollPanel(itemHolder) : new ScrollPanel100pcHeight300px(itemHolder);
    if (!isFlowLayout()) {
        scroller.setSize("100%", "100%");
    }
    scroller.setStyleName("selector-scroller");
    holder.setStyleName("alcina-Chooser");
    holder.add(filter);
    if (popdown) {
        filter.getTextBox().addFocusHandler(this);
        filter.getTextBox().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                checkShowPopup();
            }
        });
        filter.getTextBox().addKeyUpHandler(new KeyUpHandler() {
            @Override
            public void onKeyUp(KeyUpEvent event) {
                if (Event.getCurrentEvent().getKeyCode() == KeyCodes.KEY_ESCAPE) {
                    if (popdown) {
                        maybeClosePopdown(null);
                    }
                } else {
                    checkShowPopup();
                }
                if (CommonUtils.isNullOrEmpty(filter.getTextBox().getText()) && popdown
                        && isCloseOnPopdownFilterEmpty()) {
                    maybeClosePopdown(null);
                }
            }
        });
    } else {
        if (!isFlowLayout()) {
            holder.setHeight(holderHeight);
        }
        holder.add(scroller);
    }
    if (!popdown && lazyProvider != null) {
        AsyncCallback<LazyData> callback = new AsyncCallbackStd<SelectWithSearch.LazyData>() {
            @Override
            public void onSuccess(LazyData lazyData) {
                if (lazyData != null) {
                    setKeys(lazyData.keys);
                    setItemMap(lazyData.data);
                }
            }
        };
        lazyProvider.getData(callback);
    }
    return holder;
}

From source file:cc.kune.common.client.actions.KeyStroke.java

License:Open Source License

/**
 * Gets the key text./*from w w  w  .ja v a 2s  .co  m*/
 *
 * @return the key text
 */
@SuppressWarnings("deprecation")
public String getKeyText() {
    switch (keyCode) {
    case KeyCodes.KEY_BACKSPACE:
        return translateKey("Backspace");
    // case KeyCodes.KEY_DELETE:
    // return translateKey("Delete");
    case KeyCodes.KEY_DOWN:
        return translateKey("Down");
    case KeyCodes.KEY_END:
        return translateKey("End");
    case KeyCodes.KEY_ENTER:
        return translateKey("Enter");
    case KeyCodes.KEY_ESCAPE:
        return translateKey("Escape");
    case KeyCodes.KEY_HOME:
        return translateKey("Home");
    case KeyCodes.KEY_LEFT:
        return translateKey("Left");
    case KeyCodes.KEY_PAGEDOWN:
        return translateKey("Page Down");
    case KeyCodes.KEY_PAGEUP:
        return translateKey("Page Up");
    case KeyCodes.KEY_RIGHT:
        return translateKey("Right");
    case KeyCodes.KEY_TAB:
        return translateKey("Tab");
    case KeyCodes.KEY_UP:
        return translateKey("Up");
    case Keyboard.KEY_SPACE:
        return translateKey("Space");
    case Keyboard.KEY_F1:
    case Keyboard.KEY_F2:
    case Keyboard.KEY_F3:
    case Keyboard.KEY_F4:
    case Keyboard.KEY_F5:
    case Keyboard.KEY_F6:
    case Keyboard.KEY_F7:
    case Keyboard.KEY_F8:
    case Keyboard.KEY_F9:
    case Keyboard.KEY_F10:
    case Keyboard.KEY_F11:
    case Keyboard.KEY_F12:
        return translateKey("F" + (keyCode - (Keyboard.KEY_F1 - 1)));
    case Keyboard.KEY_COMMA:
    case Keyboard.KEY_PERIOD:
    case Keyboard.KEY_SLASH:
    case Keyboard.KEY_0:
    case Keyboard.KEY_1:
    case Keyboard.KEY_2:
    case Keyboard.KEY_3:
    case Keyboard.KEY_4:
    case Keyboard.KEY_5:
    case Keyboard.KEY_6:
    case Keyboard.KEY_7:
    case Keyboard.KEY_8:
    case Keyboard.KEY_9:
    case Keyboard.KEY_SEMICOLON:
    case Keyboard.KEY_EQUALS:
    case Keyboard.KEY_A:
    case Keyboard.KEY_B:
    case Keyboard.KEY_C:
    case Keyboard.KEY_D:
    case Keyboard.KEY_E:
    case Keyboard.KEY_F:
    case Keyboard.KEY_G:
    case Keyboard.KEY_H:
    case Keyboard.KEY_I:
    case Keyboard.KEY_J:
    case Keyboard.KEY_K:
    case Keyboard.KEY_L:
    case Keyboard.KEY_M:
    case Keyboard.KEY_N:
    case Keyboard.KEY_O:
    case Keyboard.KEY_P:
    case Keyboard.KEY_Q:
    case Keyboard.KEY_R:
    case Keyboard.KEY_S:
    case Keyboard.KEY_T:
    case Keyboard.KEY_U:
    case Keyboard.KEY_V:
    case Keyboard.KEY_W:
    case Keyboard.KEY_X:
    case Keyboard.KEY_Y:
    case Keyboard.KEY_Z:
    case Keyboard.KEY_OPEN_BRACKET:
    case Keyboard.KEY_BACK_SLASH:
    case Keyboard.KEY_CLOSE_BRACKET:
        return String.valueOf(keyCode).toUpperCase();
    default:
        final String charS = String.valueOf(keyChar);
        if (charS == null) {
            return "Unknown keyCode: 0x" + (keyCode < 0 ? "-" : "") + Integer.toHexString(Math.abs(keyCode));
        } else {
            if (" ".equals(charS)) {
                return translateKey("Space");
            } else {
                return charS;
            }
        }
    }
}

From source file:cc.kune.common.client.shortcuts.GlobalShortcuts.java

License:GNU Affero Public License

/**
 * Instantiates a new global shortcuts.//from   ww  w  . j  a  v  a 2s .c o  m
 *
 * @param register the register
 * @param eventBus the event bus
 */
@Inject
public GlobalShortcuts(final GlobalShortcutRegister register, final EventBus eventBus) {
    register.put(KeyStroke.getKeyStroke(KeyCodes.KEY_ESCAPE, 0), new AbstractExtendedAction() {
        @Override
        public void actionPerformed(final ActionEvent event) {
            OnEscapePressedEvent.fire(eventBus);
        }
    });
    // More global shortcuts here (...)
}

From source file:ch.cern.atlas.apvs.client.widget.EditTextCell.java

License:Apache License

private void editEvent(Context context, Element parent, String value, ViewData viewData, NativeEvent event,
        ValueUpdater<String> valueUpdater) {
    String type = event.getType();
    boolean keyUp = KEYUP.equals(type);
    boolean keyDown = KEYDOWN.equals(type);
    if (keyUp || keyDown) {
        int keyCode = event.getKeyCode();
        if (keyUp && keyCode == KeyCodes.KEY_ENTER) {
            // Commit the change.
            commit(context, parent, viewData, valueUpdater);
        } else if (keyUp && keyCode == KeyCodes.KEY_ESCAPE) {
            // Cancel edit mode.
            String originalText = viewData.getOriginal();
            if (viewData.isEditingAgain()) {
                viewData.setText(originalText);
                viewData.setEditing(false);
            } else {
                setViewData(context.getKey(), null);
            }//from  w ww.j a  va  2 s.  c om
            cancel(context, parent, value);
        } else {
            // Update the text in the view data on each key.
            updateViewData(parent, viewData, true);
        }
    } else if (BLUR.equals(type)) {
        // Commit the change. Ensure that we are blurring the input element and
        // not the parent element itself.
        EventTarget eventTarget = event.getEventTarget();
        if (Element.is(eventTarget)) {
            Element target = Element.as(eventTarget);
            if ("input".equals(target.getTagName().toLowerCase())) {
                commit(context, parent, viewData, valueUpdater);
            }
        }
    }
}

From source file:ch.takoyaki.email.html.client.ui.generic.ClosableTabLayoutPanel.java

License:Open Source License

private void renameAction(final IsWidget content, final FlowPanel hpanel, final InlineHTML titlew,
        final Widget closeButton) {
    hpanel.clear();//  w ww .java 2  s.c  o  m
    final TextBox tb = new TextBox();
    tb.addStyleName("tabrename");
    final String originalText = titlew.getText();
    tb.setText(originalText);

    tb.addKeyDownHandler(new KeyDownHandler() {

        @Override
        public void onKeyDown(KeyDownEvent event) {

            boolean enterPressed = KeyCodes.KEY_ENTER == event.getNativeEvent().getKeyCode();
            boolean escapePressed = KeyCodes.KEY_ESCAPE == event.getNativeEvent().getKeyCode();

            if (enterPressed) {
                if (renameTabEventHandler != null) {
                    if (renameTabEventHandler.onRename(ClosableTabLayoutPanel.this,
                            getTab().getWidgetIndex(content), originalText, tb.getText())) {
                        titlew.setText(tb.getText());
                    } else {
                        titlew.setHTML(originalText);
                    }
                } else {
                    titlew.setText(tb.getText());
                }
            }
            if (escapePressed) {
                titlew.setHTML(originalText);
            }

            if (enterPressed || escapePressed) {
                hpanel.clear();
                hpanel.add(titlew);
                hpanel.add(closeButton);
            }
        }
    });
    hpanel.add(tb);
    tb.selectAll();
    titlew.setHTML("");
}

From source file:cl.uai.client.page.EditMarkDialog.java

License:Open Source License

@Override
public boolean onKeyDownPreview(char key, int modifiers) {
    switch (key) {
    case KeyCodes.KEY_ESCAPE:
        cancelled = true;// w  w  w . jav a2 s  .co m
        hide();
        break;
    case KeyCodes.KEY_ENTER:
        if (levelId > 0 && !bonusIsValid()) {
            Window.alert(MarkingInterface.messages.InvalidBonusValue());
            break;
        }
        cancelled = false;
        hide();
        break;
    }
    return true;
}

From source file:com.badlogic.gdx.backends.gwt.GwtInput.java

License:Apache License

/** borrowed from PlayN, thanks guys **/
private static int keyForCode(int keyCode) {
    switch (keyCode) {
    case KeyCodes.KEY_ALT:
        return Keys.ALT_LEFT;
    case KeyCodes.KEY_BACKSPACE:
        return Keys.BACKSPACE;
    case KeyCodes.KEY_CTRL:
        return Keys.CONTROL_LEFT;
    case KeyCodes.KEY_DELETE:
        return Keys.DEL;
    case KeyCodes.KEY_DOWN:
        return Keys.DOWN;
    case KeyCodes.KEY_END:
        return Keys.END;
    case KeyCodes.KEY_ENTER:
        return Keys.ENTER;
    case KeyCodes.KEY_ESCAPE:
        return Keys.ESCAPE;
    case KeyCodes.KEY_HOME:
        return Keys.HOME;
    case KeyCodes.KEY_LEFT:
        return Keys.LEFT;
    case KeyCodes.KEY_PAGEDOWN:
        return Keys.PAGE_DOWN;
    case KeyCodes.KEY_PAGEUP:
        return Keys.PAGE_UP;
    case KeyCodes.KEY_RIGHT:
        return Keys.RIGHT;
    case KeyCodes.KEY_SHIFT:
        return Keys.SHIFT_LEFT;
    case KeyCodes.KEY_TAB:
        return Keys.TAB;
    case KeyCodes.KEY_UP:
        return Keys.UP;

    case KEY_PAUSE:
        return Keys.UNKNOWN; // FIXME
    case KEY_CAPS_LOCK:
        return Keys.UNKNOWN; // FIXME
    case KEY_SPACE:
        return Keys.SPACE;
    case KEY_INSERT:
        return Keys.INSERT;
    case KEY_0://from w  ww. j a  va 2  s.c  o m
        return Keys.NUM_0;
    case KEY_1:
        return Keys.NUM_1;
    case KEY_2:
        return Keys.NUM_2;
    case KEY_3:
        return Keys.NUM_3;
    case KEY_4:
        return Keys.NUM_4;
    case KEY_5:
        return Keys.NUM_5;
    case KEY_6:
        return Keys.NUM_6;
    case KEY_7:
        return Keys.NUM_7;
    case KEY_8:
        return Keys.NUM_8;
    case KEY_9:
        return Keys.NUM_9;
    case KEY_A:
        return Keys.A;
    case KEY_B:
        return Keys.B;
    case KEY_C:
        return Keys.C;
    case KEY_D:
        return Keys.D;
    case KEY_E:
        return Keys.E;
    case KEY_F:
        return Keys.F;
    case KEY_G:
        return Keys.G;
    case KEY_H:
        return Keys.H;
    case KEY_I:
        return Keys.I;
    case KEY_J:
        return Keys.J;
    case KEY_K:
        return Keys.K;
    case KEY_L:
        return Keys.L;
    case KEY_M:
        return Keys.M;
    case KEY_N:
        return Keys.N;
    case KEY_O:
        return Keys.O;
    case KEY_P:
        return Keys.P;
    case KEY_Q:
        return Keys.Q;
    case KEY_R:
        return Keys.R;
    case KEY_S:
        return Keys.S;
    case KEY_T:
        return Keys.T;
    case KEY_U:
        return Keys.U;
    case KEY_V:
        return Keys.V;
    case KEY_W:
        return Keys.W;
    case KEY_X:
        return Keys.X;
    case KEY_Y:
        return Keys.Y;
    case KEY_Z:
        return Keys.Z;
    case KEY_LEFT_WINDOW_KEY:
        return Keys.UNKNOWN; // FIXME
    case KEY_RIGHT_WINDOW_KEY:
        return Keys.UNKNOWN; // FIXME
    // case KEY_SELECT_KEY: return Keys.SELECT_KEY;
    case KEY_NUMPAD0:
        return Keys.NUMPAD_0;
    case KEY_NUMPAD1:
        return Keys.NUMPAD_1;
    case KEY_NUMPAD2:
        return Keys.NUMPAD_2;
    case KEY_NUMPAD3:
        return Keys.NUMPAD_3;
    case KEY_NUMPAD4:
        return Keys.NUMPAD_4;
    case KEY_NUMPAD5:
        return Keys.NUMPAD_5;
    case KEY_NUMPAD6:
        return Keys.NUMPAD_6;
    case KEY_NUMPAD7:
        return Keys.NUMPAD_7;
    case KEY_NUMPAD8:
        return Keys.NUMPAD_8;
    case KEY_NUMPAD9:
        return Keys.NUMPAD_9;
    case KEY_MULTIPLY:
        return Keys.UNKNOWN; // FIXME
    case KEY_ADD:
        return Keys.PLUS;
    case KEY_SUBTRACT:
        return Keys.MINUS;
    case KEY_DECIMAL_POINT_KEY:
        return Keys.PERIOD;
    case KEY_DIVIDE:
        return Keys.UNKNOWN; // FIXME
    case KEY_F1:
        return Keys.F1;
    case KEY_F2:
        return Keys.F2;
    case KEY_F3:
        return Keys.F3;
    case KEY_F4:
        return Keys.F4;
    case KEY_F5:
        return Keys.F5;
    case KEY_F6:
        return Keys.F6;
    case KEY_F7:
        return Keys.F7;
    case KEY_F8:
        return Keys.F8;
    case KEY_F9:
        return Keys.F9;
    case KEY_F10:
        return Keys.F10;
    case KEY_F11:
        return Keys.F11;
    case KEY_F12:
        return Keys.F12;
    case KEY_NUM_LOCK:
        return Keys.NUM;
    case KEY_SCROLL_LOCK:
        return Keys.UNKNOWN; // FIXME
    case KEY_SEMICOLON:
        return Keys.SEMICOLON;
    case KEY_EQUALS:
        return Keys.EQUALS;
    case KEY_COMMA:
        return Keys.COMMA;
    case KEY_DASH:
        return Keys.MINUS;
    case KEY_PERIOD:
        return Keys.PERIOD;
    case KEY_FORWARD_SLASH:
        return Keys.SLASH;
    case KEY_GRAVE_ACCENT:
        return Keys.UNKNOWN; // FIXME
    case KEY_OPEN_BRACKET:
        return Keys.LEFT_BRACKET;
    case KEY_BACKSLASH:
        return Keys.BACKSLASH;
    case KEY_CLOSE_BRACKET:
        return Keys.RIGHT_BRACKET;
    case KEY_SINGLE_QUOTE:
        return Keys.APOSTROPHE;
    default:
        return Keys.UNKNOWN;
    }
}