use of org.eclipse.e4.ui.bindings.EBindingService in project eclipse.platform.ui by eclipse-platform.
the class BindingLookupTest method testPartialMatch.
@Test
public void testPartialMatch() {
ECommandService cs = workbenchContext.get(ECommandService.class);
ParameterizedCommand cmd = cs.createCommand(TEST_ID1, null);
EBindingService wBS = workbenchContext.get(EBindingService.class);
TriggerSequence seq2 = wBS.createSequence("ALT+5 X");
Binding db2 = createDefaultBinding(wBS, seq2, cmd, ID_DIALOG_AND_WINDOW);
wBS.activateBinding(db2);
IEclipseContext c1 = workbenchContext.createChild("c1");
c1.activate();
EBindingService bs1 = c1.get(EBindingService.class);
TriggerSequence seq = bs1.createSequence("CTRL+5 T");
Binding db = createDefaultBinding(wBS, seq, cmd, ID_DIALOG_AND_WINDOW);
bs1.activateBinding(db);
TriggerSequence partialMatch = bs1.createSequence("CTRL+5");
TriggerSequence partialNoMatch = bs1.createSequence("CTRL+8");
assertFalse(bs1.isPartialMatch(partialNoMatch));
assertTrue(bs1.isPartialMatch(partialMatch));
}
use of org.eclipse.e4.ui.bindings.EBindingService in project eclipse.platform.ui by eclipse-platform.
the class BindingLookupTest method testFindBindingInParent_Bug562263.
@Test
public void testFindBindingInParent_Bug562263() {
EContextService es = workbenchContext.get(EContextService.class);
es.deactivateContext(ID_DIALOG_AND_WINDOW);
es.activateContext(ID_WINDOW);
ECommandService cs = workbenchContext.get(ECommandService.class);
ParameterizedCommand cmd = cs.createCommand(TEST_ID1, null);
EBindingService bs = workbenchContext.get(EBindingService.class);
TriggerSequence seq = bs.createSequence("CTRL+5 T");
Binding db = createDefaultBinding(bs, seq, cmd, ID_DIALOG_AND_WINDOW);
bs.activateBinding(db);
Binding perfectMatch = bs.getPerfectMatch(seq);
assertEquals(cmd, perfectMatch.getParameterizedCommand());
bs.deactivateBinding(db);
assertNull(bs.getPerfectMatch(seq));
bs.activateBinding(db);
assertEquals(cmd, bs.getPerfectMatch(seq).getParameterizedCommand());
}
use of org.eclipse.e4.ui.bindings.EBindingService in project eclipse.platform.ui by eclipse-platform.
the class KeyDispatcherTest method defineCommands.
private void defineCommands(IEclipseContext context) {
ECommandService cs = workbenchContext.get(ECommandService.class);
Category category = cs.defineCategory(TEST_CAT1, "CAT1", null);
cs.defineCommand(TEST_ID1, "ID1", null, category, null);
cs.defineCommand(TEST_ID2, "ID2", null, category, null);
ParameterizedCommand cmd = cs.createCommand(TEST_ID1, null);
EHandlerService hs = workbenchContext.get(EHandlerService.class);
handler = new CallHandler();
hs.activateHandler(TEST_ID1, handler);
EBindingService bs = workbenchContext.get(EBindingService.class);
TriggerSequence seq = bs.createSequence("CTRL+A");
Binding db = createDefaultBinding(bs, seq, cmd);
bs.activateBinding(db);
ParameterizedCommand cmd2 = cs.createCommand(TEST_ID2, null);
twoStrokeHandler = new CallHandler();
hs.activateHandler(TEST_ID2, twoStrokeHandler);
TriggerSequence twoKeys = bs.createSequence("CTRL+5 CTRL+A");
db = createDefaultBinding(bs, twoKeys, cmd2);
bs.activateBinding(db);
}
use of org.eclipse.e4.ui.bindings.EBindingService in project eclipse.platform.ui by eclipse-platform.
the class BindingPersistenceTest method testAboutBindingEmacs.
@Test
public void testAboutBindingEmacs() throws Exception {
if (Util.isMac()) {
return;
}
final Scheme emacsScheme = bindingService.getScheme(EMACS_SCHEME_ID);
assertNotNull(emacsScheme);
final Binding[] originalBindings = bindingService.getBindings();
bindingService.savePreferences(emacsScheme, originalBindings);
ParameterizedCommand findAndReplaceCmd = new ParameterizedCommand(commandService.getCommand(IWorkbenchCommandConstants.EDIT_FIND_AND_REPLACE), null);
ParameterizedCommand aboutCmd = new ParameterizedCommand(commandService.getCommand(IWorkbenchCommandConstants.HELP_ABOUT), null);
final KeySequence keyAltR = KeySequence.getInstance("ALT+R");
final KeySequence keyAltCtrlShiftI = KeySequence.getInstance("ALT+CTRL+SHIFT+I");
final Binding findAndReplaceBinding = bindingService.getPerfectMatch(keyAltR);
assertNotNull(findAndReplaceBinding);
assertEquals(findAndReplaceCmd, findAndReplaceBinding.getParameterizedCommand());
assertEquals(EMACS_SCHEME_ID, findAndReplaceBinding.getSchemeId());
EBindingService ebs = PlatformUI.getWorkbench().getService(EBindingService.class);
HashMap<String, String> attrs = new HashMap<>();
attrs.put(EBindingService.TYPE_ATTR_TAG, "user");
attrs.put(EBindingService.SCHEME_ID_ATTR_TAG, EMACS_SCHEME_ID);
final Binding localAboutBinding = ebs.createBinding(keyAltR, aboutCmd, IContextService.CONTEXT_ID_WINDOW, attrs);
assertNotNull(localAboutBinding);
assertEquals(Binding.USER, localAboutBinding.getType());
assertEquals(EMACS_SCHEME_ID, localAboutBinding.getSchemeId());
final Binding[] bindings = originalBindings;
Binding[] added = new Binding[bindings.length + 2];
System.arraycopy(bindings, 0, added, 0, bindings.length);
Binding del = new KeyBinding(keyAltR, null, EMACS_SCHEME_ID, IContextService.CONTEXT_ID_WINDOW, null, null, null, Binding.USER);
added[bindings.length] = del;
added[bindings.length + 1] = localAboutBinding;
bindingService.savePreferences(emacsScheme, added);
// the match should be the user binding that we just added
final Binding secondMatch = bindingService.getPerfectMatch(keyAltR);
assertNotNull(secondMatch);
assertEquals(aboutCmd, secondMatch.getParameterizedCommand());
// go back to the defaults
bindingService.savePreferences(emacsScheme, originalBindings);
final Binding thirdMatch = bindingService.getPerfectMatch(keyAltR);
assertNotNull(thirdMatch);
assertEquals(findAndReplaceCmd, thirdMatch.getParameterizedCommand());
// try assigning alt-ctrl-shift-i (no other binding uses this for this
// context) to the 'about' command
final Binding localAboutBinding1 = ebs.createBinding(keyAltCtrlShiftI, aboutCmd, IContextService.CONTEXT_ID_WINDOW, attrs);
assertNotNull(localAboutBinding1);
assertEquals(Binding.USER, localAboutBinding1.getType());
assertEquals(EMACS_SCHEME_ID, localAboutBinding.getSchemeId());
Binding[] added1 = new Binding[bindings.length + 1];
System.arraycopy(bindings, 0, added1, 0, bindings.length);
added1[bindings.length] = localAboutBinding1;
bindingService.savePreferences(emacsScheme, added1);
final Binding fourthMatch = bindingService.getPerfectMatch(keyAltCtrlShiftI);
assertNotNull(fourthMatch);
assertEquals(aboutCmd, fourthMatch.getParameterizedCommand());
assertEquals(EMACS_SCHEME_ID, fourthMatch.getSchemeId());
}
Aggregations