blob: 0fe2909296de69e89bf7e7c3ef86382d432b7d02 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>SubMonitor (Oomph Utilities Documentation)</title>
<meta name="date" content="">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SubMonitor (Oomph Utilities Documentation)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SubMonitor.html">Use</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/oomph/util/StringUtil.html" title="class in org.eclipse.oomph.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html" title="enum in org.eclipse.oomph.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/oomph/util/SubMonitor.html" target="_top">Frames</a></li>
<li><a href="SubMonitor.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.oomph.util</div>
<h2 title="Class SubMonitor" class="title">Class SubMonitor</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.oomph.util.SubMonitor</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>, <a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitorWithBlocking.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitorWithBlocking</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/eclipse/oomph/util/ProbingSubMonitor.html" title="class in org.eclipse.oomph.util">ProbingSubMonitor</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">SubMonitor</span>
extends <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitorWithBlocking.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitorWithBlocking</a></pre>
<div class="block">A <a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitorWithBlocking.html?is-external=true" title="class or interface in org.eclipse.core.runtime"><code>progress monitor</code></a> that uses a given amount of work ticks from a parent monitor.
This is intended as a safer, easier-to-use alternative to <a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/SubProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime"><code>SubProgressMonitor</code></a>.
<p>
Progress monitoring is generally quite invasive to the code that is monitored.
At the same time progress monitoring itself is typically very hard to implement correctly.
This class aims at reducing the invasiveness as much as possible while offering all the functionality needed
to do the job right.
<p>
The following aspects of this class help to keep the progress monitoring code short and nice and to avoid common monitoring mistakes:
<ul>
<li> It offers the full functionality of <a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/SubMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime"><code>SubMonitor</code></a>, which already makes progress monitoring a lot easier.
Refer to the <a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/SubMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime"><code>SubMonitor</code></a> documentation or to this <a href="https://wiki.eclipse.org/Progress_Reporting">article</a> for details and examples.
<li> In addition to the <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#setWorkRemaining(int)"><code>setWorkRemaining(int)</code></a> method it offers a <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#skipped(int)"><code>skipped(int)</code></a> method, which redistributes the remaining work
according to the last skipped <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#worked(int)"><code>worked(int)</code></a> or <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#newChild(int)"><code>newChild(int)</code></a> call rather than on the sum of all subsequent calls.
<li> It reduces the need to specify <code>work</code> arguments by using the default value <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#DEFAULT_WORK"><code>1</code></a> with the overloaded
<a href="../../../../org/eclipse/oomph/util/SubMonitor.html#worked()"><code>worked()</code></a>, <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#skipped()"><code>skipped()</code></a> and <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#newChild()"><code>newChild()</code></a> calls.
<li> Basically all methods of this class can implicitely check for cancelation, thereby ensuring that the monitored code is always cancelable by the user
without cluttering the code with repetitions of the following idiom:
<pre>
if (monitor.isCanceled())
{
throw new OperationCanceledException();
}
</pre>
For details about automatic cancelation detection refer to <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#detectCancelation()"><code>detectCancelation()</code></a>.
<li> It is normally very challenging to find out how much time a program really spends in the different parts of the monitored methods or how often these
parts get executed. Stepping through the program with a debugger obviously leads to distortion that renders the observations meaningless and adding
extra code to measure a runtime scenario realisticly is not nice from a maintenance point of view.
<p>
As a solution to this problem this class offers the possibility to transparently instrument <a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util"><code>SubMonitor</code></a> instances such that they automatically
collect and report all kinds of statistics that may help to enhance the user experience. Sometimes it would even indicate to remove some progress monitoring
because it turns out that almost no time is being spent in a particular part of the program. Another typical result from the analysis is the understanding of
<i>one time effects</i> that might need special consideration.
<p>
For details about this <i>probing</i> mode refer to <a href="../../../../org/eclipse/oomph/util/ProbingSubMonitor.html" title="class in org.eclipse.oomph.util"><code>ProbingSubMonitor</code></a>.
</ul>
<p>
The following example shows how to monitor progress while recursing through a tree of folders:
<pre>
public void recurse(IContainer container, IProgressMonitor monitor) throws Exception
{
IResource[] members = container.members();
SubMonitor progress = SubMonitor.convert(monitor, members.length).detectCancelation();
progress.subTask(container.getFullPath().toString());
for (IResource member : members)
{
if (member instanceof IContainer)
{
Thread.sleep(5);
recurse((IContainer)member, progress.newChild());
}
else
{
progress.skipped();
}
}
}
</pre></div>
<dl><dt><span class="strong">Author:</span></dt>
<dd>Eike Stepper</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html" title="enum in org.eclipse.oomph.util">SubMonitor.ProbingMode</a></strong></code>
<div class="block">Enumerates the possible probing mode values <a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html#OFF"><code>SubMonitor.ProbingMode.OFF</code></a>, <a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html#STANDARD"><code>SubMonitor.ProbingMode.STANDARD</code></a> and <a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html#FULL"><code>SubMonitor.ProbingMode.FULL</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#DEFAULT_WORK">DEFAULT_WORK</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#SUPPRESS_ALL_LABELS">SUPPRESS_ALL_LABELS</a></strong></code>
<div class="block">May be passed as a flag to newChild.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#SUPPRESS_BEGINTASK">SUPPRESS_BEGINTASK</a></strong></code>
<div class="block">May be passed as a flag to newChild.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#SUPPRESS_NONE">SUPPRESS_NONE</a></strong></code>
<div class="block">May be passed as a flag to newChild.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#SUPPRESS_SETTASKNAME">SUPPRESS_SETTASKNAME</a></strong></code>
<div class="block">May be passed as a flag to newChild.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#SUPPRESS_SUBTASK">SUPPRESS_SUBTASK</a></strong></code>
<div class="block">May be passed as a flag to newChild.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.core.runtime.IProgressMonitor">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.eclipse.core.runtime.<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a></h3>
<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#UNKNOWN" title="class or interface in org.eclipse.core.runtime">UNKNOWN</a></code></li>
</ul>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#beginTask(java.lang.String,%20int)">beginTask</a></strong>(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
int&nbsp;totalWork)</code>
<div class="block">Starts a new main task.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#childDone()">childDone</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#clearBlocked()">clearBlocked</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#convert(org.eclipse.core.runtime.IProgressMonitor)">convert</a></strong>(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor)</code>
<div class="block">Converts an unknown (possibly null) IProgressMonitor into a SubMonitor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#convert(org.eclipse.core.runtime.IProgressMonitor,%20int)">convert</a></strong>(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
int&nbsp;work)</code>
<div class="block">Converts an unknown (possibly null) IProgressMonitor into a SubMonitor allocated
with the given number of ticks.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#convert(org.eclipse.core.runtime.IProgressMonitor,%20int,%20org.eclipse.oomph.util.SubMonitor.ProbingMode)">convert</a></strong>(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
int&nbsp;work,
<a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html" title="enum in org.eclipse.oomph.util">SubMonitor.ProbingMode</a>&nbsp;probingMode)</code>
<div class="block">Converts an unknown (possibly null) IProgressMonitor into a SubMonitor allocated
with the given number of ticks.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#convert(org.eclipse.core.runtime.IProgressMonitor,%20java.lang.String,%20int)">convert</a></strong>(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskName,
int&nbsp;work)</code>
<div class="block">Converts an unknown (possibly null) IProgressMonitor into a SubMonitor allocated
with the given number of ticks.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#convert(org.eclipse.core.runtime.IProgressMonitor,%20java.lang.String,%20int,%20org.eclipse.oomph.util.SubMonitor.ProbingMode)">convert</a></strong>(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskName,
int&nbsp;work,
<a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html" title="enum in org.eclipse.oomph.util">SubMonitor.ProbingMode</a>&nbsp;probingMode)</code>
<div class="block">Converts an unknown (possibly null) IProgressMonitor into a SubMonitor allocated
with the given number of ticks.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#convert(org.eclipse.core.runtime.IProgressMonitor,%20org.eclipse.oomph.util.SubMonitor.ProbingMode)">convert</a></strong>(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
<a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html" title="enum in org.eclipse.oomph.util">SubMonitor.ProbingMode</a>&nbsp;probingMode)</code>
<div class="block">Converts an unknown (possibly null) IProgressMonitor into a SubMonitor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#detectCancelation()">detectCancelation</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#detectCancelation(boolean)">detectCancelation</a></strong>(boolean&nbsp;on)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#done()">done</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#eq(java.lang.Object,%20java.lang.Object)">eq</a></strong>(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o1,
<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o2)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#internalWorked(double)">internalWorked</a></strong>(double&nbsp;work)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#isCanceled()">isCanceled</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#newChild()">newChild</a></strong>()</code>
<div class="block">Same as <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#newChild(int)"><code>newChild(1)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#newChild(int)">newChild</a></strong>(int&nbsp;totalWork)</code>
<div class="block">Creates a sub progress monitor that will consume the given number of ticks from the
receiver.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#newChild(int,%20int)">newChild</a></strong>(int&nbsp;totalWork,
int&nbsp;suppressFlags)</code>
<div class="block">Creates a sub progress monitor that will consume the given number of ticks from the
receiver.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#setBlocked(org.eclipse.core.runtime.IStatus)">setBlocked</a></strong>(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IStatus.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IStatus</a>&nbsp;reason)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#setCanceled(boolean)">setCanceled</a></strong>(boolean&nbsp;b)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#setTaskName(java.lang.String)">setTaskName</a></strong>(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#setWorkRemaining(int)">setWorkRemaining</a></strong>(int&nbsp;workRemaining)</code>
<div class="block">Sets the work remaining for this SubMonitor instance.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#skipped()">skipped</a></strong>()</code>
<div class="block">Same as <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#skipped(int)"><code>skipped(1)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#skipped(int)">skipped</a></strong>(int&nbsp;ticks)</code>
<div class="block">Same as <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#setWorkRemaining(int)"><code>setWorkRemaining(totalParent - usedForParent)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#subTask(java.lang.String)">subTask</a></strong>(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#worked()">worked</a></strong>()</code>
<div class="block">Same as <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#worked(int)"><code>worked(1)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/util/SubMonitor.html#worked(int)">worked</a></strong>(int&nbsp;work)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="DEFAULT_WORK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_WORK</h4>
<pre>public static final&nbsp;int DEFAULT_WORK</pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.oomph.util.SubMonitor.DEFAULT_WORK">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="SUPPRESS_SUBTASK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SUPPRESS_SUBTASK</h4>
<pre>public static final&nbsp;int SUPPRESS_SUBTASK</pre>
<div class="block">May be passed as a flag to newChild. Indicates that the calls
to subTask on the child should be ignored. Without this flag,
calling subTask on the child will result in a call to subTask
on its parent.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.oomph.util.SubMonitor.SUPPRESS_SUBTASK">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="SUPPRESS_BEGINTASK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SUPPRESS_BEGINTASK</h4>
<pre>public static final&nbsp;int SUPPRESS_BEGINTASK</pre>
<div class="block">May be passed as a flag to newChild. Indicates that strings
passed into beginTask should be ignored. If this flag is
specified, then the progress monitor instance will accept null
as the first argument to beginTask. Without this flag, any
string passed to beginTask will result in a call to
setTaskName on the parent.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.oomph.util.SubMonitor.SUPPRESS_BEGINTASK">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="SUPPRESS_SETTASKNAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SUPPRESS_SETTASKNAME</h4>
<pre>public static final&nbsp;int SUPPRESS_SETTASKNAME</pre>
<div class="block">May be passed as a flag to newChild. Indicates that strings
passed into setTaskName should be ignored. If this string
is omitted, then a call to setTaskName on the child will
result in a call to setTaskName on the parent.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.oomph.util.SubMonitor.SUPPRESS_SETTASKNAME">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="SUPPRESS_ALL_LABELS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SUPPRESS_ALL_LABELS</h4>
<pre>public static final&nbsp;int SUPPRESS_ALL_LABELS</pre>
<div class="block">May be passed as a flag to newChild. Indicates that strings
passed to setTaskName, subTask, and beginTask should all be ignored.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.oomph.util.SubMonitor.SUPPRESS_ALL_LABELS">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="SUPPRESS_NONE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SUPPRESS_NONE</h4>
<pre>public static final&nbsp;int SUPPRESS_NONE</pre>
<div class="block">May be passed as a flag to newChild. Indicates that strings
passed to setTaskName, subTask, and beginTask should all be propagated
to the parent.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.oomph.util.SubMonitor.SUPPRESS_NONE">Constant Field Values</a></dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="convert(org.eclipse.core.runtime.IProgressMonitor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convert</h4>
<pre>public static&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;convert(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor)</pre>
<div class="block"><p>Converts an unknown (possibly null) IProgressMonitor into a SubMonitor. It is
not necessary to call done() on the result, but the caller is responsible for calling
done() on the argument. Calls beginTask on the argument.</p>
<p>This method should generally be called at the beginning of a method that accepts
an IProgressMonitor in order to convert the IProgressMonitor into a SubMonitor.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - monitor to convert to a SubMonitor instance or null. Treats null
as a new instance of <code>NullProgressMonitor</code>.</dd>
<dt><span class="strong">Returns:</span></dt><dd>a SubMonitor instance that adapts the argument</dd></dl>
</li>
</ul>
<a name="convert(org.eclipse.core.runtime.IProgressMonitor, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convert</h4>
<pre>public static&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;convert(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
int&nbsp;work)</pre>
<div class="block"><p>Converts an unknown (possibly null) IProgressMonitor into a SubMonitor allocated
with the given number of ticks. It is not necessary to call done() on the result,
but the caller is responsible for calling done() on the argument. Calls beginTask
on the argument.</p>
<p>This method should generally be called at the beginning of a method that accepts
an IProgressMonitor in order to convert the IProgressMonitor into a SubMonitor.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - monitor to convert to a SubMonitor instance or null. Treats null
as a new instance of <code>NullProgressMonitor</code>.</dd><dd><code>work</code> - number of ticks that will be available in the resulting monitor</dd>
<dt><span class="strong">Returns:</span></dt><dd>a SubMonitor instance that adapts the argument</dd></dl>
</li>
</ul>
<a name="convert(org.eclipse.core.runtime.IProgressMonitor, java.lang.String, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convert</h4>
<pre>public static&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;convert(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskName,
int&nbsp;work)</pre>
<div class="block"><p>Converts an unknown (possibly null) IProgressMonitor into a SubMonitor allocated
with the given number of ticks. It is not necessary to call done() on the result,
but the caller is responsible for calling done() on the argument. Calls beginTask
on the argument.</p>
<p>This method should generally be called at the beginning of a method that accepts
an IProgressMonitor in order to convert the IProgressMonitor into a SubMonitor.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - to convert into a SubMonitor instance or null. If given a null argument,
the resulting SubMonitor will not report its progress anywhere.</dd><dd><code>taskName</code> - user readable name to pass to monitor.beginTask. Never null.</dd><dd><code>work</code> - initial number of ticks to allocate for children of the SubMonitor</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new SubMonitor instance that is a child of the given monitor</dd></dl>
</li>
</ul>
<a name="convert(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.oomph.util.SubMonitor.ProbingMode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convert</h4>
<pre>public static&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;convert(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
<a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html" title="enum in org.eclipse.oomph.util">SubMonitor.ProbingMode</a>&nbsp;probingMode)</pre>
<div class="block"><p>Converts an unknown (possibly null) IProgressMonitor into a SubMonitor. It is
not necessary to call done() on the result, but the caller is responsible for calling
done() on the argument. Calls beginTask on the argument.</p>
<p>This method should generally be called at the beginning of a method that accepts
an IProgressMonitor in order to convert the IProgressMonitor into a SubMonitor.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - monitor to convert to a SubMonitor instance or null. Treats null
as a new instance of <code>NullProgressMonitor</code>.</dd>
<dt><span class="strong">Returns:</span></dt><dd>a SubMonitor instance that adapts the argument</dd></dl>
</li>
</ul>
<a name="convert(org.eclipse.core.runtime.IProgressMonitor, int, org.eclipse.oomph.util.SubMonitor.ProbingMode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convert</h4>
<pre>public static&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;convert(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
int&nbsp;work,
<a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html" title="enum in org.eclipse.oomph.util">SubMonitor.ProbingMode</a>&nbsp;probingMode)</pre>
<div class="block"><p>Converts an unknown (possibly null) IProgressMonitor into a SubMonitor allocated
with the given number of ticks. It is not necessary to call done() on the result,
but the caller is responsible for calling done() on the argument. Calls beginTask
on the argument.</p>
<p>This method should generally be called at the beginning of a method that accepts
an IProgressMonitor in order to convert the IProgressMonitor into a SubMonitor.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - monitor to convert to a SubMonitor instance or null. Treats null
as a new instance of <code>NullProgressMonitor</code>.</dd><dd><code>work</code> - number of ticks that will be available in the resulting monitor</dd>
<dt><span class="strong">Returns:</span></dt><dd>a SubMonitor instance that adapts the argument</dd></dl>
</li>
</ul>
<a name="convert(org.eclipse.core.runtime.IProgressMonitor, java.lang.String, int, org.eclipse.oomph.util.SubMonitor.ProbingMode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convert</h4>
<pre>public static&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;convert(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a>&nbsp;monitor,
<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskName,
int&nbsp;work,
<a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html" title="enum in org.eclipse.oomph.util">SubMonitor.ProbingMode</a>&nbsp;probingMode)</pre>
<div class="block"><p>Converts an unknown (possibly null) IProgressMonitor into a SubMonitor allocated
with the given number of ticks. It is not necessary to call done() on the result,
but the caller is responsible for calling done() on the argument. Calls beginTask
on the argument.</p>
<p>This method should generally be called at the beginning of a method that accepts
an IProgressMonitor in order to convert the IProgressMonitor into a SubMonitor.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - to convert into a SubMonitor instance or null. If given a null argument,
the resulting SubMonitor will not report its progress anywhere.</dd><dd><code>taskName</code> - user readable name to pass to monitor.beginTask. Never null.</dd><dd><code>work</code> - initial number of ticks to allocate for children of the SubMonitor</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new SubMonitor instance that is a child of the given monitor</dd></dl>
</li>
</ul>
<a name="detectCancelation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>detectCancelation</h4>
<pre>public final&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;detectCancelation()</pre>
</li>
</ul>
<a name="detectCancelation(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>detectCancelation</h4>
<pre>public final&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;detectCancelation(boolean&nbsp;on)</pre>
</li>
</ul>
<a name="setWorkRemaining(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setWorkRemaining</h4>
<pre>public final&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;setWorkRemaining(int&nbsp;workRemaining)</pre>
<div class="block"><p>Sets the work remaining for this SubMonitor instance. This is the total number
of ticks that may be reported by all subsequent calls to worked(int), newChild(int), etc.
This may be called many times for the same SubMonitor instance. When this method
is called, the remaining space on the progress monitor is redistributed into the given
number of ticks.</p>
<p>It doesn't matter how much progress has already been reported with this SubMonitor
instance. If you call setWorkRemaining(100), you will be able to report 100 more ticks of
work before the progress meter reaches 100%.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>workRemaining</code> - total number of remaining ticks</dd>
<dt><span class="strong">Returns:</span></dt><dd>the receiver</dd></dl>
</li>
</ul>
<a name="isCanceled()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCanceled</h4>
<pre>public final&nbsp;boolean&nbsp;isCanceled()</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#isCanceled()" title="class or interface in org.eclipse.core.runtime">isCanceled</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a></code></dd>
</dl>
</li>
</ul>
<a name="setTaskName(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTaskName</h4>
<pre>public final&nbsp;void&nbsp;setTaskName(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#setTaskName(java.lang.String)" title="class or interface in org.eclipse.core.runtime">setTaskName</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a></code></dd>
</dl>
</li>
</ul>
<a name="beginTask(java.lang.String, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beginTask</h4>
<pre>public final&nbsp;void&nbsp;beginTask(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
int&nbsp;totalWork)</pre>
<div class="block">Starts a new main task. The string argument is ignored
if and only if the SUPPRESS_BEGINTASK flag has been set on this SubMonitor
instance.
<p>This method is equivalent calling setWorkRemaining(...) on the receiver. Unless
the SUPPRESS_BEGINTASK flag is set, this will also be equivalent to calling
setTaskName(...) on the parent.</p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#beginTask(java.lang.String,%20int)" title="class or interface in org.eclipse.core.runtime">beginTask</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - new main task name</dd><dd><code>totalWork</code> - number of ticks to allocate</dd><dt><span class="strong">See Also:</span></dt><dd><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#beginTask(java.lang.String,%20int)" title="class or interface in org.eclipse.core.runtime"><code>IProgressMonitor.beginTask(java.lang.String, int)</code></a></dd></dl>
</li>
</ul>
<a name="done()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>done</h4>
<pre>public&nbsp;void&nbsp;done()</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#done()" title="class or interface in org.eclipse.core.runtime">done</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a></code></dd>
</dl>
</li>
</ul>
<a name="internalWorked(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>internalWorked</h4>
<pre>public final&nbsp;void&nbsp;internalWorked(double&nbsp;work)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#internalWorked(double)" title="class or interface in org.eclipse.core.runtime">internalWorked</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a></code></dd>
</dl>
</li>
</ul>
<a name="subTask(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subTask</h4>
<pre>public final&nbsp;void&nbsp;subTask(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#subTask(java.lang.String)" title="class or interface in org.eclipse.core.runtime">subTask</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a></code></dd>
</dl>
</li>
</ul>
<a name="worked()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>worked</h4>
<pre>public final&nbsp;void&nbsp;worked()</pre>
<div class="block">Same as <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#worked(int)"><code>worked(1)</code></a>.</div>
</li>
</ul>
<a name="worked(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>worked</h4>
<pre>public&nbsp;void&nbsp;worked(int&nbsp;work)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#worked(int)" title="class or interface in org.eclipse.core.runtime">worked</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a></code></dd>
</dl>
</li>
</ul>
<a name="skipped(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>skipped</h4>
<pre>public final&nbsp;void&nbsp;skipped(int&nbsp;ticks)</pre>
<div class="block">Same as <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#setWorkRemaining(int)"><code>setWorkRemaining(totalParent - usedForParent)</code></a>.</div>
</li>
</ul>
<a name="skipped()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>skipped</h4>
<pre>public final&nbsp;void&nbsp;skipped()</pre>
<div class="block">Same as <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#skipped(int)"><code>skipped(1)</code></a>.</div>
</li>
</ul>
<a name="setCanceled(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCanceled</h4>
<pre>public final&nbsp;void&nbsp;setCanceled(boolean&nbsp;b)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true#setCanceled(boolean)" title="class or interface in org.eclipse.core.runtime">setCanceled</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitor.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitor</a></code></dd>
</dl>
</li>
</ul>
<a name="newChild()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newChild</h4>
<pre>public final&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;newChild()</pre>
<div class="block">Same as <a href="../../../../org/eclipse/oomph/util/SubMonitor.html#newChild(int)"><code>newChild(1)</code></a>.</div>
</li>
</ul>
<a name="newChild(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newChild</h4>
<pre>public final&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;newChild(int&nbsp;totalWork)</pre>
<div class="block"><p>Creates a sub progress monitor that will consume the given number of ticks from the
receiver. It is not necessary to call <code>beginTask</code> or <code>done</code> on the
result. However, the resulting progress monitor will not report any work after the first
call to done() or before ticks are allocated. Ticks may be allocated by calling beginTask
or setWorkRemaining.</p>
<p>Each SubMonitor only has one active child at a time. Each time newChild() is called, the
result becomes the new active child and any unused progress from the previously-active child is
consumed.</p>
<p>This is property makes it unnecessary to call done() on a SubMonitor instance, since child
monitors are automatically cleaned up the next time the parent is touched.</p>
<code><pre>
////////////////////////////////////////////////////////////////////////////
// Example 1: Typical usage of newChild
void myMethod(IProgressMonitor parent) {
SubMonitor progress = SubMonitor.convert(parent, 100);
doSomething(progress.newChild(50));
doSomethingElse(progress.newChild(50));
}
////////////////////////////////////////////////////////////////////////////
// Example 2: Demonstrates the function of active children. Creating children
// is sufficient to smoothly report progress, even if worked(...) and done()
// are never called.
void myMethod(IProgressMonitor parent) {
SubMonitor progress = SubMonitor.convert(parent, 100);
for (int i = 0; i < 100; i++) {
// Creating the next child monitor will clean up the previous one,
// causing progress to be reported smoothly even if we don't do anything
// with the monitors we create
progress.newChild(1);
}
}
////////////////////////////////////////////////////////////////////////////
// Example 3: Demonstrates a common anti-pattern
void wrongMethod(IProgressMonitor parent) {
SubMonitor progress = SubMonitor.convert(parent, 100);
// WRONG WAY: Won't have the intended effect, as only one of these progress
// monitors may be active at a time and the other will report no progress.
callMethod(progress.newChild(50), computeValue(progress.newChild(50)));
}
void rightMethod(IProgressMonitor parent) {
SubMonitor progress = SubMonitor.convert(parent, 100);
// RIGHT WAY: Break up method calls so that only one SubMonitor is in use at a time.
Object someValue = computeValue(progress.newChild(50));
callMethod(progress.newChild(50), someValue);
}
</pre></code></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>totalWork</code> - number of ticks to consume from the receiver</dd>
<dt><span class="strong">Returns:</span></dt><dd>new sub progress monitor that may be used in place of a new SubMonitor</dd></dl>
</li>
</ul>
<a name="newChild(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newChild</h4>
<pre>public final&nbsp;<a href="../../../../org/eclipse/oomph/util/SubMonitor.html" title="class in org.eclipse.oomph.util">SubMonitor</a>&nbsp;newChild(int&nbsp;totalWork,
int&nbsp;suppressFlags)</pre>
<div class="block"><p>Creates a sub progress monitor that will consume the given number of ticks from the
receiver. It is not necessary to call <code>beginTask</code> or <code>done</code> on the
result. However, the resulting progress monitor will not report any work after the first
call to done() or before ticks are allocated. Ticks may be allocated by calling beginTask
or setWorkRemaining.</p>
<p>Each SubMonitor only has one active child at a time. Each time newChild() is called, the
result becomes the new active child and any unused progress from the previously-active child is
consumed.</p>
<p>This is property makes it unnecessary to call done() on a SubMonitor instance, since child
monitors are automatically cleaned up the next time the parent is touched.</p>
<code><pre>
////////////////////////////////////////////////////////////////////////////
// Example 1: Typical usage of newChild
void myMethod(IProgressMonitor parent) {
SubMonitor progress = SubMonitor.convert(parent, 100);
doSomething(progress.newChild(50));
doSomethingElse(progress.newChild(50));
}
////////////////////////////////////////////////////////////////////////////
// Example 2: Demonstrates the function of active children. Creating children
// is sufficient to smoothly report progress, even if worked(...) and done()
// are never called.
void myMethod(IProgressMonitor parent) {
SubMonitor progress = SubMonitor.convert(parent, 100);
for (int i = 0; i < 100; i++) {
// Creating the next child monitor will clean up the previous one,
// causing progress to be reported smoothly even if we don't do anything
// with the monitors we create
progress.newChild(1);
}
}
////////////////////////////////////////////////////////////////////////////
// Example 3: Demonstrates a common anti-pattern
void wrongMethod(IProgressMonitor parent) {
SubMonitor progress = SubMonitor.convert(parent, 100);
// WRONG WAY: Won't have the intended effect, as only one of these progress
// monitors may be active at a time and the other will report no progress.
callMethod(progress.newChild(50), computeValue(progress.newChild(50)));
}
void rightMethod(IProgressMonitor parent) {
SubMonitor progress = SubMonitor.convert(parent, 100);
// RIGHT WAY: Break up method calls so that only one SubMonitor is in use at a time.
Object someValue = computeValue(progress.newChild(50));
callMethod(progress.newChild(50), someValue);
}
</pre></code></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>totalWork</code> - number of ticks to consume from the receiver</dd>
<dt><span class="strong">Returns:</span></dt><dd>new sub progress monitor that may be used in place of a new SubMonitor</dd></dl>
</li>
</ul>
<a name="childDone()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>childDone</h4>
<pre>public&nbsp;void&nbsp;childDone()</pre>
</li>
</ul>
<a name="clearBlocked()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearBlocked</h4>
<pre>public final&nbsp;void&nbsp;clearBlocked()</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitorWithBlocking.html?is-external=true#clearBlocked()" title="class or interface in org.eclipse.core.runtime">clearBlocked</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitorWithBlocking.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitorWithBlocking</a></code></dd>
</dl>
</li>
</ul>
<a name="setBlocked(org.eclipse.core.runtime.IStatus)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBlocked</h4>
<pre>public final&nbsp;void&nbsp;setBlocked(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IStatus.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IStatus</a>&nbsp;reason)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitorWithBlocking.html?is-external=true#setBlocked(org.eclipse.core.runtime.IStatus)" title="class or interface in org.eclipse.core.runtime">setBlocked</a></code>&nbsp;in interface&nbsp;<code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IProgressMonitorWithBlocking.html?is-external=true" title="class or interface in org.eclipse.core.runtime">IProgressMonitorWithBlocking</a></code></dd>
</dl>
</li>
</ul>
<a name="eq(java.lang.Object, java.lang.Object)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>eq</h4>
<pre>protected static&nbsp;boolean&nbsp;eq(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o1,
<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o2)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SubMonitor.html">Use</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/oomph/util/StringUtil.html" title="class in org.eclipse.oomph.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/eclipse/oomph/util/SubMonitor.ProbingMode.html" title="enum in org.eclipse.oomph.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/oomph/util/SubMonitor.html" target="_top">Frames</a></li>
<li><a href="SubMonitor.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><i class="copyright">Copyright (c) 2014 Eike Stepper (Loehne, Germany) and others.<br>All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v20.html</i></small></p>
</body>
</html>