public interface IAdvancedUndoableOperation2
IAdvancedUndoableOperation2 defines a method for computing the validity of
executing an operation before attempting to execute it. It also defines a way
for clients to specify that computing status should be done quietly, without
consulting the user. This interface is useful when implementing
IOperationApprover2
, or any other object that performs validation of
the undo history. It also allows operations to specify whether they should be
run in the UI thread.
Modifier and Type | Method and Description |
---|---|
IStatus |
computeExecutionStatus(IProgressMonitor monitor)
Return a status indicating the projected outcome of executing the
receiver.
|
boolean |
runInBackground()
Return a boolean that instructs whether the operation should be executed,
undone, or redone in a background thread.
|
void |
setQuietCompute(boolean quiet)
Set a boolean that instructs whether the computation of the receiver's
execution, undo, or redo status should quietly compute status without
consulting or prompting the user.
|
IStatus computeExecutionStatus(IProgressMonitor monitor) throws ExecutionException
IUndoableOperation.canExecute()
. It is not called by
the operation history, but instead is used by clients (such as
implementers of IOperationApprover2
) who wish to perform
advanced validation of an operation before attempting to execute it.
If the result of this method is the discovery that an operation can in
fact not be executed, then the operation is expected to correctly answer
false
on subsequent calls to
IUndoableOperation.canExecute()
.monitor
- the progress monitor (or null
) to use for
reporting progress to the user while computing the validity.OK
if the execute can
successfully be performed, and ERROR
if it cannot.
Any other severity is assumed to represent an ambiguous state.ExecutionException
- if an exception occurs while computing the validity.void setQuietCompute(boolean quiet)
false
.
This flag should only be set to true
while the execution,
undo, or redo status computations are being performed in the background,
and should be restored to false
when complete.
If the status computation methods typically need to consult the user in
order to determine the severity of a particular situation, the least
severe status that could be chosen by the user should be returned when
this flag is true
. This can help to prevent overzealous
disposal of the operation history when an operation is in an ambiguous
state. Typically, the status computation methods are invoked with this
flag set to false
just before the actual execution, undo,
or redo occurs, so the user can be consulted for the final outcome.
quiet
- true
if it is inappropriate to consult or
otherwise prompt the user while computing status, and
false
if the user may be prompted.computeExecutionStatus(IProgressMonitor)
,
IAdvancedUndoableOperation.computeUndoableStatus(IProgressMonitor)
,
IAdvancedUndoableOperation.computeRedoableStatus(IProgressMonitor)
boolean runInBackground()
true
if the operation should be run in the
background, false
if it should not.
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.