Example usage for org.eclipse.jface.bindings.keys KeyBinding getContextId

List of usage examples for org.eclipse.jface.bindings.keys KeyBinding getContextId

Introduction

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

Prototype

public final String getContextId() 

Source Link

Document

Returns the identifier of the context in which this binding applies.

Usage

From source file:org.csstudio.iter.css.product.util.WorkbenchUtil.java

License:Open Source License

/**
 * Unbind F11 KeyBinding of org.eclipse.debug.ui to avoid conflict with
 * org.csstudio.opibuilder plugin//  w w w .jav  a2  s . com
 */
public static void unbindDebugLast() {
    IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench()
            .getAdapter(IBindingService.class);
    BindingManager localChangeManager = new BindingManager(new ContextManager(), new CommandManager());

    final Scheme[] definedSchemes = bindingService.getDefinedSchemes();
    try {
        for (int i = 0; i < definedSchemes.length; i++) {
            final Scheme scheme = definedSchemes[i];
            final Scheme copy = localChangeManager.getScheme(scheme.getId());
            copy.define(scheme.getName(), scheme.getDescription(), scheme.getParentId());
        }
        localChangeManager.setActiveScheme(bindingService.getActiveScheme());
    } catch (final NotDefinedException e) {
        e.printStackTrace();
    }
    localChangeManager.setLocale(bindingService.getLocale());
    localChangeManager.setPlatform(bindingService.getPlatform());
    localChangeManager.setBindings(bindingService.getBindings());

    KeyBinding opiFullScreenBinding = null;
    int nbBinding = 0;

    Binding[] bArray = bindingService.getBindings();
    if (bArray != null) {
        for (Binding binding : bArray) {
            if (binding instanceof KeyBinding) {
                KeyBinding kBind = (KeyBinding) binding;
                if (kBind.getParameterizedCommand() != null
                        && kBind.getParameterizedCommand().getCommand() != null) {
                    if ("org.eclipse.debug.ui.commands.DebugLast"
                            .equals(kBind.getParameterizedCommand().getCommand().getId())) {
                        KeySequence triggerSequence = kBind.getKeySequence();
                        String contextId = kBind.getContextId();
                        String schemeId = kBind.getSchemeId();
                        KeyBinding deleteBinding = new KeyBinding(triggerSequence, null, schemeId, contextId,
                                null, null, null, Binding.USER);
                        localChangeManager.addBinding(deleteBinding);
                        try {
                            bindingService.savePreferences(localChangeManager.getActiveScheme(),
                                    localChangeManager.getBindings());
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    } else if ("org.csstudio.opibuilder.actions.fullscreen"
                            .equals(kBind.getParameterizedCommand().getCommand().getId())) {
                        if (opiFullScreenBinding == null)
                            opiFullScreenBinding = kBind;
                        nbBinding++;
                    }
                }
            }
        }
    }

    // Rebind OPI runner full screen command if it exists only one time
    if (nbBinding == 1) {
        KeySequence triggerSequence = opiFullScreenBinding.getKeySequence();
        String contextId = opiFullScreenBinding.getContextId();
        String schemeId = opiFullScreenBinding.getSchemeId();

        KeyBinding updateBinding = new KeyBinding(triggerSequence,
                opiFullScreenBinding.getParameterizedCommand(), schemeId, contextId, null, null, null,
                Binding.USER);
        localChangeManager.addBinding(updateBinding);
        try {
            bindingService.savePreferences(localChangeManager.getActiveScheme(),
                    localChangeManager.getBindings());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

From source file:org.eclipse.oomph.setup.workbench.impl.KeyBindingTaskImpl.java

License:Open Source License

private boolean isEqual(KeyBindingContext keyBindingContext, KeyBinding keyBinding) throws Exception {
    if (!ObjectUtil.equals(keyBinding.getSchemeId(), getScheme())) {
        return false;
    }/*w  ww . j  a v  a  2  s. c  om*/

    if (!ObjectUtil.equals(keyBinding.getContextId(), keyBindingContext.getID())) {
        return false;
    }

    if (!ObjectUtil.equals(keyBinding.getPlatform(), getPlatform())) {
        return false;
    }

    if (!ObjectUtil.equals(keyBinding.getLocale(), getLocale())) {
        return false;
    }

    KeySequence keySequence = KeySequence.getInstance(getKeys());
    if (!ObjectUtil.equals(keyBinding.getKeySequence(), keySequence)) {
        return false;
    }

    ParameterizedCommand parameterizedCommand = keyBinding.getParameterizedCommand();
    if (parameterizedCommand == null || !ObjectUtil.equals(parameterizedCommand.getId(), getCommand())) {
        return false;
    }

    if (!ObjectUtil.equals(parameterizedCommand.getParameterMap(), getCommandParameterMap())) {
        return false;
    }

    return true;
}

From source file:org.eclipse.ui.internal.keys.KeysPreferencePage.java

License:Open Source License

/**
 * Handles the selection event on the table containing the bindings for a
 * particular command. This updates the context and trigger sequence based
 * on the selected binding.//from   www  . jav  a2  s. com
 */
private final void selectedTableBindingsForCommand() {
    final int selection = tableBindingsForCommand.getSelectionIndex();
    if ((selection >= 0) && (selection < tableBindingsForCommand.getItemCount())) {
        final TableItem item = tableBindingsForCommand.getItem(selection);
        final KeyBinding binding = (KeyBinding) item.getData(ITEM_DATA_KEY);
        setContextId(binding.getContextId());
        setKeySequence(binding.getKeySequence());
    }

    update();
}

From source file:org.eclipse.ui.internal.keys.model.BindingElement.java

License:Open Source License

/**
 * @param binding//from www. j  av a  2s  .  c o  m
 * @param contextModel
 */
public void fill(KeyBinding binding, ContextModel contextModel) {
    setCommandInfo(binding.getParameterizedCommand());
    setTrigger(binding.getTriggerSequence());
    setContext((ContextElement) contextModel.getContextIdToElement().get(binding.getContextId()));
    setUserDelta(new Integer(binding.getType()));
    setModelObject(binding);
}

From source file:org.eclipse.ui.internal.keys.model.BindingModel.java

License:Open Source License

/**
 * Removes the <code>bindingElement</code> binding.
 * /*from   w  ww.j  a va  2  s. c  om*/
 * @param bindingElement
 */
public void remove(BindingElement bindingElement) {
    if (bindingElement == null || !(bindingElement.getModelObject() instanceof Binding)) {
        return;
    }
    KeyBinding keyBinding = (KeyBinding) bindingElement.getModelObject();
    if (keyBinding.getType() == Binding.USER) {
        bindingManager.removeBinding(keyBinding);
    } else {
        KeySequence keySequence = keyBinding.getKeySequence();

        // Add the delete binding
        bindingManager.addBinding(new KeyBinding(keySequence, null, keyBinding.getSchemeId(),
                keyBinding.getContextId(), null, null, null, Binding.USER));

        // Unbind any conflicts affected by the delete binding
        ConflictModel conflictModel = controller.getConflictModel();
        conflictModel.updateConflictsFor(bindingElement);
        Collection conflictsList = conflictModel.getConflicts();
        if (conflictsList != null) {
            Object[] conflicts = conflictsList.toArray();
            for (int i = 0; i < conflicts.length; i++) {
                BindingElement be = (BindingElement) conflicts[i];
                if (be == bindingElement) {
                    continue;
                }
                Object modelObject = be.getModelObject();
                if (modelObject instanceof Binding) {
                    Binding binding = (Binding) modelObject;
                    if (binding.getType() != Binding.SYSTEM) {
                        continue;
                    }
                    ParameterizedCommand pCommand = binding.getParameterizedCommand();
                    be.fill(pCommand);
                    commandToElement.put(pCommand, be);
                }
            }
        }
    }
    ParameterizedCommand parameterizedCommand = keyBinding.getParameterizedCommand();
    bindingElement.fill(parameterizedCommand);
    commandToElement.put(parameterizedCommand, bindingElement);
    controller.firePropertyChange(this, PROP_CONFLICT_ELEMENT_MAP, null, bindingElement);
}

From source file:org.eclipse.ui.internal.keys.model.KeyController.java

License:Open Source License

private void updateBindingContext(ContextElement context) {
    if (context == null) {
        return;//  w  w w  .  j av  a 2 s. c  om
    }
    BindingElement activeBinding = (BindingElement) bindingModel.getSelectedElement();
    if (activeBinding == null) {
        return;
    }
    String activeSchemeId = fSchemeModel.getSelectedElement().getId();
    Object obj = activeBinding.getModelObject();
    if (obj instanceof KeyBinding) {
        KeyBinding keyBinding = (KeyBinding) obj;
        if (!keyBinding.getContextId().equals(context.getId())) {
            final KeyBinding binding = new KeyBinding(keyBinding.getKeySequence(),
                    keyBinding.getParameterizedCommand(), activeSchemeId, context.getId(), null, null, null,
                    Binding.USER);
            if (keyBinding.getType() == Binding.USER) {
                fBindingManager.removeBinding(keyBinding);
            } else {
                fBindingManager.addBinding(new KeyBinding(keyBinding.getKeySequence(), null,
                        keyBinding.getSchemeId(), keyBinding.getContextId(), null, null, null, Binding.USER));
            }
            bindingModel.getBindingToElement().remove(activeBinding.getModelObject());

            fBindingManager.addBinding(binding);
            activeBinding.fill(binding, contextModel);
            bindingModel.getBindingToElement().put(binding, activeBinding);
        }
    }
}

From source file:org.eclipse.ui.internal.keys.model.KeyController.java

License:Open Source License

/**
 * @param activeBinding/*from ww w . ja va  2 s.  c o  m*/
 * @param oldSequence
 * @param keySequence
 */
public void updateTrigger(BindingElement activeBinding, KeySequence oldSequence, KeySequence keySequence) {
    if (activeBinding == null) {
        return;
    }
    Object obj = activeBinding.getModelObject();
    if (obj instanceof KeyBinding) {
        KeyBinding keyBinding = (KeyBinding) obj;
        if (!keyBinding.getKeySequence().equals(keySequence)) {
            if (keySequence != null && !keySequence.isEmpty()) {
                String activeSchemeId = fSchemeModel.getSelectedElement().getId();
                ModelElement selectedElement = contextModel.getSelectedElement();
                String activeContextId = selectedElement == null ? IContextService.CONTEXT_ID_WINDOW
                        : selectedElement.getId();
                final KeyBinding binding = new KeyBinding(keySequence, keyBinding.getParameterizedCommand(),
                        activeSchemeId, activeContextId, null, null, null, Binding.USER);
                Map bindingToElement = bindingModel.getBindingToElement();
                bindingToElement.remove(keyBinding);
                if (keyBinding.getType() == Binding.USER) {
                    fBindingManager.removeBinding(keyBinding);
                } else {
                    fBindingManager.addBinding(
                            new KeyBinding(keyBinding.getKeySequence(), null, keyBinding.getSchemeId(),
                                    keyBinding.getContextId(), null, null, null, Binding.USER));
                }

                fBindingManager.addBinding(binding);
                activeBinding.fill(binding, contextModel);
                bindingModel.getBindingToElement().put(binding, activeBinding);

                // Remove binding for any system conflicts

                bindingModel.setSelectedElement(activeBinding);
            } else {
                bindingModel.getBindingToElement().remove(keyBinding);
                if (keyBinding.getType() == Binding.USER) {
                    fBindingManager.removeBinding(keyBinding);
                } else {
                    fBindingManager.addBinding(
                            new KeyBinding(keyBinding.getKeySequence(), null, keyBinding.getSchemeId(),
                                    keyBinding.getContextId(), null, null, null, Binding.USER));
                }
                activeBinding.fill(keyBinding.getParameterizedCommand());
            }
        }
    } else if (obj instanceof ParameterizedCommand) {
        ParameterizedCommand cmd = (ParameterizedCommand) obj;
        if (keySequence != null && !keySequence.isEmpty()) {
            String activeSchemeId = fSchemeModel.getSelectedElement().getId();
            ModelElement selectedElement = contextModel.getSelectedElement();
            String activeContextId = selectedElement == null ? IContextService.CONTEXT_ID_WINDOW
                    : selectedElement.getId();
            final KeyBinding binding = new KeyBinding(keySequence, cmd, activeSchemeId, activeContextId, null,
                    null, null, Binding.USER);
            fBindingManager.addBinding(binding);
            activeBinding.fill(binding, contextModel);
            bindingModel.getBindingToElement().put(binding, activeBinding);
        }
    }
}