<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.ui.internal.contentassist</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.ui.internal.contentassist</strong></font><br>
               Class XSLTemplateCompletionProcessor</h2><br><hr><pre>package-private class <strong>XSLTemplateCompletionProcessor</strong>
extends TemplateCompletionProcessor</pre>Completion processor for XML Templates. Most of the work is already done by
 the XML Content Assist processor, so by the time the
 XMLTemplateCompletionProcessor is asked for content assist proposals, the
 XML content assist processor has already set the context type for
 templates.<hr><table width="100%" border="1"><tr bgcolor="#CCCCFF"><td width="100%"><h2>Constructor Summary</h2></td></tr><tr><td><code><strong><a href="#con_XSLTemplateCompletionProcessor">XSLTemplateCompletionProcessor</a></strong>()</code></td></tr></table><br><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Method Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>public ICompletionProposal[]</code></td><td width="" align="left"><code><a href="#method_computeCompletionProposals">computeCompletionProposals</a>(ITextViewer viewer
         ,
      int offset)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected ICompletionProposal</code></td><td width="" align="left"><code><a href="#method_createProposal">createProposal</a>(Template template
         ,
      TemplateContext context
         ,
      IRegion region
         ,
      int relevance)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected TemplateContextType</code></td><td width="" align="left"><code><a href="#method_getContextType">getContextType</a>(ITextViewer viewer
         ,
      IRegion region)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected Image</code></td><td width="" align="left"><code><a href="#method_getImage">getImage</a>(Template template)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected Template[]</code></td><td width="" align="left"><code><a href="#method_getTemplates">getTemplates</a>(java.lang.String contextTypeId)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>package-private void</code></td><td width="" align="left"><code><a href="#method_setContextType">setContextType</a>(java.lang.String contextTypeId)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr></table><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Constructor Detail
               </h2></td></tr></table><h2><a name="con_XSLTemplateCompletionProcessor">XSLTemplateCompletionProcessor</a></h2><p><code>package-private <strong>XSLTemplateCompletionProcessor</strong>()</code></p><p></p><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Methods Detail
               </h2></td></tr></table><h2><a name="method_computeCompletionProposals">computeCompletionProposals</a></h2><p><code>public ICompletionProposal[] <strong>computeCompletionProposals</strong>(ITextViewer viewer
         ,
      int offset)</code></p><p></p><h3>Parameters</h3><p><code>viewer</code></p><p><code>offset</code></p><h3>Returns</h3><p><code>ICompletionProposal[]</code></p><hr><h2><a name="method_createProposal">createProposal</a></h2><p><code>protected ICompletionProposal <strong>createProposal</strong>(Template template
         ,
      TemplateContext context
         ,
      IRegion region
         ,
      int relevance)</code></p><p></p><h3>Parameters</h3><p><code>template</code></p><p><code>context</code></p><p><code>region</code></p><p><code>relevance</code></p><h3>Returns</h3><p><code>ICompletionProposal</code></p><hr><h2><a name="method_getContextType">getContextType</a></h2><p><code>protected TemplateContextType <strong>getContextType</strong>(ITextViewer viewer
         ,
      IRegion region)</code></p><p></p><h3>Parameters</h3><p><code>viewer</code></p><p><code>region</code></p><h3>Returns</h3><p><code>TemplateContextType</code></p><hr><h2><a name="method_getImage">getImage</a></h2><p><code>protected Image <strong>getImage</strong>(Template template)</code></p><p></p><h3>Parameters</h3><p><code>template</code></p><h3>Returns</h3><p><code>Image</code></p><hr><h2><a name="method_getTemplates">getTemplates</a></h2><p><code>protected Template[] <strong>getTemplates</strong>(java.lang.String contextTypeId)</code></p><p></p><h3>Parameters</h3><p><code>contextTypeId</code></p><h3>Returns</h3><p><code>Template[]</code></p><hr><h2><a name="method_setContextType">setContextType</a></h2><p><code>package-private void <strong>setContextType</strong>(java.lang.String contextTypeId)</code></p><p></p><h3>Parameters</h3><p><code>contextTypeId</code></p><hr></body></html>