List of usage examples for org.eclipse.jface.bindings.keys KeyBinding getParameterizedCommand
public final ParameterizedCommand getParameterizedCommand()
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); } } }