The typical usage pattern is that a client creates one of the concrete operations and executes it using the platform operation history. For example, the following snippet deletes the project "Blort" without deleting its contents, and adds it to the operation history so that it can be undone and redone.
IProject project = getWorkspace().getRoot().getProject("Blort"); // assume that getMonitor() returns a suitable progress monitor project.create(getMonitor()); project.open(getMonitor()); DeleteResourcesOperation op = new DeleteResourcesOperation( new IResource[] { project }, "Delete Project Blort", false); PlatformUI.getWorkbench().getOperationSupport() .getOperationHistory().execute(operation, getMonitor(), null);