我正在开发一个基于 3.x 构建的 Eclipse RCP 应用程序,并已被软合并到 4.x 中。
我希望将像包资源管理器中的“相互比较”菜单项添加到我创建的目录视图中。Eclipse 的可用命令中没有用于此操作的选项。通过一些 Eclipse 代码,他们所做的方式是通过 org.eclipse.ui.popupMenus 扩展使用 objectContribution,但已被弃用。
这是否意味着我将不得不与“从头开始”进行比较?
我正在开发一个基于 3.x 构建的 Eclipse RCP 应用程序,并已被软合并到 4.x 中。
我希望将像包资源管理器中的“相互比较”菜单项添加到我创建的目录视图中。Eclipse 的可用命令中没有用于此操作的选项。通过一些 Eclipse 代码,他们所做的方式是通过 org.eclipse.ui.popupMenus 扩展使用 objectContribution,但已被弃用。
这是否意味着我将不得不与“从头开始”进行比较?
查看org.eclipse.compare.internal.CompareAction
它使用的比较操作,CompareUI.openCompareEditorOnPage
这是一个已定义的 API,因此可以使用。使用的比较编辑器输入org.eclipse.compare.internal.ResourceCompareInput
是内部的,但似乎没有使用任何其他内部类 - 因此您可以编写自己的版本ResourceCompareInput
而不会有太多麻烦。
现在,您不再为 popupMenu 扩展点做出贡献,而是使用指向 popupMenu 位置的位置 URI 为菜单扩展点做出贡献。
请参阅此 StackOverflow 帖子以获得对解决方案的更好解释。
至于实际实现比较命令的相互比较处理程序的代码,如果您有权访问旧代码,您可能可以重用菜单事件的处理,前提是您将其连接到新菜单事件.