从eclipse rcp app中的视图中窃取焦点

时间:2010-07-06 14:04:55

标签: java eclipse-rcp

我正在开发一个Eclipse RCP应用程序,当我从同一视图的工具栏启动一个动作时,我想从视图中的嵌入式编辑器(实际上只是一个奇特的文本字段)中窃取焦点。该操作适用于命令。当视图本身失去焦点时,此编辑器/文本字段会自动失去焦点。那么如何从视角中窃取焦点呢?

1 个答案:

答案 0 :(得分:0)

我不确定这是否是您正在寻找的,但我们在关闭编辑器或关闭应用程序以“强制完成”用户的优秀UI字段编辑时使用这样的代码,以便验证和模型更新发生在脏状态被检查之前(这样我们就不会默默地“丢失”用户的未完成编辑)。

    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中。