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

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

Introduction

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

Prototype

public final ParameterizedCommand getParameterizedCommand() 

Source Link

Document

Returns the parameterized command to 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/*  www .j a  v a2s .  c  om*/
 */
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;
    }/*ww w . ja v a2  s. co  m*/

    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.model.BindingElement.java

License:Open Source License

/**
 * @param binding//from w  w w . j  ava2  s  . 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

/**
 * Refreshes the binding model to be in sync with the {@link BindingManager}.
 * /*from w  ww .  j av a  2s .  c  o  m*/
 * @param contextModel
 */
public void refresh(ContextModel contextModel) {
    Set cmdsForBindings = new HashSet();
    Collection activeManagerBindings = bindingManager.getActiveBindingsDisregardingContextFlat();

    // add any bindings that we don't already have.
    Iterator i = activeManagerBindings.iterator();
    while (i.hasNext()) {
        KeyBinding b = (KeyBinding) i.next();
        ParameterizedCommand parameterizedCommand = b.getParameterizedCommand();
        cmdsForBindings.add(parameterizedCommand);
        if (!bindingToElement.containsKey(b)) {
            BindingElement be = new BindingElement(controller);
            be.init(b, contextModel);
            be.setParent(this);
            bindingElements.add(be);
            bindingToElement.put(b, be);
            controller.firePropertyChange(this, PROP_BINDING_ADD, null, be);

            if (commandToElement.containsKey(parameterizedCommand)
                    && be.getUserDelta().intValue() == Binding.SYSTEM) {
                Object remove = commandToElement.remove(parameterizedCommand);
                bindingElements.remove(remove);
                controller.firePropertyChange(this, PROP_BINDING_REMOVE, null, remove);
            }
        }
    }

    // remove bindings that shouldn't be there
    i = bindingElements.iterator();
    while (i.hasNext()) {
        BindingElement be = (BindingElement) i.next();
        Object obj = be.getModelObject();
        if (obj instanceof Binding) {
            Binding b = (Binding) obj;
            if (!activeManagerBindings.contains(b)) {
                ParameterizedCommand cmd = b.getParameterizedCommand();
                if (cmd != null) {
                    commandToElement.remove(cmd);
                }
                bindingToElement.remove(b);
                i.remove();
                controller.firePropertyChange(this, PROP_BINDING_REMOVE, null, be);
            }
        } else {
            cmdsForBindings.add(obj);
        }
    }

    // If we removed the last binding for a parameterized command,
    // put back the CMD
    i = allParameterizedCommands.iterator();
    while (i.hasNext()) {
        ParameterizedCommand cmd = (ParameterizedCommand) i.next();
        if (!cmdsForBindings.contains(cmd)) {
            BindingElement be = new BindingElement(controller);
            be.init(cmd);
            be.setParent(this);
            bindingElements.add(be);
            commandToElement.put(cmd, be);
            controller.firePropertyChange(this, PROP_BINDING_ADD, null, be);
        }
    }
}

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

License:Open Source License

/**
 * Removes the <code>bindingElement</code> binding.
 * //from  ww w.j ava 2 s .  co  m
 * @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;/*  ww  w . j a v a 2  s .c  o  m*/
    }
    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. jav  a2  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);
        }
    }
}