public String getColumnText(Object element, int index) { BindingElement bindingElement = ((BindingElement) element); switch (index) { case COMMAND_NAME_COLUMN: {// name String name = bindingElement.getName(); if (name != null && name.endsWith("()")) { name = name.substring(0, name.length() - 2); } return name; } case KEY_SEQUENCE_COLUMN: // keys TriggerSequence seq = bindingElement.getTrigger(); return seq == null ? Util.ZERO_LENGTH_STRING : seq.format(); case CATEGORY_COLUMN: // category String id = bindingElement.getId(); if (id.equalsIgnoreCase("net.heartsome.cat.ts.command.preference")) { return Messages.getString("preferencepage.KeysPreferencePage.toolCategory"); } else if (id.equalsIgnoreCase("org.eclipse.ui.window.lockToolBar")) { return Messages.getString("preferencepage.KeysPreferencePage.toolbarCategory"); } else if (id.equalsIgnoreCase("org.eclipse.ui.window.showKeyAssist")) { return Messages.getString("preferencepage.KeysPreferencePage.helpCategory"); } return bindingElement.getCategory(); } return null; }
public Image getColumnImage(Object element, int index) { BindingElement be = (BindingElement) element; switch (index) { case COMMAND_NAME_COLUMN: final String commandId = be.getId(); final ImageDescriptor imageDescriptor = commandImageService.getImageDescriptor(commandId); if (imageDescriptor == null) { return null; } try { return localResourceManager.createImage(imageDescriptor); } catch (final DeviceResourceException e) { final String message = "Problem retrieving image for a command '" //$NON-NLS-1$ + commandId + '\''; final IStatus status = new Status(IStatus.ERROR, WorkbenchPlugin.PI_WORKBENCH, 0, message, e); WorkbenchPlugin.log(message, status); } return null; } return null; }
@Override protected void setValue(Object element, Object value) { if (column == 1) { // BindingElement activeBinding = (BindingElement) model.getSelectedElement(); BindingElement activeBinding = (BindingElement) element; if (activeBinding != null) { KeySequence keySequence = fKeySequenceText.getKeySequence(); // Bug #2740 if (keySequence == null || !keySequence.toString().endsWith("+")) { activeBinding.setTrigger(keySequence); } } changeBackground(); // isValid(); } }
private void addSetBindingListener() { addPropertyChangeListener(new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { if (event.getSource() == bindingModel && CommonModel.PROP_SELECTED_ELEMENT.equals(event.getProperty())) { BindingElement binding = (BindingElement) event.getNewValue(); // Bug #2740 if (binding == null || binding.getTrigger() == null) { conflictModel.setSelectedElement(null); return; } conflictModel.setSelectedElement(binding); ContextElement context = binding.getContext(); if (context != null) { contextModel.setSelectedElement(context); } } } }); }
private void addSetKeySequenceListener() { addPropertyChangeListener(new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { if (BindingElement.PROP_TRIGGER.equals(event.getProperty())) { // Bug #2740 if (((KeySequence) event.getNewValue()) != null) { if (((KeySequence) event.getNewValue()).toString().endsWith("+")) { return; } else { updateTrigger((BindingElement) event.getSource(), (KeySequence) event.getOldValue(), (KeySequence) event.getNewValue()); } } } } }); }
private ParameterizedCommand getCommand(Object element) { if (element instanceof BindingElement) { Object modelObject = ((BindingElement) element).getModelObject(); if (modelObject instanceof Binding) { return ((Binding) modelObject).getParameterizedCommand(); } else if (modelObject instanceof ParameterizedCommand) { return (ParameterizedCommand) modelObject; } } return null; }
public void init(BindingManager manager, BindingModel model) { bindingManager = manager; bindingModel = model; conflictsMap = new HashMap(); Iterator i = bindingModel.getBindings().iterator(); while (i.hasNext()) { BindingElement be = (BindingElement) i.next(); if (be.getModelObject() instanceof Binding) { updateConflictsFor(be); } } controller.addPropertyChangeListener(new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { if (event.getSource() == ConflictModel2.this && CommonModel.PROP_SELECTED_ELEMENT.equals(event .getProperty())) { if (event.getNewValue() != null) { updateConflictsFor( (BindingElement) event.getOldValue(), (BindingElement) event.getNewValue()); setConflicts((Collection) conflictsMap.get(event .getNewValue())); } else { setConflicts(null); } } else if (BindingModel.PROP_BINDING_REMOVE.equals(event .getProperty())) { updateConflictsFor((BindingElement) event.getOldValue(), (BindingElement) event.getNewValue(), true); } } }); }
private void changeBackground() { for (TreeItem item : viewer.getTree().getItems()) { BindingElement element = (BindingElement) item.getData(); if (element.getConflict()) { item.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_RED)); } else { item.setBackground(null); } } }
@Override protected Object getValue(Object element) { // System.out.println(element); BindingElement bindingElement = ((BindingElement) element); TriggerSequence seq = bindingElement.getTrigger(); return seq == null ? Util.ZERO_LENGTH_STRING : seq.format(); }
public boolean validateConflict() { for (TreeItem item : viewer.getTree().getItems()) { BindingElement element = (BindingElement) item.getData(); if (element.getConflict()) { MessageDialog.openInformation(getShell(), Messages.getString("preferencepage.KeysPreferencePage.msgTitle"), Messages.getString("preferencepage.KeysPreferencePage.msg")); // setValid(false); return false; } } // setValid(true); return true; }
/** * Makes a copy of the * @param element */ public void copy(BindingElement element) { if (element == null || !(element.getModelObject() instanceof Binding)) { return; } BindingElement be = new BindingElement(controller); ParameterizedCommand parameterizedCommand = ((Binding) element.getModelObject()).getParameterizedCommand(); be.init(parameterizedCommand); be.setParent(this); bindingElements.add(be); commandToElement.put(parameterizedCommand, be); controller.firePropertyChange(this, PROP_BINDING_ADD, null, be); setSelectedElement(be); }
public void init(IServiceLocator locator, List<String> lstRemove) { getEventManager().clear(); this.serviceLocator = locator; // filterDupliteBind(); fBindingManager = loadModelBackend(serviceLocator); contextModel = new ContextModel(this); contextModel.init(serviceLocator); fSchemeModel = new SchemeModel(this); fSchemeModel.init(fBindingManager); bindingModel = new BindingModel2(this); bindingModel.init(serviceLocator, fBindingManager, contextModel); HashSet<BindingElement> set = bindingModel.getBindings(); Iterator<BindingElement> iterator = set.iterator(); while (iterator.hasNext()) { BindingElement bindingElement = iterator.next(); if (lstRemove.contains(bindingElement.getId())) { iterator.remove(); } } bindingModel.setBindings(set); Map<Binding, BindingElement> mapBBe = bindingModel.getBindingToElement(); Iterator<Entry<Binding, BindingElement>> it = mapBBe.entrySet().iterator(); while (it.hasNext()) { Entry<Binding, BindingElement> entry = (Entry<Binding, BindingElement>) it.next(); if (lstRemove.contains(entry.getValue().getId())) { it.remove(); } } bindingModel.setBindingToElement(mapBBe); conflictModel = new ConflictModel2(this); conflictModel.init(fBindingManager, bindingModel); addSetContextListener(); addSetBindingListener(); addSetConflictListener(); addSetKeySequenceListener(); addSetSchemeListener(); addSetModelObjectListener(); }
private void addSetModelObjectListener() { addPropertyChangeListener(new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { if (event.getSource() instanceof BindingElement && ModelElement.PROP_MODEL_OBJECT.equals(event.getProperty())) { if (event.getNewValue() != null) { BindingElement element = (BindingElement) event.getSource(); Object oldValue = event.getOldValue(); Object newValue = event.getNewValue(); // Bug #2740 快捷键--快捷键设置问题 if (oldValue instanceof Binding && newValue instanceof Binding) { conflictModel.updateConflictsFor(element, ((Binding) oldValue).getTriggerSequence(), ((Binding) newValue).getTriggerSequence(), false); } else if (oldValue instanceof Binding) { conflictModel.updateConflictsFor(element, ((Binding) oldValue).getTriggerSequence(), null, false); } else if (newValue instanceof Binding) { conflictModel.updateConflictsFor(element, null, ((Binding) newValue).getTriggerSequence(), false); } else { conflictModel.updateConflictsFor(element, false); } ContextElement context = element.getContext(); if (context != null) { contextModel.setSelectedElement(context); } } } } }); }
private void updateBindingContext(ContextElement context) { if (context == null) { return; } 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); } } }