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 java.lang.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 voidbeginTask(java.lang.String name, int totalWork)Notifies that the main task is beginning.voiddone()Notifies that the work is done; that is, either the main task is completed or the user canceled it.booleanisCanceled()Returns whether cancelation of current operation has been requested.voidsendUserMessage(IProgressListener.Severity severity, java.lang.String message, java.lang.Throwable exception)Sends a message to the user.voidsetCanceled(boolean value)Sets the cancel state to the given value.voidsubTask(java.lang.String name)Notifies that a subtask of the main task is beginning.voidworked(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(java.lang.String name, int totalWork)Description copied from interface:IProgressListenerNotifies that the main task is beginning. This must only be called once on a given progress monitor instance.- Specified by:
beginTaskin 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 isUNKNOWNthe 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:IProgressListenerNotifies 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:
donein interfaceIProgressListener
-
isCanceled
public boolean isCanceled()
Description copied from interface:IProgressListenerReturns whether cancelation of current operation has been requested. Long-running operations should poll to see if cancelation has been requested.- Specified by:
isCanceledin interfaceIProgressListener- Returns:
trueif cancellation has been requested, andfalseotherwise- See Also:
IProgressListener.setCanceled(boolean)
-
setCanceled
public void setCanceled(boolean value)
Description copied from interface:IProgressListenerSets the cancel state to the given value.- Specified by:
setCanceledin interfaceIProgressListener- Parameters:
value-trueindicates that cancelation has been requested (but not necessarily acknowledged);falseclears this flag- See Also:
IProgressListener.isCanceled()
-
subTask
public void subTask(java.lang.String name)
Description copied from interface:IProgressListenerNotifies that a subtask of the main task is beginning. Subtasks are optional; the main task might not have subtasks.- Specified by:
subTaskin interfaceIProgressListener- Parameters:
name- the name (or description) of the subtask
-
worked
public void worked(int work)
Description copied from interface:IProgressListenerNotifies 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:
workedin interfaceIProgressListener- Parameters:
work- the number of work units just completed
-
sendUserMessage
public void sendUserMessage(IProgressListener.Severity severity, java.lang.String message, java.lang.Throwable exception)
Description copied from interface:IProgressListenerSends a message to the user.- Specified by:
sendUserMessagein interfaceIProgressListener- Parameters:
severity- Severity as defined inIProgressListener.Severitymessage- The message localized to the current locale.exception- The relevant low-level exception, ornullif none.
-
-