com.togethersoft.testing.shared
Interface IProgressMonitor


public interface IProgressMonitor

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().


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 delegated to a separate thread.


Field Summary
 final static intUNKNOWN
          Constant indicating an unknown amount of work.

Method Summary
 voidbeginTask(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.
 voidinternalWorked(double work)
          Internal method to handle scaling correctly.
 booleanisCanceled()
          Returns whether the end-user has asked to cancel the operation.
 voidsetCanceled(boolean value)
          Sets the cancel state to the given value.
 voidsetTaskName(String name)
          Sets the task name to the given string.
 voidsubTask(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.

Field Detail

UNKNOWN

public final static int UNKNOWN
Constant indicating an unknown amount of work.
Method Detail

beginTask

public void beginTask(String name, int totalWork)
Notifies that the main task is beginning. This must only be called once on a given progress monitor instance.
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 implemenation is free to indicate progress
in a way which doesn't require the total number of work units in advance.

done

public void done()
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).

internalWorked

public void internalWorked(double work)
Internal method to handle scaling correctly. This method must not be called by a client. Clients should always use the
method worked(int).

isCanceled

public boolean isCanceled()
Returns whether the end-user has asked to cancel the operation. Long-running operations typically poll to see if
cancellation has been requested.
Returns: true if cancellation has been requested, and false otherwise
See Also:
setCanceled(boolean)

setCanceled

public void setCanceled(boolean value)
Sets the cancel state to the given value.
Parameters:
value true indicates that cancellation has been requested (but not necessarily acknowledged);
false clears this flag
See Also:
isCanceled()

setTaskName

public void setTaskName(String name)
Sets the task name to the given string. This method is used to restore the task label after a nested operation was
executed. Normally there is no need for clients to call this method.
Parameters:
name the name (or description) of the main task
See Also:
beginTask(java.lang.String,int)

subTask

public void subTask(String name)
Notifies that a subtask of the main task is beginning. Subtasks are optional; the main task might not have subtasks.
Parameters:
name the name (or description) of the subtask

worked

public void worked(int work)
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.
Parameters:
work the number of work units just completed