Package org.eclipse.mat.ui.util
Class ProgressMonitorWrapper
java.lang.Object
org.eclipse.mat.ui.util.ProgressMonitorWrapper
- All Implemented Interfaces:
IProgressListener
Notes on tuning:
I tested the following alternatives:
- a timer task checking every 2 seconds and setting isCanceled
- direct call to the delegate every time
- the query checking only every 1000 calls
- the job overwrites canceling() and sets isCanceled
- a check every 2 seconds based on currentTimeMillis()
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.mat.util.IProgressListener
IProgressListener.OperationCanceledException, IProgressListener.Severity
-
Field Summary
Fields inherited from interface org.eclipse.mat.util.IProgressListener
UNKNOWN_TOTAL_WORK
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Notifies that the main task is beginning.void
done()
Notifies that the work is done; that is, either the main task is completed or the user canceled it.boolean
Returns whether cancelation of current operation has been requested.void
sendUserMessage
(IProgressListener.Severity severity, String message, Throwable exception) Sends a message to the user.void
setCanceled
(boolean value) Sets the cancel state to the given value.void
Notifies that a subtask of the main task is beginning.void
worked
(int work) Notifies that a given number of work unit of the main task has been completed.
-
Constructor Details
-
ProgressMonitorWrapper
-
-
Method Details
-
beginTask
Description copied from interface:IProgressListener
Notifies that the main task is beginning. This must only be called once on a given progress monitor instance.- Specified by:
beginTask
in interfaceIProgressListener
- Parameters:
name
- the name (or description) of the main tasktotalWork
- the total number of work units into which the main task is been subdivided. If the value isUNKNOWN
the implementation is free to indicate progress in a way which doesn't require the total number of work units in advance.
-
done
public void done()Description copied from interface:IProgressListener
Notifies that the work is done; that is, either the main task is completed or the user canceled it. This method may be called more than once (implementations should be prepared to handle this case).- Specified by:
done
in interfaceIProgressListener
-
isCanceled
public boolean isCanceled()Description copied from interface:IProgressListener
Returns whether cancelation of current operation has been requested. Long-running operations should poll to see if cancelation has been requested.- Specified by:
isCanceled
in interfaceIProgressListener
- Returns:
true
if cancellation has been requested, andfalse
otherwise- See Also:
-
setCanceled
public void setCanceled(boolean value) Description copied from interface:IProgressListener
Sets the cancel state to the given value.- Specified by:
setCanceled
in interfaceIProgressListener
- Parameters:
value
-true
indicates that cancelation has been requested (but not necessarily acknowledged);false
clears this flag- See Also:
-
subTask
Description copied from interface:IProgressListener
Notifies that a subtask of the main task is beginning. Subtasks are optional; the main task might not have subtasks.- Specified by:
subTask
in interfaceIProgressListener
- Parameters:
name
- the name (or description) of the subtask
-
worked
public void worked(int work) Description copied from interface:IProgressListener
Notifies that a given number of work unit of the main task has been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date.- Specified by:
worked
in interfaceIProgressListener
- Parameters:
work
- the number of work units just completed
-
sendUserMessage
public void sendUserMessage(IProgressListener.Severity severity, String message, Throwable exception) Description copied from interface:IProgressListener
Sends a message to the user.- Specified by:
sendUserMessage
in interfaceIProgressListener
- Parameters:
severity
- Severity as defined inIProgressListener.Severity
message
- The message localized to the current locale.exception
- The relevant low-level exception, ornull
if none.
-