List of usage examples for org.eclipse.jface.bindings.keys IKeyLookup getAlt
int getAlt();
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 www . j av a 2s . 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(); }//from ww w .j a va2 s. co 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 av a 2 s . 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); }