Как отключить поведение KEY-ENTER в Eclipse RCP PreferencePage

в моем приложении у меня есть несколько страниц предпочтений. В некоторых из них пользователь должен отредактировать несколько элементов. Если пользователь использует ключ-ключ Enter -KEY, весь Диалог настроек закрывается, вызванный тем фактом, что кнопка OK имеет фокус.

Итак, как я могу отключить это поведение?

Я могу настроить фокус на любом элементе страницы, но нажатие Enter заставляет закрыть диалоговое окно.

1
nl ja de
вы решили свою проблему? Я столкнулся точно так же.
добавлено автор CaiNiaoCoder, источник

2 ответы

Расширьте диалоговое окно по умолчанию и переопределите следующий метод.

@Override
protected void createButtonsForButtonBar(Composite parent) {
   //Its the same as super.createButtonsForButtonBar(), but makes no default buttons by sending false.
    createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false);
    createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
}
0
добавлено
Это не решило мою проблему. Я не использую ни одного экземпляра диалога. Вместо этого я использую страницу предпочтений (org.eclipse.jface.preference.PreferencePage). Нет способа перезапуска поведения по умолчанию для кнопок ...
добавлено автор WildDogSmith, источник

Вы можете использовать этот код для целевого виджета

widget.addListener(SWT.Traverse, new Listener() {
    public void handleEvent(Event e) {
    if (e.detail == SWT.TRAVERSE_RETURN)
        e.doit = false;
    }
});
0
добавлено
Хотя этот код может ответить на вопрос, было бы лучше объяснить, как он решает проблему, не вводя других и почему ее использовать. Ответы только на код не полезны в долгосрочной перспективе.
добавлено автор JAL, источник
ОК. Это будет полезно: этот прослушиватель трасс используется для отключения нажатия клавиши [enter], когда пользователи хотят активировать кнопку [OK] по умолчанию в диалоговом окне.
добавлено автор Yan, источник
IDE и редакторы — русскоговорящее сообщество
IDE и редакторы — русскоговорящее сообщество
393 участник(ов)

Общаемся, сравниваем и помогаем друг другу решать задачи с продуктами JetBrains, VS Code, Atom, vim, Emacs, Sublime и т.д. Всё в одном месте, ведь каждый из них хорош по своему. См. также: @js_ru, @typescript_ru, @react_js, @nodejs_ru, @javascript_jobs