List of usage examples for org.eclipse.jface.bindings.keys KeySequence getKeyStrokes
public final KeyStroke[] getKeyStrokes()
From source file:com.aptana.scripting.keybindings.internal.KeybindingsManager.java
License:Open Source License
private void loadbindings() { resetState();//from w w w . j a v a 2s . c om // Collect unique key sequences uniqueKeySequences.clear(); uniqueKeySequencesPrefixes.clear(); // Filter to commands with bindings IModelFilter filter = new IModelFilter() { public boolean include(AbstractElement element) { boolean result = false; if (element instanceof CommandElement) { CommandElement node = (CommandElement) element; String[] bindings = node.getKeyBindings(); result = (bindings != null && bindings.length > 0); } return result; } }; // Get all commands with bindings List<CommandElement> commands = bundleManager.getExecutableCommands(filter); for (CommandElement commandElement : commands) { // Get key sequences KeySequence[] keySequences = commandElement.getKeySequences(); if (keySequences != null && keySequences.length > 0) { // Add to the set for (KeySequence keySequence : keySequences) { boolean added = uniqueKeySequences.add(keySequence); if (added && keySequence.getKeyStrokes().length > 1) { // Collect prefixes - used to determine prefix matching of key sequences TriggerSequence[] prefixes = keySequence.getPrefixes(); for (TriggerSequence triggerSequence : prefixes) { KeySequence prefixKeySequence = (KeySequence) triggerSequence; if (prefixKeySequence.getKeyStrokes().length > 0) { uniqueKeySequencesPrefixes.add(prefixKeySequence); } } } } } } }
From source file:com.aptana.scripting.ui.internal.KeybindingsManager.java
License:Open Source License
private void loadbindings() { resetState();/*from w w w. jav a 2 s . c o m*/ // Collect unique key sequences uniqueKeySequences.clear(); uniqueKeySequencesPrefixes.clear(); // Filter to commands with bindings IModelFilter filter = new IModelFilter() { public boolean include(AbstractElement element) { boolean result = false; if (element instanceof CommandElement) { CommandElement node = (CommandElement) element; String[] bindings = node.getKeyBindings(); result = (bindings != null && bindings.length > 0); } return result; } }; // Get all commands with bindings List<CommandElement> commands = bundleManager.getExecutableCommands(filter); for (CommandElement commandElement : commands) { // Get key sequences KeySequence[] keySequences = KeyBindingUtil.getKeySequences(commandElement); if (keySequences != null && keySequences.length > 0) { // Add to the set for (KeySequence keySequence : keySequences) { boolean added = uniqueKeySequences.add(keySequence); if (added && keySequence.getKeyStrokes().length > 1) { // Collect prefixes - used to determine prefix matching of key sequences TriggerSequence[] prefixes = keySequence.getPrefixes(); for (TriggerSequence triggerSequence : prefixes) { KeySequence prefixKeySequence = (KeySequence) triggerSequence; if (prefixKeySequence.getKeyStrokes().length > 0) { uniqueKeySequencesPrefixes.add(prefixKeySequence); } } } } } } }
From source file:com.aptana.shared_core.bindings.KeyBindingHelper.java
License:Open Source License
public static boolean matchesKeybinding(int keyCode, int stateMask, KeySequence keySequence) { KeyStroke[] keyStrokes = keySequence.getKeyStrokes(); for (KeyStroke keyStroke : keyStrokes) { if (keyStroke.getNaturalKey() == keyCode && ((keyStroke.getModifierKeys() & stateMask) != 0 || keyStroke.getModifierKeys() == stateMask)) { return true; }/* w ww. j a va 2s . co m*/ } return false; }
From source file:com.aptana.ui.keybinding.KeyBindingHelper.java
License:Open Source License
private static boolean internalMatchesKeybinding(int keyCode, int stateMask, TriggerSequence seq) { KeySequence keySequence = (KeySequence) seq; KeyStroke[] keyStrokes = keySequence.getKeyStrokes(); if (keyStrokes.length > 1) { return false; // Only handling one step binding... the code below does not support things as "CTRL+X R" for // redo. }/* w ww. ja v a 2s. c o m*/ for (KeyStroke keyStroke : keyStrokes) { if (keyStroke.getNaturalKey() == keyCode && keyStroke.getModifierKeys() == stateMask) { return true; } } return false; }
From source file:com.archimatetool.editor.diagram.actions.FullScreenAction.java
License:Open Source License
/** * Add a Key binding mapped to an Action */// w w w.j a v a 2s. co m private void addKeyBinding(ActionRegistry registry, IBindingService service, ActionFactory actionFactory) { KeySequence seq = (KeySequence) service.getBestActiveBindingFor(actionFactory.getCommandId()); if (seq != null && seq.getKeyStrokes().length > 0) { KeyStroke ks = seq.getKeyStrokes()[0]; keyBindings.add(new KeyBinding(ks.getModifierKeys(), Character.toLowerCase(ks.getNaturalKey()), registry.getAction(actionFactory.getId()))); } }
From source file:com.google.eclipse.elt.emulator.core.EditActionAccelerators.java
License:Open Source License
private void addAccelerator(String commandId) { KeySequence keySequence = bindingFor(commandId); if (keySequence == null) { return;//from w ww.ja v a 2s . c om } KeyStroke[] keyStrokes = keySequence.getKeyStrokes(); if (keyStrokes.length != 0) { int accelerator = convertKeyStrokeToAccelerator(keyStrokes[0]); commandIdsByAccelerator.put(new Integer(accelerator), commandId); } }
From source file:com.mulgasoft.emacsplus.commands.KbdMacroBindHandler.java
License:Open Source License
/** * Get state to handle prompt for key binding * //from ww w .j av a2s . c o m * @return binding prompt state */ private IMinibufferState bindState(final String name) { return new IMinibufferState() { public String getMinibufferPrefix() { return BINDING_PREFIX; } public int run(ITextEditor editor) { miniTransform(new BindingMinibuffer(KbdMacroBindHandler.this), editor, null); return NO_OFFSET; } public boolean executeResult(ITextEditor editor, Object minibufferResult) { boolean result = true; if (minibufferResult != null) { IBindingResult bindingR = (IBindingResult) minibufferResult; String keyString = bindingR.getKeyString(); KeySequence trigger = null; KeyStroke[] keys = null; if (bindingR == null || (trigger = bindingR.getTrigger()) == null) { // no binding present asyncShowMessage(editor, String.format(CMD_NO_RESULT, keyString) + CMD_NO_BINDING, true); } else if ((keys = trigger.getKeyStrokes()).length > 0 && keys[keys.length - 1].getModifierKeys() != 0) { // binding ends with a modifier key if (bindingR.getKeyBinding() != null && (IEmacsPlusCommandDefinitionIds.KEYBOARD_QUIT .equals(bindingR.getKeyBinding().getParameterizedCommand().getId()))) { // clear status area and process ^G interrupt EmacsPlusUtils.clearMessage(editor); beep(); } else { // report bad binding present asyncShowMessage(editor, KBD_BINDING_ERROR, true); } } else if (bindingR.getKeyBinding() != null) { // conflicting binding present transitionState(editor, bindingR); } else if (bindingR.getKeyString().length() == 1) { // single character was entered, check for C-x C-k <key> binding conflict IBindingResult ibr = getBinding(editor, bindingR.getKeyString().charAt(0)); if (ibr != null) { if (ibr.getKeyBinding() != null) { transitionState(editor, ibr); } else { addBinding(editor, ibr, name); // good to go } } else { asyncShowMessage(editor, String.format(ABORT, bindingR.getKeyString()), true); } } else { addBinding(editor, bindingR, name); // good to go } } return result; } private void transitionState(ITextEditor editor, IBindingResult ibr) { // conflicting binding present mbState = yesnoState(ibr, name); mbState.run(editor); } }; }
From source file:com.mulgasoft.emacsplus.EmacsPlusActivation.java
License:Open Source License
/** * Check if the key sequence is either a prefix sequence or has multiple bindings * (not necessarily conflicts)// w ww .j a va 2s .com * * @param bs * @param bindings * @param trigger * @return true if condition is detected */ private boolean hasVariants(BindingService bs, Map<TriggerSequence, Collection<Binding>> bindings, KeySequence trigger) { boolean result = bs.isPartialMatch(trigger); if (!result) { Collection<Binding> binds = bindings.get(KeySequence.getInstance(trigger.getKeyStrokes())); result = (binds != null && binds.size() > 1); } return result; }
From source file:io.usethesource.impulse.editor.OutlineInformationControl.java
License:Open Source License
private KeyAdapter getKeyAdapter() { if (fKeyAdapter == null) { fKeyAdapter = new KeyAdapter() { public void keyPressed(KeyEvent e) { int accelerator = SWTKeySupport.convertEventToUnmodifiedAccelerator(e); KeySequence keySequence = KeySequence .getInstance(SWTKeySupport.convertAcceleratorToKeyStroke(accelerator)); KeyStroke[] strokes = keySequence.getKeyStrokes(); for (int i = 0; i < strokes.length; i++) { // HACK Hard-wired code for detecting Ctrl-O... if ((strokes[i].getModifierKeys() & SWT.CTRL) != 0 && strokes[i].getNaturalKey() == 'O') { e.doit = false;//from w ww .j av a 2 s.c o m toggleShowInheritedMembers(); return; } } // KeySequence[] sequences= new KeySequence[0]; // getInvokingCommandKeySequences(); // RMF 6/1/2006 - disabled since impl used deprecated API // if (sequences == null) // return; // for(int i= 0; i < sequences.length; i++) { // if (sequences[i].equals(keySequence)) { // e.doit= false; // toggleShowInheritedMembers(); // return; // } // } } }; } return fKeyAdapter; }
From source file:org.eclipse.ui.internal.handlers.CommandLegacyActionWrapper.java
License:Open Source License
public final int getAccelerator() { final String commandId = getActionDefinitionId(); final IBindingService bindingService = (IBindingService) serviceLocator.getService(IBindingService.class); final TriggerSequence triggerSequence = bindingService.getBestActiveBindingFor(commandId); if (triggerSequence instanceof KeySequence) { final KeySequence keySequence = (KeySequence) triggerSequence; final KeyStroke[] keyStrokes = keySequence.getKeyStrokes(); if (keyStrokes.length == 1) { final KeyStroke keyStroke = keyStrokes[0]; return keyStroke.getModifierKeys() | keyStroke.getNaturalKey(); }/* w ww .ja v a 2 s . c om*/ } return 0; }