Package com.iizix
Class PropProgressMonitor
- java.lang.Object
- com.iizix.PropProgressMonitor
- All Implemented Interfaces:
IPropProgressMonitor
public class PropProgressMonitor extends java.lang.Object implements IPropProgressMonitor
The progress monitor implementation.- Author:
- Christopher Mindus
Field Summary
Fields inherited from interface com.iizix.IPropProgressMonitor
NULL
Constructor Summary
Constructors Constructor Description PropProgressMonitor()
Constructor.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
beginTask(java.lang.String name, int totalWork)
Notifies that the main task is beginning.void
cancel()
Cancels the progress monitor.void
done()
Notifies that the work is done; that is, either the main task is completed or the user canceled it.double
getProgress()
Gets the current percentage done.java.lang.String
getProgressDescription()
Gets the verbose progress from the main and all subtasks in %.java.lang.Object
getProgressMonitor()
Gets the org.eclipse.core.runtime.IProgressMonitor instance.PropProgressMonitor[]
getSubProgressMonitors()
Gets the submonitors that have been created for this progress monitor.java.lang.String
getTaskName()
Gets the task name being performed.boolean
isCanceled()
Returns whether cancellation of current operation has been requested.PropProgressMonitor
newSubMonitor(int work)
Creates a new sub progress monitor taking up a number of work.void
setListener(java.lang.Runnable listener)
Sets the cancel listener.void
setProgressListener(java.lang.Runnable listener)
Sets the progress listener.void
setTaskName(java.lang.String name)
Sets the task name to the given value.void
setWorked(int worked)
Set worked value.void
setWorkRemaining(int workRemaining)
Set worked remaining.void
worked(int work)
Notifies that a given number of work unit of the main task has been completed.
Method Detail
setProgressListener
public void setProgressListener(java.lang.Runnable listener)
Sets the progress listener.- Parameters:
listener
- Listener for changes in the progress monitor, null for none.
setListener
public void setListener(java.lang.Runnable listener)
Sets the cancel listener.- Parameters:
listener
- Listener for changes in the progress monitor, null for none.
beginTask
public void beginTask(java.lang.String name, int totalWork)
Notifies that the main task is beginning. This must only be called once on a given progress monitor instance.- Specified by:
beginTask
in interfaceIPropProgressMonitor
- 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. The value must be greater than zero.- Throws:
java.lang.IllegalArgumentException
- If totalWork is zero or less.java.lang.NullPointerException
- If name is null.
setTaskName
public void setTaskName(java.lang.String name)
Sets the task name to the given value. 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.- Specified by:
setTaskName
in interfaceIPropProgressMonitor
- Parameters:
name
- the name (or description) of the main task.- See Also:
beginTask(java.lang.String, int)
getProgress
public double getProgress()
Gets the current percentage done.- Returns:
- A value between 0 and 1, where 1 indicates completed.
getProgressDescription
public java.lang.String getProgressDescription()
Gets the verbose progress from the main and all subtasks in %.- Returns:
- A string formatted as "task (xx%), subtask (yy%)".
getTaskName
public java.lang.String getTaskName()
Gets the task name being performed.- Returns:
- The task name.
getSubProgressMonitors
public PropProgressMonitor[] getSubProgressMonitors()
Gets the submonitors that have been created for this progress monitor.- Returns:
- An array, never null, of progress monitors.
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.- Specified by:
worked
in interfaceIPropProgressMonitor
- Parameters:
work
- A non-negative number of work units just completed.- Throws:
java.lang.IllegalArgumentException
- If work is less than zero.
setWorked
public void setWorked(int worked)
Set worked value.- Specified by:
setWorked
in interfaceIPropProgressMonitor
- Parameters:
worked
- The work value.
setWorkRemaining
public void setWorkRemaining(int workRemaining)
Set worked remaining.- Specified by:
setWorkRemaining
in interfaceIPropProgressMonitor
- Parameters:
workRemaining
- The remaining work value, must be between zero and totalWork.
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).- Specified by:
done
in interfaceIPropProgressMonitor
isCanceled
public boolean isCanceled()
Returns whether cancellation of current operation has been requested. Long-running operations should poll to see if cancellation has been requested.- Specified by:
isCanceled
in interfaceIPropProgressMonitor
- Returns:
true
if cancellation has been requested, andfalse
otherwise.
cancel
public void cancel()
Cancels the progress monitor.- Specified by:
cancel
in interfaceIPropProgressMonitor
getProgressMonitor
public java.lang.Object getProgressMonitor()
Gets the org.eclipse.core.runtime.IProgressMonitor instance.- Specified by:
getProgressMonitor
in interfaceIPropProgressMonitor
- Returns:
- Always null.
newSubMonitor
public PropProgressMonitor newSubMonitor(int work)
Creates a new sub progress monitor taking up a number of work.- Specified by:
newSubMonitor
in interfaceIPropProgressMonitor
- Parameters:
work
- A non-negative number of work units that the new sub progress monitor will tick off.- Returns:
- A new submonitor.