http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/guide/wrkAdv_undo.htmで説明されている例に従っていました
私のinit()
方法ではEditorPart
/**
* @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
* org.eclipse.ui.IEditorInput)
*/
@Override
public void init(IEditorSite site,IEditorInput input)
throws PartInitException {
...
IWorkbench workbench = getSite().getWorkbenchWindow().getWorkbench();
myUndoContext= workbench.getOperationSupport().getUndoContext();
UndoRedoActionGroup historyActionGroup = new UndoRedoActionGroup(site, myUndoContext, true);
historyActionGroup.fillActionBars(site.getActionBars());
}
...私は私のメソッドに以下を追加しましたEditorPart
IUndoableOperation operation = new MyOperation("My Action");
operation.addContext(myUndoContext);
try {
IStatus status = OperationHistoryFactory.getOperationHistory().execute(operation, null, null);
} catch (ExecutionException e) {
e.printStackTrace();
}
元に戻すアクションを追加できましたが、カスタム エディターで開いたすべてのファイルに元に戻すアクションが追加されることに気付きました。ファイルに変更を加えると、開いている他のすべてのファイルの元に戻す操作が編集メニューに追加されます。現在アクティブなファイルにのみ適用するにはどうすればよいですか?