Eclipse rcp 如何将EclipseRCP命令框架Save命令与默认的Save操作一起使用?

Eclipse rcp 如何将EclipseRCP命令框架Save命令与默认的Save操作一起使用?,eclipse-rcp,Eclipse Rcp,EclipseRCP命令框架旨在取代action框架,作为允许插件向工作台贡献UI命令的机制。除了定义新命令外,插件还可以为默认RCP命令(如“org.eclipse.ui.file.save”)提供处理程序(默认命令的完整列表如下:) 使用默认命令带来了标准键绑定和图标的优点,在某些情况下还可以使用内置的Eclipse操作 例如,可以使用plugin.xml中的以下代码段将默认编辑器保存命令添加到文件菜单: <extension point="org.eclipse.ui.menus"&

EclipseRCP命令框架旨在取代action框架,作为允许插件向工作台贡献UI命令的机制。除了定义新命令外,插件还可以为默认RCP命令(如“org.eclipse.ui.file.save”)提供处理程序(默认命令的完整列表如下:)

使用默认命令带来了标准键绑定和图标的优点,在某些情况下还可以使用内置的Eclipse操作

例如,可以使用plugin.xml中的以下代码段将默认编辑器保存命令添加到文件菜单:

<extension point="org.eclipse.ui.menus">
  <menuContribution locationURI="menu:file">
    <command commandId="org.eclipse.ui.file.save"
             style="push">
    </command>
  </menuContribution>
</extension>

然后,可以通过在plugin.xml的handlers扩展点中添加处理程序定义来定义此命令的处理程序。但是,如果所提供的编辑器实现了IEditorPart,那么应该可以简单地使用内置的Eclipse保存操作(它负责跟踪活动编辑器和脏属性更新),而不是定义新的处理程序。
使用内置保存操作还需要哪些步骤?

需要调用ActionBarAdvisor.register()以使保存操作可用。例如:

public class MyActionBarAdvisor extends ActionBarAdvisor {
  public MyActionBarAdvisor(IActionBarConfigurer configurer) {
    super(configurer);
  }
  protected void makeActions(final IWorkbenchWindow window) {
    register(ActionFactory.SAVE.create(window));
  }
}

考虑到问题中plugin.xml的添加,现在将为任何活动编辑器调用内置的保存处理程序。

ActionBarAdvisor仅在创建RCP应用程序时使用。如果您正在为eclipse编写插件。。。WorkbenchActionBuilder类已经为您完成了这项工作。