Example usage for org.eclipse.jface.bindings.keys IKeyLookup getCommand

List of usage examples for org.eclipse.jface.bindings.keys IKeyLookup getCommand

Introduction

In this page you can find the example usage for org.eclipse.jface.bindings.keys IKeyLookup getCommand.

Prototype

int getCommand();

Source Link

Document

Returns the integer representation of the COMMAND key.

Usage

From source file:de.xirp.util.XirpKeyFormatter.java

License:Open Source License

/**
 * Separates the modifier keys from each other, and then places
 * them in an array in some sorted order. The sort order is
 * dependent on the type of formatter.//from ww  w  .j a va2s  .c o  m
 * 
 * @see org.eclipse.jface.bindings.keys.formatting.NativeKeyFormatter
 */
@Override
protected int[] sortModifierKeys(final int modifierKeys) {
    final IKeyLookup lookup = KeyLookupFactory.getDefault();
    final String platform = SWT.getPlatform();
    final int[] sortedKeys = new int[4];
    int index = 0;

    if ("win32".equals(platform)) { //$NON-NLS-1$
        if ((modifierKeys & lookup.getCtrl()) != 0) {
            sortedKeys[index++] = lookup.getCtrl();
        }
        if ((modifierKeys & lookup.getAlt()) != 0) {
            sortedKeys[index++] = lookup.getAlt();
        }
        if ((modifierKeys & lookup.getShift()) != 0) {
            sortedKeys[index++] = lookup.getShift();
        }

    } else if ("gtk".equals(platform) || "motif".equals(platform)) { //$NON-NLS-1$ //$NON-NLS-2$
        if ((modifierKeys & lookup.getShift()) != 0) {
            sortedKeys[index++] = lookup.getShift();
        }
        if ((modifierKeys & lookup.getCtrl()) != 0) {
            sortedKeys[index++] = lookup.getCtrl();
        }
        if ((modifierKeys & lookup.getAlt()) != 0) {
            sortedKeys[index++] = lookup.getAlt();
        }

    } else if ("carbon".equals(platform)) { //$NON-NLS-1$
        if ((modifierKeys & lookup.getShift()) != 0) {
            sortedKeys[index++] = lookup.getShift();
        }
        if ((modifierKeys & lookup.getCtrl()) != 0) {
            sortedKeys[index++] = lookup.getCtrl();
        }
        if ((modifierKeys & lookup.getAlt()) != 0) {
            sortedKeys[index++] = lookup.getAlt();
        }
        if ((modifierKeys & lookup.getCommand()) != 0) {
            sortedKeys[index++] = lookup.getCommand();
        }

    }

    return sortedKeys;
}

From source file:org.eclipse.rcptt.tesla.internal.ui.player.SWTKeyboard.java

License:Open Source License

private static int[] sortModifierKeys(final int modifierKeys) {
    final IKeyLookup lookup = KeyLookupFactory.getDefault();
    final int[] sortedKeys = new int[4];
    int index = 0;

    if ((modifierKeys & lookup.getAlt()) != 0) {
        sortedKeys[index++] = lookup.getAlt();
    }// w  ww  .j ava 2s .c o m
    if ((modifierKeys & lookup.getCommand()) != 0) {
        sortedKeys[index++] = lookup.getCommand();
    }
    if ((modifierKeys & lookup.getCtrl()) != 0) {
        sortedKeys[index++] = lookup.getCtrl();
    }
    if ((modifierKeys & lookup.getShift()) != 0) {
        sortedKeys[index++] = lookup.getShift();
    }

    return sortedKeys;
}

From source file:org.eclipse.ui.tests.performance.CommandsPerformanceTest.java

License:Open Source License

/**
 * <p>/*  w  w w.  j  a  va2s. c  o  m*/
 * Sets up a sufficiently complex set of bindings.
 * </p>
 * <p>
 * At the time of writing, Eclipse's key binding set contains about five
 * hundred bindings. Of these, 140 specify platform information, while only
 * 5 specify locale information. About 40 are deletion markers. The deepest
 * point in the context tree is four levels. There are two schemes.
 * </p>
 * <p>
 * The test binding set contains five thousand bindings. About 1400 specify
 * either locale or platform information. Five hundred are deletion markers.
 * The deepest point in the context tree is 40 levels. There are twenty
 * schemes.
 * </p>
 * <p>
 * The depth of the locale and platform tree is the same in both real life
 * and the test case. It is difficult to imagine why the locale list would
 * ever be anything but four elements, or why the platform list would ever
 * be anything but three elements.
 * </p>
 * 
 * @throws NotDefinedException
 *             If something went wrong initializing the active scheme.
 */
protected final void doSetUp() throws NotDefinedException, Exception {
    super.doSetUp();

    /*
     * The constants to use in creating the various objects. The platform
     * locale count must be greater than or equal to the number of deletion
     * markers. Deletion markers are typically created based on the platform
     * or locale.
     */
    final int contextTreeDepth = 40;
    final int schemeDepth = 20;
    final int bindingCount = 5000;
    final int platformLocaleCount = 1400;
    final int deletionMarkers = 500;
    final String currentLocale = Locale.getDefault().toString();
    final String currentPlatform = Util.getWS();

    // Set-up a table of modifier keys.
    final IKeyLookup lookup = KeyLookupFactory.getDefault();
    final int modifierKeys0 = 0;
    final int modifierKeys1 = lookup.getAlt();
    final int modifierKeys2 = lookup.getCommand();
    final int modifierKeys3 = lookup.getCtrl();
    final int modifierKeys4 = lookup.getShift();
    final int modifierKeys5 = lookup.getAlt() | lookup.getCommand();
    final int modifierKeys6 = lookup.getAlt() | lookup.getCtrl();
    final int modifierKeys7 = lookup.getAlt() | lookup.getShift();
    final int modifierKeys8 = lookup.getCommand() | lookup.getCtrl();
    final int modifierKeys9 = lookup.getCommand() | lookup.getShift();
    final int modifierKeys10 = lookup.getCtrl() | lookup.getShift();
    final int modifierKeys11 = lookup.getAlt() | lookup.getCommand() | lookup.getCtrl();
    final int modifierKeys12 = lookup.getAlt() | lookup.getCommand() | lookup.getShift();
    final int modifierKeys13 = lookup.getAlt() | lookup.getCtrl() | lookup.getShift();
    final int modifierKeys14 = lookup.getCommand() | lookup.getCtrl() | lookup.getShift();
    final int modifierKeys15 = lookup.getAlt() | lookup.getCommand() | lookup.getCtrl() | lookup.getShift();
    final int[] modifierKeyTable = { modifierKeys0, modifierKeys1, modifierKeys2, modifierKeys3, modifierKeys4,
            modifierKeys5, modifierKeys6, modifierKeys7, modifierKeys8, modifierKeys9, modifierKeys10,
            modifierKeys11, modifierKeys12, modifierKeys13, modifierKeys14, modifierKeys15 };

    // Initialize the command manager.
    commandManager = new CommandManager();

    // Initialize the contexts.
    contextManager = new ContextManager();
    final List activeContextIds = new ArrayList();
    createContext(contextManager, null, contextTreeDepth, activeContextIds);
    contextManager.setActiveContextIds(new HashSet(activeContextIds));

    // Initialize the schemes.
    bindingManager = new BindingManager(contextManager, commandManager);
    final List schemes = new ArrayList();
    createScheme(bindingManager, null, schemeDepth, schemes);
    bindingManager.setActiveScheme((Scheme) schemes.get(schemes.size() - 1));

    // Create the deletion markers.
    final Binding[] bindings = new Binding[bindingCount];
    for (int i = 0; i < deletionMarkers; i++) {
        /*
         * Set-up the locale and platform. These are based on the numbers
         * given above.
         */
        String locale = null;
        String platform = null;

        if (i < platformLocaleCount) {
            switch (i % 4) {
            case 0:
                locale = currentLocale;
                break;
            case 1:
                platform = currentPlatform;
                break;
            case 2:
                locale = "gibberish";
                break;
            case 3:
                platform = "gibberish";
                break;
            }
        }

        // Build a key sequence.
        final char character = (char) ('A' + (i % 26));
        final int modifierKeys = modifierKeyTable[(i / 26) % modifierKeyTable.length];
        final KeyStroke keyStroke = KeyStroke.getInstance(modifierKeys, character);
        final KeySequence keySequence = KeySequence.getInstance(keyStroke);

        // Build the other parameters.
        final String schemeId = ((Scheme) schemes.get(i % schemes.size())).getId();
        final String contextId = (String) activeContextIds.get(i % activeContextIds.size());
        final int type = (i % 2);

        // Construct the binding.
        final Binding binding = new KeyBinding(keySequence, null, schemeId, contextId, locale, platform, null,
                type);
        bindings[i] = binding;
    }

    /*
     * Now create the regular bindings. By using the same loop structure and
     * resetting the index to zero, we ensure that the deletion markers will
     * actually delete something.
     */
    for (int i = 0; i < bindingCount - deletionMarkers; i++) {
        /*
         * Set-up the locale and platform for those bindings that will not
         * be used to match the above deletion markers. These are based on
         * the numbers given above.
         */
        String locale = null;
        String platform = null;

        if ((i > deletionMarkers) && (i < platformLocaleCount)) {
            switch (i % 4) {
            case 0:
                locale = currentLocale;
                break;
            case 1:
                platform = currentPlatform;
                break;
            case 2:
                locale = "gibberish";
                break;
            case 3:
                platform = "gibberish";
                break;
            }
        }

        // Build a key sequence.
        final char character = (char) ('A' + (i % 26));
        final int modifierKeys = modifierKeyTable[(i / 26) % modifierKeyTable.length];
        final KeyStroke keyStroke = KeyStroke.getInstance(modifierKeys, character);
        final KeySequence keySequence = KeySequence.getInstance(keyStroke);

        // Build the other parameters.
        final String commandId = "command" + i;
        final String schemeId = ((Scheme) schemes.get(i % schemes.size())).getId();
        final String contextId = (String) activeContextIds.get(i % activeContextIds.size());
        final int type = (i % 2);

        // Construct the binding.
        final Command command = commandManager.getCommand(commandId);
        final ParameterizedCommand parameterizedCommand = new ParameterizedCommand(command, null);
        final Binding binding = new KeyBinding(keySequence, parameterizedCommand, schemeId, contextId, locale,
                platform, null, type);
        bindings[i + deletionMarkers] = binding;
    }
    bindingManager.setBindings(bindings);
}

From source file:org.eclipse.xtext.ui.editor.autoedit.AbstractEditStrategy.java

License:Open Source License

private boolean shouldSkipNext(int keyCode) {
    IKeyLookup lookUp = KeyLookupFactory.getDefault();
    return lookUp.getCommand() == keyCode || lookUp.getCtrl() == keyCode;
}