/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.ide.util.input; import elemental.events.KeyboardEvent.KeyCode; /** * Support mac keys * * @author Evgen Vidolob */ public class MackeyMapUtil { public static final String ESCAPE = "\u238B"; public static final String TAB = "\u21E5"; public static final String TAB_BACK = "\u21E4"; public static final String CAPS_LOCK = "\u21EA"; public static final String SHIFT = "\u21E7"; public static final String CONTROL = "\u2303"; public static final String OPTION = "\u2325"; public static final String APPLE = "\uF8FF"; public static final String COMMAND = "\u2318"; public static final String SPACE = "\u2423"; public static final String RETURN = "\u23CE"; public static final String BACKSPACE = "\u232B"; public static final String DELETE = "\u2326"; public static final String HOME = "\u2196"; public static final String END = "\u2198"; public static final String PAGE_UP = "\u21DE"; public static final String PAGE_DOWN = "\u21DF"; public static final String UP = "\u2191"; public static final String DOWN = "\u2193"; public static final String LEFT = "\u2190"; public static final String RIGHT = "\u2192"; public static final String CLEAR = "\u2327"; public static final String NUMBER_LOCK = "\u21ED"; public static final String ENTER = "\u2324"; public static final String EJECT = "\u23CF"; public static final String POWER3 = "\u233D"; public static final String NUM_PAD = "\u2328"; public static String getModifiersText(int modifiers) { StringBuilder buf = new StringBuilder(); if ((modifiers & ModifierKeys.CTRL) != 0) buf.append(CONTROL); if ((modifiers & ModifierKeys.ALT) != 0) buf.append(OPTION); if ((modifiers & ModifierKeys.SHIFT) != 0) buf.append(SHIFT); if ((modifiers & ModifierKeys.ACTION) != 0) buf.append(COMMAND); return buf.toString(); } public static String getKeyText(int code) { switch (code) { case KeyCode.BACKSPACE: return BACKSPACE; case KeyCode.ESC: return ESCAPE; case KeyCode.CAPS_LOCK: return CAPS_LOCK; case KeyCode.TAB: return TAB; case KeyCode.SPACE: return SPACE; case KeyCode.DELETE: return DELETE; case KeyCode.HOME: return HOME; case KeyCode.END: return END; case KeyCode.PAGE_UP: return PAGE_UP; case KeyCode.PAGE_DOWN: return PAGE_DOWN; case KeyCode.UP: return UP; case KeyCode.DOWN: return DOWN; case KeyCode.LEFT: return LEFT; case KeyCode.RIGHT: return RIGHT; case KeyCode.ENTER: return RETURN; case 0: return "fn"; } return KeyCodeMap.getKeyText(code); } public static String getKeyStrokeText(CharCodeWithModifiers keyStroke) { final String modifiers = getModifiersText(keyStroke.getModifiers()); final String key = getKeyText(keyStroke.getCharCode()); return modifiers + key; } }