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()
On cold caches no big differences, on warm caches the last alternative was slightly faster.
  • Constructor Details

    • ProgressMonitorWrapper

      public ProgressMonitorWrapper(IProgressMonitor monitor)
  • Method Details

    • 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 interface IProgressListener
      Parameters:
      name - the name (or description) of the main task
      totalWork - the total number of work units into which the main task is been subdivided. If the value is UNKNOWN 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 interface IProgressListener
    • 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 interface IProgressListener
      Returns:
      true if cancellation has been requested, and false 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 interface IProgressListener
      Parameters:
      value - true indicates that cancelation has been requested (but not necessarily acknowledged); false clears this flag
      See Also:
    • 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 interface IProgressListener
      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 interface IProgressListener
      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 interface IProgressListener
      Parameters:
      severity - Severity as defined in IProgressListener.Severity
      message - The message localized to the current locale.
      exception - The relevant low-level exception, or null if none.