我有一个带有许多插件的 Eclipse RCP 应用程序。每个插件都有自己的视角,包括新 View 或共享 View 。 我需要使用插件在原始应用程序的基础上创建一个单独的应用程序。 该应用程序将充当每个插件/视角的权限配置器。
为此,我需要执行以下操作:
- 启动时强制初始化所有插件
- 获取应用程序中的所有透视对象并显示 ID
- 对于每个透视图,获取与该透视图关联的所有 View 并显示其 ID
- 对于每个 View 对象获取所有属性(实际上每个 View 都将从一个特殊的基类继承:例如 SpecialView)
基于这一特殊角色(管理员)将为所有其他角色配置权限(应显示哪个透视图、在每个透视图中将显示哪些 View 、在每个 View 上哪些命令将处于 Activity 状态等)。
我对上述要求有疑问:
- 如何在启动时强制所有插件初始化(Eclipse 使用延迟激活)?
- 如何获取透视对象(不是
IPerspectiveDescriptor
)和 View 对象?
最佳答案
要强制激活,您可以在 plugin.xml
编辑器中设置一个标志,前提是该插件是单例。
要查找 View 和透视图,您可以循环扩展注册表,提供插件的正确 ID 以及 View 和透视图扩展点:
IExtensionRegistry er = Platform.getExtensionRegistry();
IExtensionPoint ep = er.getExtensionPoint(plug-in_id, extensionId);
IExtensions[] ext = ep.getExtensions();
一旦有了扩展,您还可以拥有实现它的类等等。
关于java - Eclipse RCP 并通过透视图和 View 进行迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4185558/