<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.ui.internal.contentoutline</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.ui.internal.contentoutline</strong></font><br>
               Class JFaceNodeLabelProvider</h2><br><hr><pre>public class <strong>JFaceNodeLabelProvider</strong>
extends ColumnLabelProvider</pre>A (column) label provider backed by JFaceNodeAdapters.<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_JFaceNodeLabelProvider">JFaceNodeLabelProvider</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>protected IJFaceNodeAdapter</code></td><td width="" align="left"><code><a href="#method_getAdapter">getAdapter</a>(java.lang.Object adaptable)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Returns the JFace adapter for the specified object.</td></tr><tr valign="top"><td width="20%" align="right"><code>public Image</code></td><td width="" align="left"><code><a href="#method_getImage">getImage</a>(java.lang.Object element)</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_getText">getText</a>(java.lang.Object element)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_isLabelProperty">isLabelProperty</a>(java.lang.Object element
         ,
      java.lang.String property)</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_JFaceNodeLabelProvider">JFaceNodeLabelProvider</a></h2><p><code>public <strong>JFaceNodeLabelProvider</strong>()</code></p><p>JFaceNodeLabelProvider constructor comment.</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_getAdapter">getAdapter</a></h2><p><code>protected IJFaceNodeAdapter <strong>getAdapter</strong>(java.lang.Object adaptable)</code></p><p>Returns the JFace adapter for the specified object.</p><h3>Parameters</h3><p><code>adaptable</code> - java.lang.Object The object to get the adapter for</p><h3>Returns</h3><p><code>IJFaceNodeAdapter</code></p><hr><h2><a name="method_getImage">getImage</a></h2><p><code>public Image <strong>getImage</strong>(java.lang.Object element)</code></p><p></p><h3>Parameters</h3><p><code>element</code></p><h3>Returns</h3><p><code>Image</code></p><hr><h2><a name="method_getText">getText</a></h2><p><code>public java.lang.String <strong>getText</strong>(java.lang.Object element)</code></p><p></p><h3>Parameters</h3><p><code>element</code></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_isLabelProperty">isLabelProperty</a></h2><p><code>public boolean <strong>isLabelProperty</strong>(java.lang.Object element
         ,
      java.lang.String property)</code></p><p></p><h3>Parameters</h3><p><code>element</code></p><p><code>property</code></p><h3>Returns</h3><p><code>boolean</code></p><hr></body></html>