Я создаю плагин для Eclipse и хочу использовать встроенное действие Eclipse «Отменить» (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);