Eclipse Kepler RCP 主工具栏操作

2023-12-06

Google is我最好的朋友,但我得到的信息太分散而且很不清楚。没有简明的教程来描述我的需求。

我想向我的 RCP 应用程序的主工具栏添加操作,但我需要彻底解释执行此操作的每种方法。但由于这是 StackOverflow,我会立即写下这些问题,并希望答案能够解决。

  • 哪一个是new and old添加动作的方式?通过ActionBarAdvisor or via plugin.xml?

  • 是否可以将操作添加到主工具栏ONLY using plugin.xml?

  • 通过扩展添加操作需要多少步骤? (handlers, commands, menuContribution, etc.)

  • 哪一个是执行行动的最佳父级?org.eclipse.jface.action.Action? org.eclipse.ui.menus.WorkbenchWindowControlContribution?甚至org.eclipse.ui.commands.AbstractHandler?

  • 工作台特定的操作怎么样(Save, Undo, RedoETC。)?这些是怎么添加的呢?

  • 在 Eclipse Kepler IDE 中,coolbar 看起来很漂亮。您甚至可以移动工具栏。这是如何实施的?即使使用 Plug-in Spy 也无法发现。

  • 由于我有几个Perspectives,每个都会在主工具栏上有自己的贡献。这是否意味着我有义务使用plugin.xml扩展无处不在?


TL;DR: Workbench coolbar actions including Save and actions from other Perspectives. How? (actionSets extensions == deprecated).

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

对于 Eclipse 3 风格,正如您所发现的,存在混乱或做事方式。 Eclipse 4.3 确实弃用了一些最古老的(现在已在plugin.xml).

如果您正在编写一个使用自己的 RCPActionBarAdvisor然后您可以在那里定义您的工具栏项目。或者您可以在中定义它们plugin.xml对于单独的插件。两种方法都很好。 Eclipse 本身在顾问程序中定义了核心操作,并在其plugin.xml 中定义了更多附加插件。

诸如此类的行动Save需要由多个部分(例如编辑器)处理的内容应在顾问程序中创建并使用RetargetAction。这允许每个单独的部分将其自己的操作与全局定义的操作挂钩。这也可以通过以下方式完成commands和多个handlers更接近e4风格。

org.eclipse.ui.menus现在是用于菜单和工具栏的主要扩展点(忽略所有已弃用的部分)。这确实迫使你使用commands and handlers.

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eclipse Kepler RCP 主工具栏操作 的相关文章

随机推荐