<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.ui.internal.views.stylesheet</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.ui.internal.views.stylesheet</strong></font><br>
               Class ListWorkbenchAdapter</h2><br><hr><pre>public class <strong>ListWorkbenchAdapter</strong>
extends java.lang.Object</pre><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_ListWorkbenchAdapter">ListWorkbenchAdapter</a></strong>(org.eclipse.wst.xsl.core.model.Stylesheet stylesheet
         ,
      java.util.List list
         ,
      java.lang.String label
         ,
      java.lang.String imgPath)</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 java.lang.Object[]</code></td><td width="" align="left"><code><a href="#method_getChildren">getChildren</a>(java.lang.Object o)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public ImageDescriptor</code></td><td width="" align="left"><code><a href="#method_getImageDescriptor">getImageDescriptor</a>(java.lang.Object object)</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_getLabel">getLabel</a>(java.lang.Object o)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.Object</code></td><td width="" align="left"><code><a href="#method_getParent">getParent</a>(java.lang.Object o)</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_ListWorkbenchAdapter">ListWorkbenchAdapter</a></h2><p><code>public <strong>ListWorkbenchAdapter</strong>(org.eclipse.wst.xsl.core.model.Stylesheet stylesheet
         ,
      java.util.List list
         ,
      java.lang.String label
         ,
      java.lang.String imgPath)</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_getChildren">getChildren</a></h2><p><code>public java.lang.Object[] <strong>getChildren</strong>(java.lang.Object o)</code></p><p></p><h3>Parameters</h3><p><code>o</code></p><h3>Returns</h3><p><code>java.lang.Object[]</code></p><hr><h2><a name="method_getImageDescriptor">getImageDescriptor</a></h2><p><code>public ImageDescriptor <strong>getImageDescriptor</strong>(java.lang.Object object)</code></p><p></p><h3>Parameters</h3><p><code>object</code></p><h3>Returns</h3><p><code>ImageDescriptor</code></p><hr><h2><a name="method_getLabel">getLabel</a></h2><p><code>public java.lang.String <strong>getLabel</strong>(java.lang.Object o)</code></p><p></p><h3>Parameters</h3><p><code>o</code></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_getParent">getParent</a></h2><p><code>public java.lang.Object <strong>getParent</strong>(java.lang.Object o)</code></p><p></p><h3>Parameters</h3><p><code>o</code></p><h3>Returns</h3><p><code>java.lang.Object</code></p><hr></body></html>