Example usage for org.eclipse.jface.bindings.keys KeySequence getKeyStrokes

List of usage examples for org.eclipse.jface.bindings.keys KeySequence getKeyStrokes

Introduction

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

Prototype

public final KeyStroke[] getKeyStrokes() 

Source Link

Document

Returns the list of key strokes for this key sequence.

Usage

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;
}