public interface ProgressMonitor
ProgressMonitor
defines a set of methods that are useful for
keeping track of the progress of an operation. This interface also allows
the operation being tracked to be notified if the user wishes to cancel the
operation. Code using this interface to track progress should call
isCancelled()
prior to calling setTaskProgress(long)
.
Implementations of this interface should throw an
IllegalArgumentException
when setTaskProgress(int)
is called after the operation has been cancelled.
Code using the ProgressMonitor
should call started()
before setTaskProgress(long)
is called for the first time.
setTaskProgress()
should not be called after
cancel()
or finished()
has been called. Therefore,
monitored processes should check isCancelled() before setTaskProgress(long)
is called. An
implementation may throw an IllegalArgumentException
if
setTaskProgress(int)
is called before started()
or
after finished()
is called. Note if isCancelled is not called
by the process, then the cancel button will become disabled.
A client codes receiving a monitor must do one of two things. It should either call setTaskSize(long), started(), setTaskProgress(long) zero or more times, then finished(); or it should do nothing with the monitor, possibly passing the monitor to a subprocess. This is to ensure that it's easy to see that the monitor lifecycle is properly performed.
Modifier and Type | Field and Description |
---|---|
static long |
SIZE_INDETERMINATE |
Modifier and Type | Method and Description |
---|---|
boolean |
canBeCancelled()
return true if the process appears to support cancel.
|
void |
cancel()
Notifies the
ProgressMonitor that the task
being monitored should be canceled. |
void |
finished()
Notifies the
ProgressMonitor that the task
being monitored has finished. |
java.lang.String |
getLabel()
Return the label string displayed, which is a concise string that
describes the task being performed.
|
ProgressMonitor |
getSubtaskMonitor(int start,
int end,
java.lang.String label)
return a monitor to use for a subtask.
|
ProgressMonitor |
getSubtaskMonitor(java.lang.String label)
get the subtask monitor when the current task length is indeterminate.
|
long |
getTaskProgress()
Returns the current progress of the monitored task.
|
long |
getTaskSize()
Return the size of the task.
|
boolean |
isCancelled()
Returns
true if the operation being tracked
should be cancelled. |
boolean |
isFinished()
true if the process has indicated that it is finished
|
boolean |
isStarted()
true if the process has indicated that it has started.
|
void |
setAdditionalInfo(java.lang.String s)
Deprecated.
setProgressMessage should be used by the service provider
to indicate how the process is being implemented.
|
void |
setLabel(java.lang.String label)
Set a concise string that describes the task being performed.
|
void |
setProgressMessage(java.lang.String message)
Provides additional feedback as to what's going on in the process.
|
void |
setTaskProgress(long position)
Notifies the ProgressMonitor of a change in the progress
of the task.
|
void |
setTaskSize(long taskSize)
Sets the maximum value for the task progress of this
ProgressMonitor . |
void |
started()
Notifies the
ProgressMonitor that the task
being monitored has started. |
static final long SIZE_INDETERMINATE
void setTaskSize(long taskSize)
ProgressMonitor
.taskSize
- maximum value for the task progress. A taskSize of -1 indicates the taskSize is indeterminate.void setTaskProgress(long position) throws java.lang.IllegalArgumentException
position
- the current task positionjava.lang.IllegalArgumentException
- if isCancelled()
returns true or,
possibly if started() has not been called or
finished() has been called.void setProgressMessage(java.lang.String message)
message
- the message describing the state of progress.long getTaskProgress()
void setLabel(java.lang.String label)
label
- the label describing the task.java.lang.String getLabel()
long getTaskSize()
void started()
ProgressMonitor
that the task
being monitored has started. If the ProgressMonitor
is in a cancelled state when this method is called, that
ProgressMonitor
should be 'uncancelled'.void finished()
ProgressMonitor
that the task
being monitored has finished. This must only be called once, and note that isFinished() must return
the state of this monitor.void cancel()
ProgressMonitor
that the task
being monitored should be canceled. After this method is
called, implementations should return true
on
any subsequent calls to isCancelled()
and should
throw an IllegalStateException on any subsequent calls to
setTaskProgress(long)
.boolean isCancelled()
true
if the operation being tracked
should be cancelled. For example, the human operator has pressed
the cancel button indicating that the process should be stopped. Note
that if the process is not checking the cancel status, the cancel button
should be disabled.true
if the operation being tracked
should be cancelled.boolean canBeCancelled()
void setAdditionalInfo(java.lang.String s)
s
- the message, such as (50KB/s)boolean isStarted()
boolean isFinished()
ProgressMonitor getSubtaskMonitor(int start, int end, java.lang.String label)
start
- start position on this monitor.end
- end position on this monitor (exclusive).label
- a label for the subtask, often this is handled as progress message; or null.ProgressMonitor getSubtaskMonitor(java.lang.String label)
label
- a label for the subtask, often this is handled as progress message; or null.