ACT provides the property ExtAPI.UserInterface.ProgressMonitor
for monitoring the progress of custom workflows. This property returns an object of type
IProgressMonitor
.
The following APIs are available:
Class | Member | Description |
---|---|---|
IProgressMonitor
|
WorkName
| The name of the current work under progress monitoring. |
WorkStatus
| The current status for the work under progress monitoring. | |
WorkDetails
| The current details for the work under progress monitoring. | |
TotalWorkUnits
| The total number of work units allocated to the work under progress monitoring. | |
CompletedWorkUnits
| The completed number of work units. | |
Parent
| The parent progress monitor, if this is a child monitor. Otherwise, null. | |
PropagateWorkStatus
| Indicates whether to propagate a child’s work status up to the parent. | |
PropagateWorkDetails
| Indicates whether to propagate a child’s work details up to the parent. | |
CanAbort
| Indicates whether the operation can be cancelled. | |
CanInterrupt
| Indicates whether the current operation can be interrupted. | |
BeginWork(name, units)
| Starts work engaged with progress monitoring. | |
UpdateWork(units)
| Updates the current work units. | |
EndWork()
| Marks the current work as complete (progress at 100%). | |
CreateChildMonitor(units)
| Creates a child progress monitor with the current monitor as its parent. | |
Status
| The current status of this progress
monitor.
|
A sample implementation of progress monitoring functionality follows.
def update(task): monitor = ExtAPI.UserInterface.ProgressMonitor monitor.BeginWork("Testing 123...", 3) LogProgress(monitor) monitor.WorkStatus = "Test Status!" monitor.WorkDetails = "Test Details!" System.Threading.Thread.Sleep(2000) monitor.UpdateWork(1) LogProgress(monitor) monitor.WorkDetails = "More details..." System.Threading.Thread.Sleep(2000) monitor.UpdateWork(1) LogProgress(monitor) monitor.WorkDetails = "Even more details..." System.Threading.Thread.Sleep(2000) monitor.UpdateWork(1) LogProgress(monitor) monitor.WorkDetails = "Final details..." System.Threading.Thread.Sleep(2000) monitor.EndWork() def LogProgress(monitor): ExtAPI.Log.WriteMessage("Progress: " + str(monitor.CompletedWorkUnits) + "/" + str(monitor.TotalWorkUnits))