Eclipse:活动上下文以某种方式停用

Eclipse: Active Context somehow deactivated

我有一个 e3 RCP 应用程序。该应用程序由一个工具栏和两个视图组成。左边一个独立的,右边一个容器(经典的两列布局)。

我的应用程序布局按层次顺序排列:

- Perspective
  |- View
  |`- TableViewer
  `- ViewContainer
   `- View2 (multiple)

并且我在plugin.xml中定义了一个上下文:

<extension point="org.eclipse.ui.contexts">
    <context
        id="my.context.MY_ID"
        name="MY_CONTEXT">
        parentId="org.eclipse.ui.contexts.window">
    </context>
</extension>

只要在 TableViewer 中选择了某些内容,我的就会被激活并在视图容器中打开一个特定的视图。 TableViewer中的selection和右边打开的view是相连的。上下文状态应该保持持久,这意味着:要么选择了 TableViewer,要么相应的视图处于活动状态,这也应该打开(或保持)我的上下文的活动状态。但是,当 TableViewer 失去焦点时(例如右侧的视图处于活动状态),上下文将被停用。这不是我以编程方式完成的,这是 eclipse 正在做的事情(我在上下文服务上添加了一个侦听器来跟踪它),我想摆脱它。我想控制上下文的激活和停用。有什么想法吗?

我假设您正在使用 IContextService 激活上下文。

如果您使用类似 IContextService 的方法获得 IContextService

getSite().getService(IContextService.class);

然后内容服务特定于您的部分,当另一部分激活时将被停用。

正在使用

PlatformUI.getWorkbench().getAdapter(IContextService.class);

为您提供 workbench 上下文服务。在此服务中激活的上下文应该对所有部分保持活动状态。