Eclipse:Active Context以某种方式停用

时间:2015-04-21 17:20:19

标签: eclipse eclipse-rcp

我有一个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中的选择和右侧打开的视图已连接。上下文状态应该保持持久,意味着:选择TableViewer或者相应的视图处于活动状态,这也应该打开我的上下文的活动状态(或保持它)。但是,当TableViewer失去焦点时(例如右侧的视图处于活动状态),上下文将被停用。这不是由我以编程方式完成的,这是eclipse正在做的事情(我在上下文服务上添加了一个监听器来跟踪这个)并且我想摆脱它。我想控制我的上下文的激活和停用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

如果您使用以下内容获取IContextService

getSite().getService(IContextService.class);

然后内容服务特定于您的部分,并在其他部分变为活动状态时停用。

使用

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

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