Eclipse rcp EclipseRCP:如何使默认保存按钮在编辑器中可见?

Eclipse rcp EclipseRCP:如何使默认保存按钮在编辑器中可见?,eclipse-rcp,Eclipse Rcp,我认为在EclipseRCP中有与编辑器关联的默认保存和取消按钮。如何使这些按钮显示在编辑器上 我认为这些按钮在默认情况下是不可见的,可能有一些超类方法需要被覆盖,以使保存取消按钮显示在编辑器上。 我记得听说过这样的事。(不过我可能错了) 无论如何,我们如何做到这一点?(注:我不是在寻找自定义SWT按钮并将其命名为“保存”。我在寻找与编辑器关联的默认保存按钮(如果有这样的按钮))。这些按钮与您的编辑器没有直接关系。 您必须: 添加commandId设置为标准命令id的菜单贡献,该标准命令id可

我认为在EclipseRCP中有与编辑器关联的默认保存和取消按钮。如何使这些按钮显示在编辑器上

我认为这些按钮在默认情况下是不可见的,可能有一些超类方法需要被覆盖,以使保存取消按钮显示在编辑器上。 我记得听说过这样的事。(不过我可能错了)


无论如何,我们如何做到这一点?(注:我不是在寻找自定义SWT按钮并将其命名为“保存”。我在寻找与编辑器关联的默认保存按钮(如果有这样的按钮))。

这些按钮与您的编辑器没有直接关系。
您必须:

  • 添加commandId设置为标准命令id的菜单贡献,该标准命令id可在org.eclipse.ui.file.save中找到

  • ApplicationActionBarAdvisor.makeActions
    中创建一个命令并注册它

:

  • 编辑器中添加脏标志
    部分并实现
    isDirty()
    setDirty()
    clean()
    方法

2013年2月更新,来自:

注:在基于Indigo R2(3.7.2)的RCP中,不再需要在
ActionBarContributor
中添加
saveAction

只需添加
menuContribution
,将
getCommandStack().markSaveLocation()
添加到编辑器的
doSave()
方法,并覆盖
commandStackChanged()
,如下所示

public void commandStackChanged(EventObject event) {
  firePropertyChange(PROP_DIRTY);
  super.commandStackChanged(event);
}
public void commandStackChanged(EventObject event) {
  firePropertyChange(PROP_DIRTY);
  super.commandStackChanged(event);
}