2

我认为 Eclipse RCP 中的编辑器有默认的 SAVE 和 CANCEL 按钮。我们如何让这些按钮出现在编辑器上。

我认为这些按钮默认情况下是不可见的,并且可能需要重写某些超类方法以使 SAVE CANCEL 按钮出现在编辑器上。我记得听说过这样的事情。(虽然我可能错了)

无论如何,我们如何实现这一目标?(PS:我不是在寻找自定义 SWT 按钮并将其命名为“SAVE”。我正在寻找与编辑器关联的默认 SAVE 按钮(如果有这样的东西))。

4

1 回答 1

3

这些按钮与您的编辑器没有直接关系。
你必须,如那里所述)

  • 添加将 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) 的 RCPsaveActionActionBarContributor不再需要添加 。添加,添加到编辑器的方法
中就足够了,并覆盖如下menuContributiongetCommandStack().markSaveLocation()doSave()commandStackChanged()

public void commandStackChanged(EventObject event) {
  firePropertyChange(PROP_DIRTY);
  super.commandStackChanged(event);
}
于 2009-07-20T06:08:05.293 回答