Я создаю подключаемый модуль для Eclipse и хочу использовать встроенное действие Eclipse 'Undo' (org.eclipse.core.commands.operations) всякий раз, когда пользователь нажимает кнопку отмены, связанную с плагин.
В идеале, он просто воспроизводил бы то, что происходит, когда вы нажимаете CTRL + Z, но у меня не получалось имитировать нажатия клавиш.
Я пробовал эти фрагменты кода:
Отмена выполнена в рабочая среда:
IWorkbenchOperationSupport operationSupport = PlatformUI.getWorkbench().getOperationSupport();
IUndoContext context = operationSupport.getUndoContext();
IOperationHistory operationHistory = operationSupport.getOperationHistory();
IStatus status = operationHistory.undo(context, null, null);
Отмена, выполненная в рабочей области:
IWorkbenchOperationSupport operationSupport = PlatformUI.getWorkbench().getOperationSupport();
IUndoContext context= (IUndoContext)ResourcesPlugin.getWorkspace().getAdapter(IUndoContext.class);
IOperationHistory operationHistory = operationSupport.getOperationHistory();
IStatus status = operationHistory.undo(context, null, null);
То, что я затем ищу, аналогично, это, но это не работает:
Отмена выполнена для редактора / документа:
IWorkbenchOperationSupport operationSupport = PlatformUI.getWorkbench().getOperationSupport();
IEditorPart currentEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IUndoContext context = (IUndoContext) currentEditor.getAdapter(IUndoContext.class);
IOperationHistory operationHistory = operationSupport.getOperationHistory();
IStatus status = operationHistory.undo(context, null, null);