<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.ui.internal.editor</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.ui.internal.editor</strong></font><br>
               Class SourceFileHyperlink</h2><br><hr><pre>public class <strong>SourceFileHyperlink</strong>
extends java.lang.Object</pre><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_SourceFileHyperlink">SourceFileHyperlink</a></strong>(IRegion hyperLinkRegion
         ,
      IFile linkedFile)</code></td></tr><tr><td><code><strong><a href="#con_SourceFileHyperlink">SourceFileHyperlink</a></strong>(IRegion hyperLinkRegion
         ,
      IFile linkedFile
         ,
      org.eclipse.wst.xsl.core.model.XSLNode node)</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 IRegion</code></td><td width="" align="left"><code><a href="#method_getHyperlinkRegion">getHyperlinkRegion</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.String</code></td><td width="" align="left"><code><a href="#method_getHyperlinkText">getHyperlinkText</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.String</code></td><td width="" align="left"><code><a href="#method_getTypeLabel">getTypeLabel</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_open">open</a>()</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_SourceFileHyperlink">SourceFileHyperlink</a></h2><p><code>public <strong>SourceFileHyperlink</strong>(IRegion hyperLinkRegion
         ,
      IFile linkedFile)</code></p><p></p><hr><h2><a name="con_SourceFileHyperlink">SourceFileHyperlink</a></h2><p><code>public <strong>SourceFileHyperlink</strong>(IRegion hyperLinkRegion
         ,
      IFile linkedFile
         ,
      org.eclipse.wst.xsl.core.model.XSLNode node)</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_getHyperlinkRegion">getHyperlinkRegion</a></h2><p><code>public IRegion <strong>getHyperlinkRegion</strong>()</code></p><p></p><h3>Returns</h3><p><code>IRegion</code></p><hr><h2><a name="method_getHyperlinkText">getHyperlinkText</a></h2><p><code>public java.lang.String <strong>getHyperlinkText</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_getTypeLabel">getTypeLabel</a></h2><p><code>public java.lang.String <strong>getTypeLabel</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_open">open</a></h2><p><code>public void <strong>open</strong>()</code></p><p></p><hr></body></html>