Class SubProgressMonitor

java.lang.Object
org.eclipse.core.runtime.ProgressMonitorWrapper
org.eclipse.core.runtime.SubProgressMonitor
All Implemented Interfaces:
IProgressMonitor, IProgressMonitorWithBlocking

@Deprecated public class SubProgressMonitor extends ProgressMonitorWrapper
Deprecated.
use SubMonitor instead
A progress monitor that uses a given amount of work ticks from a parent monitor. Code that currently uses this utility should be rewritten to use SubMonitor instead. Consider the following example:
 void someMethod(IProgressMonitor pm) {
        pm.beginTask("Main Task", 100);
        SubProgressMonitor subMonitor1 = new SubProgressMonitor(pm, 60);
        try {
                doSomeWork(subMonitor1);
        } finally {
                subMonitor1.done();
        }
        SubProgressMonitor subMonitor2 = new SubProgressMonitor(pm, 40);
        try {
                doSomeMoreWork(subMonitor2);
        } finally {
                subMonitor2.done();
        }
 }
 

The above code should be refactored to this:

 void someMethod(IProgressMonitor pm) {
        SubMonitor subMonitor = SubMonitor.convert(pm, "Main Task", 100);
        doSomeWork(subMonitor.split(60));
        doSomeMoreWork(subMonitor.split(40));
 }
 

The process for converting code which used SubProgressMonitor into SubMonitor is:

Please see the SubMonitor documentation for further examples.

This class can be used without OSGi running.

This class may be instantiated or subclassed by clients.