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 也无法发现。
由于我有几个Perspective
s,每个都会在主工具栏上有自己的贡献。这是否意味着我有义务使用plugin.xml
扩展无处不在?
TL;DR: Workbench coolbar actions including
Save and actions from other
Perspective
s. 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(使用前将#替换为@)