如何使用Eclipse RCP命令框架使用默认保存操作保存命令?

时间:2010-09-22 13:49:40

标签: eclipse-rcp

Eclipse RCP命令框架旨在将操作框架替换为允许插件向工作台提供UI命令的机制。除了定义新命令外,插件还可以提供默认RCP命令的处理程序,例如“org.eclipse.ui.file.save”(这里的默认命令的完整列表:http://svn2.assembla.com/svn/eclipsecommands/trunk/EclipseCommands/contents/article.html)。

使用默认命令带来了标准键绑定和图标的优点,在某些情况下还具有使用内置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中的处理程序扩展点中添加处理程序定义来为此命令定义处理程序。但是,如果贡献的编辑器实现IEditorPart,则应该可以简单地使用内置的Eclipse保存操作(负责跟踪活动编辑器和脏属性更新),而不是定义新的处理程序。 使用内置保存操作需要哪些进一步的步骤?

1 个答案:

答案 0 :(得分:5)

必须调用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,现在将为任何活动的编辑器调用内置的保存处理程序。