The
IProgressMonitor
interface is implemented by objects that monitor the progress of an activity; the methods in this interface are invoked by code that performs the activity.
All activity is broken down into a linear sequence of tasks against which progress is reported. When a task begins, a beginTask(String, int)
notification is reported, followed by any number and mixture of progress reports (worked()
) and subtask notifications (subTask(String)
). When the task is eventually completed, a done()
notification is reported. After the done()
notification, the progress monitor cannot be reused; i.e., beginTask(String, int)
cannot be called again after the call to done()
.
A request to cancel an operation can be signaled using the setCanceled
method. Operations taking a progress monitor are expected to poll the monitor (using isCanceled
) periodically and abort at their earliest convenience. Operation can however choose to ignore cancelation requests.
Since notification is synchronous with the activity itself, the listener should provide a fast and robust implementation. If the handling of notifications would involve blocking operations, or operations which might throw uncaught exceptions, the notifications should be queued, and the actual processing deferred (or perhaps delegated to a separate thread).
@author IBM
@author
Konstantin Komissarchik