2

Eclipse RCP のエディターに関連付けられたデフォルトの SAVE ボタンと CANCEL ボタンがあると思います。これらのボタンをエディターに表示するにはどうすればよいですか。

これらのボタンはデフォルトでは非表示であり、SAVE CANCEL ボタンをエディターに表示するためにオーバーライドする必要があるスーパークラス メソッドがある可能性があります。そんな話を聞いた記憶があります。(間違っているかもしれませんが)

いずれにせよ、どうすればこれを達成できますか? (PS: カスタム SWT ボタンを探しているわけではなく、「SAVE」という名前を付けています。エディタに関連付けられているデフォルトの SAVE ボタンを探しています (そのようなものがある場合))。

4

1 に答える 1

3

ボタンはエディターとは直接関係ありません。
そこで説明されているように、あなたはしなければなりません

  • commandId を標準のコマンド ID に設定してメニュー コントリビューションを追加しますIWorkbenchActionDefinitionIdsorg.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) に基づく RCP では、 に を追加するsaveAction必要ActionBarContributorがなくなりました。を追加し、エディタのメソッドに追加し、次のようにオーバーライド
するだけで十分です。menuContributiongetCommandStack().markSaveLocation()doSave()commandStackChanged()

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