<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.ui.internal.templates</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.ui.internal.templates</strong></font><br>
               Class XSLTemplatesPage</h2><br><hr><pre>public class <strong>XSLTemplatesPage</strong>
extends AbstractTemplatesPage</pre>The XSL Templates Page is used by the TemplatesViewer to display available
 XSL Templates for use within a XSL Structured Text Editor. It is provided as
 an example on how other SSE editors can contribute their templates to the
 page.<p></p><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_XSLTemplatesPage">XSLTemplatesPage</a></strong>(org.eclipse.wst.xsl.ui.internal.editor.XSLEditor xslTextEditor)</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>protected java.lang.String[]</code></td><td width="" align="left"><code><a href="#method_getContextTypeIds">getContextTypeIds</a>(IDocument document
         ,
      int offset)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected ContextTypeRegistry</code></td><td width="" align="left"><code><a href="#method_getContextTypeRegistry">getContextTypeRegistry</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected java.lang.String</code></td><td width="" align="left"><code><a href="#method_getPreferencePageId">getPreferencePageId</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected IPreferenceStore</code></td><td width="" align="left"><code><a href="#method_getTemplatePreferenceStore">getTemplatePreferenceStore</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public TemplateStore</code></td><td width="" align="left"><code><a href="#method_getTemplateStore">getTemplateStore</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected void</code></td><td width="" align="left"><code><a href="#method_insertTemplate">insertTemplate</a>(Template template
         ,
      IDocument document)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected boolean</code></td><td width="" align="left"><code><a href="#method_isValidTemplate">isValidTemplate</a>(IDocument document
         ,
      Template template
         ,
      int offset
         ,
      int length)</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_XSLTemplatesPage">XSLTemplatesPage</a></h2><p><code>public <strong>XSLTemplatesPage</strong>(org.eclipse.wst.xsl.ui.internal.editor.XSLEditor xslTextEditor)</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_getContextTypeIds">getContextTypeIds</a></h2><p><code>protected java.lang.String[] <strong>getContextTypeIds</strong>(IDocument document
         ,
      int offset)</code></p><p></p><h3>Parameters</h3><p><code>document</code></p><p><code>offset</code></p><h3>Returns</h3><p><code>java.lang.String[]</code></p><hr><h2><a name="method_getContextTypeRegistry">getContextTypeRegistry</a></h2><p><code>protected ContextTypeRegistry <strong>getContextTypeRegistry</strong>()</code></p><p></p><h3>Returns</h3><p><code>ContextTypeRegistry</code></p><hr><h2><a name="method_getPreferencePageId">getPreferencePageId</a></h2><p><code>protected java.lang.String <strong>getPreferencePageId</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_getTemplatePreferenceStore">getTemplatePreferenceStore</a></h2><p><code>protected IPreferenceStore <strong>getTemplatePreferenceStore</strong>()</code></p><p></p><h3>Returns</h3><p><code>IPreferenceStore</code></p><hr><h2><a name="method_getTemplateStore">getTemplateStore</a></h2><p><code>public TemplateStore <strong>getTemplateStore</strong>()</code></p><p></p><h3>Returns</h3><p><code>TemplateStore</code></p><hr><h2><a name="method_insertTemplate">insertTemplate</a></h2><p><code>protected void <strong>insertTemplate</strong>(Template template
         ,
      IDocument document)</code></p><p></p><h3>Parameters</h3><p><code>template</code></p><p><code>document</code></p><hr><h2><a name="method_isValidTemplate">isValidTemplate</a></h2><p><code>protected boolean <strong>isValidTemplate</strong>(IDocument document
         ,
      Template template
         ,
      int offset
         ,
      int length)</code></p><p></p><h3>Parameters</h3><p><code>document</code></p><p><code>template</code></p><p><code>offset</code></p><p><code>length</code></p><h3>Returns</h3><p><code>boolean</code></p><hr></body></html>