我有一个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正在做的事情(我在上下文服务上添加了一个监听器来跟踪这个)并且我想摆脱它。我想控制我的上下文的激活和停用。有什么想法吗?
答案 0 :(得分:1)
我假设您正在使用IContextService
来激活上下文。
如果您使用以下内容获取IContextService
:
getSite().getService(IContextService.class);
然后内容服务特定于您的部分,并在其他部分变为活动状态时停用。
使用
PlatformUI.getWorkbench().getAdapter(IContextService.class);
为您提供工作台上下文服务。在此服务中激活的上下文应对所有部分保持活动状态。