Package org.eclipse.mat.ui.util
Class ProgressMonitorWrapper
- java.lang.Object
-
- org.eclipse.mat.ui.util.ProgressMonitorWrapper
-
- All Implemented Interfaces:
IProgressListener
public class ProgressMonitorWrapper extends Object implements 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
Constructors Constructor Description ProgressMonitorWrapper(IProgressMonitor monitor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
beginTask(String name, int totalWork)
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
isCanceled()
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
subTask(String name)
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 Detail
-
ProgressMonitorWrapper
public ProgressMonitorWrapper(IProgressMonitor monitor)
-
-
Method Detail
-
beginTask
public void beginTask(String name, int totalWork)
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:
IProgressListener.setCanceled(boolean)
-
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:
IProgressListener.isCanceled()
-
subTask
public void subTask(String name)
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.
-
-