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