2010-11-15 76 views
1

我有一个带有许多插件的Eclipse RCP应用程序。每个插件都有自己的视角,新视图或共享视图。 我需要创建一个基于原始插件的独立应用程序。 此应用程序将充当每个插件/透视图的权限配置器。Eclipse RCP和遍历透视和视图

要做到这一点,我需要做到以下几点:所有的插件在

  • 力初始化启动
  • 得到应用中的所有观点对象和显示的ID
  • 每个角度获取与视角相关的所有视图并显示其ID
  • 对于每个视图对象获取所有属性(每个视图实际上都将从一个特殊的基础视图继承:例如SpecialView)

基于一个特殊角色(管理员)将为所有其他角色(应该显示哪个透视图,每个透视图中将显示哪些视图,每个视图中哪些命令将被激活等)配置权限。

我有关于上述要求的问题:

  • 如何在启动时强制所有插件初始化(Eclipse中使用lazy激活)?
  • 如何获得透视对象(而不是IPerspectiveDescriptor)和查看对象?

回答

0

要强制激活,您可以在plugin.xml编辑器中设置一个标志,前提是插件是Singleton。

要查找的意见,你可以循环扩展注册表的观点,提供插件的正确ID和观点和视角的扩展点:

IExtensionRegistry er = Platform.getExtensionRegistry(); 
IExtensionPoint ep = er.getExtensionPoint(plug-in_id, extensionId); 
IExtensions[] ext = ep.getExtensions(); 

一旦你的扩展,你可以有还有实施它的班级等等。

+0

嗨。谢谢你的答案。我试过了,但它看起来像你的例子中的ep(IExtensionPoint)只包含Eclipse扩展。我已经激活所有插件后使用调试器。 – 2010-11-16 13:01:45

+0

如果您想查找必须循环浏览“org.eclipse.ui.view”扩展点的扩展的视图,例如IExtensionPoint ep = er.getExtensionPoint(“org.eclipse.ui.views”); ep.getExtensions();在这个数组中你可以找到RCP中所有视图的配置参数。在我Insatnce我发现:com.collabnet.subversion.merge [15] com.instantiations.designer.core [29] org.deved.antlride.debug.ui [121] org.deved.antlride。 ui [129]而不只是org.eclipse。*视图 – pbanfi 2010-11-16 15:11:09

+0

嗨。再次感谢你。我会尝试你的解决方案。我需要首先获得透视对象,我可以访问视图对象的形式(我已经完成了)。 – 2010-11-17 08:17:06