кража фокуса из вида в приложении Rcp затмения - PullRequest
1 голос
/ 06 июля 2010

Я работаю над приложением Eclipse RCP и хочу украсть фокус из встроенного редактора (который на самом деле является просто причудливым текстовым полем) в представлении при запуске действия с панели инструментов того же представления. Это действие работает с командой. Этот редактор / текстовое поле автоматически теряет фокус, когда само представление теряет фокус. Итак, как я могу украсть фокус с точки зрения?

1 Ответ

0 голосов
/ 19 октября 2010

Я не уверен, что это именно то, что вы ищете, но мы используем такой код при закрытии редактора или закрытии приложения, чтобы принудительно завершить редактирование выдающегося поля пользовательского интерфейса пользователя, чтобы проверить и смоделировать обновление происходит до того, как проверяется грязное состояние (чтобы мы не потеряли молча выдающиеся правки пользователей).

    final IWorkbench workbench = PlatformUI.getWorkbench();
    if (workbench == null)
        return;

    final Display display = workbench.getDisplay();
    if (display == null)
        return;

    final Control focusControl = display.getFocusControl();
    if (focusControl == null)
        return;

    focusControl.notifyListeners(SWT.FocusOut, null);

Я не знаю, является ли это "лучшим" или "правильным" способом, но он работает, по крайней мере, в 3.2.

...