我认为 Eclipse RCP 中的编辑器有默认的 SAVE 和 CANCEL 按钮。我们如何让这些按钮出现在编辑器上。
我认为这些按钮默认情况下是不可见的,并且可能需要重写某些超类方法以使 SAVE CANCEL 按钮出现在编辑器上。我记得听说过这样的事情。(虽然我可能错了)
无论如何,我们如何实现这一目标?(PS:我不是在寻找自定义 SWT 按钮并将其命名为“SAVE”。我正在寻找与编辑器关联的默认 SAVE 按钮(如果有这样的东西))。
我认为 Eclipse RCP 中的编辑器有默认的 SAVE 和 CANCEL 按钮。我们如何让这些按钮出现在编辑器上。
我认为这些按钮默认情况下是不可见的,并且可能需要重写某些超类方法以使 SAVE CANCEL 按钮出现在编辑器上。我记得听说过这样的事情。(虽然我可能错了)
无论如何,我们如何实现这一目标?(PS:我不是在寻找自定义 SWT 按钮并将其命名为“SAVE”。我正在寻找与编辑器关联的默认 SAVE 按钮(如果有这样的东西))。
这些按钮与您的编辑器没有直接关系。
你必须,如那里所述):
添加将 commandId 设置为标准命令 ID 的菜单贡献,IWorkbenchActionDefinitionIds
例如org.eclipse.ui.file.save
在其中创建一个命令ApplicationActionBarAdvisor.makeActions
并注册它。
:
protected void makeActions(final IWorkbenchWindow window) {
// Creates the actions and registers them.
// Registering is needed to ensure that key bindings work.
// The corresponding commands keybindings are defined in the plugin.xml
// file.
// Registering also provides automatic disposal of the actions when
// the window is closed.
saveAction = ActionFactory.SAVE.create(window);
register(saveAction);
}
Editor
并实现isDirty()
,setDirty()
和clean()
方法。2013 年 2 月更新,来自用户 sd:
注意:在基于 Indigo R2 (3.7.2) 的 RCPsaveAction
中ActionBarContributor
不再需要添加 。添加,添加到编辑器的方法
中就足够了,并覆盖如下menuContribution
getCommandStack().markSaveLocation()
doSave()
commandStackChanged()
public void commandStackChanged(EventObject event) {
firePropertyChange(PROP_DIRTY);
super.commandStackChanged(event);
}