<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.ui.internal.wizards</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.ui.internal.wizards</strong></font><br>
               Class TemplateLabelProvider</h2><br><hr><pre>package-private class <strong>TemplateLabelProvider</strong>
extends LabelProvider</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_TemplateLabelProvider">TemplateLabelProvider</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 Image</code></td><td width="" align="left"><code><a href="#method_getColumnImage">getColumnImage</a>(java.lang.Object element
         ,
      int columnIndex)</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_getColumnText">getColumnText</a>(java.lang.Object element
         ,
      int columnIndex)</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_TemplateLabelProvider">TemplateLabelProvider</a></h2><p><code>package-private <strong>TemplateLabelProvider</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_getColumnImage">getColumnImage</a></h2><p><code>public Image <strong>getColumnImage</strong>(java.lang.Object element
         ,
      int columnIndex)</code></p><p></p><h3>Parameters</h3><p><code>element</code></p><p><code>columnIndex</code></p><h3>Returns</h3><p><code>Image</code></p><hr><h2><a name="method_getColumnText">getColumnText</a></h2><p><code>public java.lang.String <strong>getColumnText</strong>(java.lang.Object element
         ,
      int columnIndex)</code></p><p></p><h3>Parameters</h3><p><code>element</code></p><p><code>columnIndex</code></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr></body></html>