Java 对org.eclipse.ui.internal.*类的限制

Java 对org.eclipse.ui.internal.*类的限制,java,eclipse,eclipse-rcp,Java,Eclipse,Eclipse Rcp,我们正在开发一个建模环境作为Eclipse的插件。在此环境中,用户应该可以修改提供的透视图之一,即在Coolbar、菜单栏和视图中隐藏/显示项目。当您不开发整个RCP应用程序,而只是开发一个插件时,似乎很难修改可见的Coolbar-/MenuItems。 我能想到的唯一解决方案是在Java构建路径中添加一个访问规则,使org.eclipse.ui.internal.*包可用,然后使用CoolbarManager/MenuManager访问项目,如以下示例所示: WorkbenchWindow w

我们正在开发一个建模环境作为Eclipse的插件。在此环境中,用户应该可以修改提供的透视图之一,即在Coolbar、菜单栏和视图中隐藏/显示项目。当您不开发整个RCP应用程序,而只是开发一个插件时,似乎很难修改可见的Coolbar-/MenuItems。 我能想到的唯一解决方案是在Java构建路径中添加一个访问规则,使org.eclipse.ui.internal.*包可用,然后使用CoolbarManager/MenuManager访问项目,如以下示例所示:

WorkbenchWindow workbenchWin = (WorkbenchWindow)PlatformUI.getWorkbench().getActiveWorkbenchWindow();
ICoolBarManager coolbarManager = workbenchWin.getCoolBarManager2();
IContributionItem[] items = coolbarManager.getItems();
for(IContributionItem item : items) {
    item.setVisible(false);
}           
但是,添加此访问规则,然后在每次调用这些包时都取消“限制”警告,这似乎有点脏

因此,我的问题是:为什么这些软件包受到限制,有没有更好的方法

谢谢,
Leo

对限制进行了描述,使用“自定义透视图”中的选项可以显示/隐藏许多菜单项。@greg-449感谢您的链接。因此,不建议使用内部类。你知道有什么更好的办法解决这个问题吗?根据底层的eCore模型,透视图应该通过源代码进行定制。您可以查看
org.eclipse.ui.activities
扩展点,它允许您使用模式打开/关闭菜单项和其他内容。请参阅各种现有的SO问题。不幸的是,在我们的案例中,活动不是一个合适的解决方案,因为我们有几十个auf项目,应该单独显示/隐藏。这将导致几十种不同的活动,并因此将plugin.xml搞得一团糟