2013-10-10 47 views
1

我正在构建基于3.x的Eclipse RCP应用程序,并且已被轻松合并到4.x中。Eclipse RCP与其他命令比较

我希望将Package for Explorer中的“比较”菜单项添加到我创建的目录视图中。 Eclipse的可用命令中没有这个操作的选项。通过一些Eclipse代码,他们完成的方式是通过org.eclipse.ui.popupMenus扩展使用objectContribution,但已被弃用。

这是否意味着我将不得不实施与“从零开始”的比较?

回答

0

现在,您不需要为popupMenu扩展点做出贡献,而是可以使用指向popupMenu位置的位置URI来提供菜单扩展点。

See this StackOverflow post to get a better explanation of the solution。至于实际实现Compare for each命令的代码,如果你有权访问旧的代码,你可能可以重新使用菜单事件的处理,只要你将它连接到新的菜单事件。

+0

我知道如何对弹出式菜单作出贡献。我的问题更多的是在包浏览器的上下文菜单中可用的“Compare With Each”菜单项。 – nbz

+0

如果它在那里,那么你只需要找到实现监听上下文菜单的菜单侦听器的代码,并找到调度请求的地方。该接收处理程序具有代码,并且可能会提供您正在寻找的大部分内容;然而,如果你甚至需要稍微“不同于有什么”的东西,那么在你看这个处理程序之前,你可能无法确定什么是可重用的。可能是一个简单的调整,可能不是。 –

+0

该操作位于Eclipse的内部类之一中。所以这意味着我可能不得不编写自己的编辑器比较。 – nbz

1

看比较动作org.eclipse.compare.internal.CompareAction它使用CompareUI.openCompareEditorOnPage这是一个定义的API,因此可以使用。使用的比较编辑器输入是org.eclipse.compare.internal.ResourceCompareInput这是内部的,但似乎没有使用任何其他内部类 - 所以你可以编写自己的版本ResourceCompareInput没有太多的麻烦。