This API allows to visualize tracking for progress of long lasting tasks.

The usual usecase goes like this:

    ProgressHandle handle = ProgressHandleFactory.createHandle("My custom task");
    ...
    // we have 100 workunits
    // at this point the task appears in status bar.
    handle.start(100);
    ...
    handle.progress(10);
    ...
    handle.progress(50);
    ...
    // at this point the task is finished and removed from status bar
    handle.finish();

There are several options on how detailed visualization you want.

- task with unknown duration or with hard to show progress steps.
- task with known scaled steps
- task with known steps and also with a time estimate for completion

All these usecases are supported by methods of {@link org.netbeans.api.progress.ProgressHandle} class. Additionally it's possible to include textual information about current progress.
If the task allows to be cancelled by the user, then you have to implement {@link org.openide.util.Cancellable} interface and pass it to the {@link org.netbeans.api.progress.ProgressHandleFactory} when creating the handle.