Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse RCP SourceProvider侦听更改_Eclipse_Rcp - Fatal编程技术网

Eclipse RCP SourceProvider侦听更改

Eclipse RCP SourceProvider侦听更改,eclipse,rcp,Eclipse,Rcp,我有一个源提供程序,可以帮助提供启用按钮和菜单项的状态。启用部件工作正常。我的挑战是如何在激活各种编辑器/视图时调用源提供程序 我已经在源提供程序上实现了IPartListener2,但是没有找到一种方法可以让它以通用的方式为所有编辑器和视图注册。getPartService.AddPartListern将注册它,但仅针对特定的工作台部件。此外,在任何部件处于活动状态之前会调用源提供程序的构造函数,因此获取有效部件是无效的 为所有编辑器和视图注册此源提供程序的最佳方式是什么 感谢您阅读我的问题以

我有一个源提供程序,可以帮助提供启用按钮和菜单项的状态。启用部件工作正常。我的挑战是如何在激活各种编辑器/视图时调用源提供程序

我已经在源提供程序上实现了IPartListener2,但是没有找到一种方法可以让它以通用的方式为所有编辑器和视图注册。getPartService.AddPartListern将注册它,但仅针对特定的工作台部件。此外,在任何部件处于活动状态之前会调用源提供程序的构造函数,因此获取有效部件是无效的

为所有编辑器和视图注册此源提供程序的最佳方式是什么

感谢您阅读我的问题以及您可以提供的任何帮助。

使用iWindows侦听器侦听正在激活的工作台窗口:

IWorkbench workbench=PlatformUI.getWorkbench; workbench.addWindowListenerwindowListener; 在侦听器的windowActivated方法中,使用窗口部件服务为窗口添加部件侦听器:

公共无效窗口激活工作台窗口 { window.getPartService.addPartListenerpartListener; }
例如,请参见org.eclipse.jdt.internal.debug.ui.actions.ActionDelegateHelper

@gregg-449,感谢您简短而简洁的回答!它现在工作正常。指向正在工作的Eclipse示例的指针非常有用。