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保存操作(负责跟踪活动编辑器和脏属性更新),而不是定义新的处理程序。 使用内置保存操作需要哪些进一步的步骤?
答案 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,现在将为任何活动的编辑器调用内置的保存处理程序。