Eclipse Kepler RCP主工具栏操作

时间:2013-10-25 16:21:09

标签: eclipse-rcp action toolbar eclipse-kepler workbench

谷歌 是我最好的朋友,但我得到的信息太分散且非常不清楚。没有简明的教程描述我的需求。

我想在我的RCP应用程序的主工具栏中添加操作,但我需要通过各种方式彻底解释这一点。但由于这是StackOverflow,我会把这些问题写下来,希望答案能够做到。

  • 添加操作的方式是什么?通过ActionBarAdvisor或通过plugin.xml

  • 可以使用plugin.xml将操作添加到主工具栏吗?

  • 通过扩展程序添加操作有多少步骤? (handlerscommandsmenuContribution等。)

  • 哪个是动作实施的最佳父级? org.eclipse.jface.action.Actionorg.eclipse.ui.menus.WorkbenchWindowControlContribution?甚至是org.eclipse.ui.commands.AbstractHandler

  • 工作台特定的操作(保存撤消重做等)怎么办?这些是如何添加的?

  • 在Eclipse Kepler IDE中,酷吧看起来很漂亮。你甚至可以移动工具栏。实施的方式如何?用插件间谍无法找到答案。

  • 由于我有几个Perspective,每个都会在主工具栏上有自己的贡献。这是否意味着我有义务在任何地方使用plugin.xml扩展名?

<小时/> TL; DR :工作台冷却栏操作,包括保存和其他Perspective的操作。怎么样? (actionSets extensions ==已弃用)。

1 个答案:

答案 0 :(得分:2)

真正的新方法是使用纯e4 RCP,它使用带有命令和处理程序的新应用程序模型! (但e4不支持很多现有代码)。在e4中,菜单和工具栏在应用程序模型中定义。命令和处理程序的使用方式与传统代码类似(但处理程序的实现方式不同)。

对于Eclipse 3样式,您发现存在混乱或做事方式。 Eclipse 4.3确实弃用了一些最旧的(现在标记在plugin.xml中)。

如果您正在编写使用自己的ActionBarAdvisor的RCP,那么您可以在那里定义工具栏项目。或者您可以在plugin.xml中为各个插件定义它们。两种方法都很好。 Eclipse本身定义了顾问程序中的核心操作,添加了插件,在plugin.xmls中定义了更多。

应在顾问程序中创建需要由多个部分(例如编辑者)处理的保存等操作,然后使用RetargetAction。这允许每个单独的部分使用全局定义的动作来连接其自己的动作。这也可以通过更接近e4风格的commands和多个handlers来完成。

org.eclipse.ui.menus现在是对菜单和工具栏做出贡献的主要扩展点(忽略所有已弃用的部分)。这确实迫使您使用commandshandlers

Eclipse操作栏顾问是org.eclipse.ui.internal.ide.WorkbenchActionBuilder,尽管它很大,但它可能会有所帮助。

我认为Kepler中的酷吧是使用新的e4应用程序模型构建的,并使用一些棘手的CSS进行样式化。