【问题标题】:Eclipse Kepler RCP Main Toolbar ActionsEclipse Kepler RCP 主工具栏操作
【发布时间】:2013-11-04 20:52:27
【问题描述】:

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

我想向我的 RCP 应用程序的主工具栏添加操作,但我需要彻底解释执行此操作的所有方法。但由于这是 StackOverflow,所以我会把脑海中浮现的问题写下来,并希望答案能够做到。

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

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

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

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

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

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

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


TL;DR:Workbench 酷栏操作,包括 Save 和来自其他 Perspectives 的操作。如何? (actionSets 扩展 == 已弃用)。

【问题讨论】:

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


    【解决方案1】:

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

    对于 Eclipse 3 风格,正如您所发现的那样,有一些杂乱无章的处理方式。 Eclipse 4.3 确实弃用了一些最旧的(现在在 plugin.xml 中标记)。

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

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

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

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

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

    【讨论】:

    • 将整个应用程序迁移到纯 e4 是不值得的,因为这需要一些时间。目前它使用已弃用的actionSetsviewActions 和其他旧的东西,因此特别是在 Windows 上导致非常烦人的视觉错误(在 OSX 上少一点)。您对org.eclipse.ui.menus 扩展有何看法?是否可以方便地替换上述内容?鉴于您的 e4 经验。
    • 迁移到纯 e4 是很困难的,尤其是如果您使用任何 org.eclipse.ui.xx 插件或任何依赖于 IWorkbench 的东西。仅对新应用程序真正有用(或者像我一样,您有很多可用时间)。
    • 再次被您保存。 :-) 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 2010-09-14
    相关资源
    最近更新 更多