Получение исключения при снятии ключа - PullRequest
0 голосов
/ 24 апреля 2019

В моем перспективном плагине я написал некоторый код для отсоединения клавиши F2. Но активация bindingManager или сохранение активной привязки выдает это исключение:

Cannot get the parent identifier from an undefined scheme. org.eclipse.ui.defaultAcceleratorConfiguration

Мой код:

ContextManager contextManager = new ContextManager(); 

BindingManager bindingManager = new BindingManager(contextManager, 
                            commandManager); 
IBindingService bindingService = (IBindingService) PlatformUI.
getWorkbench().getAdapter(IBindingService.class);
Binding[] bindings = bindingService.getBindings();
for (Binding binding : bindings) {
             if(binding.getTriggerSequence().format().equals("F2"))
            {
                            KeyBinding keyBinding = (KeyBinding) binding;
                            String contextId = binding.getContextId();
                            String schemeId = binding.getSchemeId();
                            KeySequence triggerSequence = keyBinding.getKeySequence();

                            ParameterizedCommand parameterizedCommand = binding
                            .getParameterizedCommand();
                            Command command = parameterizedCommand.getCommand();
                            KeyBinding deleteBinding = new KeyBinding(triggerSequence,
                                                            null, schemeId, contextId, null, null, null,
                                                            Binding.USER);

                            bindingManager.addBinding(deleteBinding);
}
}
try {

bindingManager 
.setActiveScheme(bindingService.getActiveScheme());
} catch (final NotDefinedException e) {
throw new Error(
"Error"); //$NON-NLS-1$
}
try {
bindingService.savePreferences(
bindingManager .getActiveScheme(), bindingManager 
.getBindings());
} catch (IOException e) {
e.printStackTrace();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...