<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- saved from url=(0014)about:internet -->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_19) on Sun Mar 20 20:56:38 PKT 2011 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Tree (Click Extras API - v2.3.0)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.click.extras.tree.Tree class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Tree (Click Extras API - v2.3.0)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/click/extras/tree/CheckboxTree.CheckboxSessionJavascriptRenderer.html" title="class in org.apache.click.extras.tree"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/click/extras/tree/Tree.AbstractJavascriptRenderer.html" title="class in org.apache.click.extras.tree"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/click/extras/tree/Tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.click.extras.tree</FONT>
<BR>
Class Tree</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">org.apache.click.control.AbstractControl</A>
      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.click.extras.tree.Tree</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html" title="class or interface in java.io">Serializable</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/apache/click/extras/tree/CheckboxTree.html" title="class in org.apache.click.extras.tree">CheckboxTree</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>Tree</B><DT>extends <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></DL>
</PRE>

<P>
Provides a tree control  for displaying hierarchical data. The tree operates
 on a hierarchy of <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree"><CODE>TreeNode</CODE></A>'s. Each TreeNode must provide a
 uniquely identified node in the hierarchy.
 <p/>
 Below is a screenshot of the tree in action.

 <table cellspacing='10'>
 <tr>
 <td>
 <img align='middle' hspace='2' src='tree.png' title='Tree'/>
 </td>
 </tr>
 </table>

 <h3>Tree Example</h3>

 An example tree usage is provided below (this code was used to produce the screenshot):

 <pre class="prettyprint">
 public class PlainTreePage extends BorderPage {

     public PlainTreePage() {
         Tree tree = buildTree();
         addControl(tree);
     }

     // This method creates a representation of a Windows OS directory.
     public Tree buildTree() {
         Tree tree = new Tree("tree");

         // Create a node representing the root directory with the specified
         // parameter as the value. Because an id is not specified, a random
         // one will be generated by the node. By default the root node is
         // not rendered by the tree. This can be changed by calling
         // tree.setRootNodeDisplayed(true).
         TreeNode root = new TreeNode("c:");

         // Create a new directory, setting the root directory as its parent. Here
         // we do specify a id as the 2nd argument, so no id is generated.
         TreeNode dev = new TreeNode("dev","1", root);

         // The following two nodes represent files in the directory.
         // The false argument to the constructor below means that these nodes
         // does not support child nodes. Makes sense since files cannot contain
         // directories or other files
         new TreeNode("java.pdf", "2", dev, false);
         new TreeNode("ruby.pdf", "3", dev, false);

         TreeNode programFiles = new TreeNode("program files", "4", root);
         TreeNode adobe = new TreeNode("Adobe", "5", programFiles);

         TreeNode download = new TreeNode("downloads","6", root);
         TreeNode web = new TreeNode("web", "7", download);
         new TreeNode("html.pdf", "8", web);
         new TreeNode("css.html", "9", web);

         TreeNode databases = new TreeNode("databases", "10", download);
         new TreeNode("mysql.html","11",databases);
         new TreeNode("oracle.pdf","12",databases);
         new TreeNode("postgres","13",databases);

         tree.setRootNode(root);
         return tree;
     }
 } </pre>

 <a name="resources"></a>
 <h3>CSS and JavaScript resources</h3>

 The Tree control makes use of the following resources
 (which Click automatically deploys to the application directory, <tt>/click/tree</tt>):

 <ul>
 <li><tt>click/tree/tree.css</tt></li>
 <li><tt>click/tree/tree.js</tt></li>
 <li><tt>click/tree/cookie-helper.js</tt></li>
 </ul>

 To import these Tree files simply reference the variables
 <span class="blue">$headElements</span> and
 <span class="blue">$jsElements</span> in the page template. For example:

 <pre class="codeHtml">
 &lt;html&gt;
 &lt;head&gt;
 <span class="blue">$headElements</span>
 &lt;/head&gt;
 &lt;body&gt;

 <span class="red">$tree</span>

 <span class="blue">$jsElements</span>
 &lt;/body&gt;
 &lt;/html&gt; </pre>

 <a name="customization"></a>
 <h3>Tree customization</h3>

 The following list of stylesheet classes are used to render the tree
 icons. One can easily change the <tt>tree.css</tt> to use a different set of
 icons. Note: all CSS classes are set inline in &lt;span&gt; elements.
 <ul>
 <li>&lt;span class=<span class="blue">"leafIcon"</span>&gt; - renders the leaf node of the tree</li>
 <li>&lt;span class=<span class="blue">"expandedIcon"</span>&gt; - renders the expanded state of a node</li>
 <li>&lt;span class=<span class="blue">"collapsedIcon"</span>&gt; - renders the collapsed state of a node</li>
 </ul>

 <strong>Credit</strong> goes to <a href="http://wicket.apache.org">Wicket</a>
 for these images:
 <ul>
      <li>images/folder-closed.png</li>
      <li>images/folder-open.png</li>
      <li>images/item.png</li>
 </ul>
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#org.apache.click.extras.tree.Tree">Serialized Form</A></DL>
<HR>

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->

<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.AbstractJavascriptRenderer.html" title="class in org.apache.click.extras.tree">Tree.AbstractJavascriptRenderer</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Please note</b> this class is <b>not</b> meant for public use.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.Callback.html" title="interface in org.apache.click.extras.tree">Tree.Callback</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides a TreeNode callback interface.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.CookieHandler.html" title="class in org.apache.click.extras.tree">Tree.CookieHandler</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Please note</strong> this class is only meant for
 developers of this control, not users.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.CookieRenderer.html" title="class in org.apache.click.extras.tree">Tree.CookieRenderer</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Please note</strong> this class is only meant for
 developers of this control, not users.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.JavascriptHandler.html" title="interface in org.apache.click.extras.tree">Tree.JavascriptHandler</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Please note</b> this class is <b>not</b> meant for public use.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.JavascriptRenderer.html" title="interface in org.apache.click.extras.tree">Tree.JavascriptRenderer</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Please note</b> this class is <b>not</b> meant for public use.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.SessionHandler.html" title="class in org.apache.click.extras.tree">Tree.SessionHandler</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Please note</strong> this class is only meant for developers of
 this control, not users.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.SessionRenderer.html" title="class in org.apache.click.extras.tree">Tree.SessionRenderer</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Please note</strong> this class is only meant for
 developers of this control, not users.</TD>
</TR>
</TABLE>
&nbsp;<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#COLLAPSE_ICON">COLLAPSE_ICON</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The tree's collapsed icon name: <tt>"collapsedIcon"</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#EXPAND_ICON">EXPAND_ICON</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The tree's expand icon name: <tt>"expandedIcon"</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#EXPAND_TREE_NODE_PARAM">EXPAND_TREE_NODE_PARAM</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The tree's expand/collapse parameter name: <tt>"expandTreeNode"</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/ActionLink.html" title="class or interface in org.apache.click.control">ActionLink</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#expandLink">expandLink</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The tree node expand / collapse link.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#expandOrCollapseNodeIds">expandOrCollapseNodeIds</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array of ids that must be expanded or collapsed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#JAVASCRIPT_COOKIE_POLICY">JAVASCRIPT_COOKIE_POLICY</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicator for using cookies to implement client side behavior.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#JAVASCRIPT_SESSION_POLICY">JAVASCRIPT_SESSION_POLICY</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicator for using the session to implement client side behavior.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/click/extras/tree/Tree.JavascriptHandler.html" title="interface in org.apache.click.extras.tree">Tree.JavascriptHandler</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#javascriptHandler">javascriptHandler</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keep track of node id's, as they are selected, deselected,
 expanded and collapsed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#LEAF_ICON">LEAF_ICON</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The tree's leaf icon name: <tt>"leafIcon"</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#rootNode">rootNode</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The tree's hierarchical data model.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#SELECT_TREE_NODE_PARAM">SELECT_TREE_NODE_PARAM</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The tree's select/deselect parameter name: <tt>"selectTreeNode"</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/ActionLink.html" title="class or interface in org.apache.click.control">ActionLink</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#selectLink">selectLink</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The Tree node select / deselect link.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#selectOrDeselectNodeIds">selectOrDeselectNodeIds</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array of ids that must be selected or deselected.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.click.control.AbstractControl"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.click.control.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#actionListener" title="class or interface in org.apache.click.control">actionListener</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#attributes" title="class or interface in org.apache.click.control">attributes</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#behaviors" title="class or interface in org.apache.click.control">behaviors</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#headElements" title="class or interface in org.apache.click.control">headElements</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#listener" title="class or interface in org.apache.click.control">listener</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#listenerMethod" title="class or interface in org.apache.click.control">listenerMethod</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#messages" title="class or interface in org.apache.click.control">messages</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#name" title="class or interface in org.apache.click.control">name</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#parent" title="class or interface in org.apache.click.control">parent</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#styles" title="class or interface in org.apache.click.control">styles</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.click.Control"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface org.apache.click.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#CONTROL_MESSAGES" title="class or interface in org.apache.click">CONTROL_MESSAGES</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#Tree()">Tree</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Tree with no name defined.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#Tree(java.lang.String)">Tree</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an Tree control for the given name.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#addListener(org.apache.click.extras.tree.TreeListener)">addListener</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeListener.html" title="interface in org.apache.click.extras.tree">TreeListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the listener to start receiving tree events.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#bindExpandOrCollapseValues()">bindExpandOrCollapseValues</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method binds the users request of expanded and collapsed nodes to
 the tree's nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#bindRequestValue()">bindRequestValue</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method binds any expand/collapse and select/deselect changes from
 the request parameters.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#bindSelectOrDeselectValues()">bindSelectOrDeselectValues</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method binds the users request of selected nodes to the tree's nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#cleanupSession()">cleanupSession</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method that force the Tree to remove any entries it made in the
 HttpSession.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#collapse(java.lang.String)">collapse</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collapse the node with matching id and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#collapse(org.apache.click.extras.tree.TreeNode)">collapse</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collapse the node and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#collapseAll()">collapseAll</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collapse all the nodes of the tree and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/click/extras/tree/Tree.JavascriptHandler.html" title="interface in org.apache.click.extras.tree">Tree.JavascriptHandler</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#createJavascriptHandler(int)">createJavascriptHandler</A></B>(int&nbsp;javascriptPolicy)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new JavascriptHandler based on the specified policy.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#deselect(java.lang.String)">deselect</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deselect the node with matching id and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#deselect(org.apache.click.extras.tree.TreeNode)">deselect</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deselect the node and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#deselectAll()">deselectAll</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deselect all the nodes of the tree and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#expand(java.lang.String)">expand</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Expand the node with matching id and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#expand(org.apache.click.extras.tree.TreeNode)">expand</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Expand the node and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#expandAll()">expandAll</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Expand all the nodes of the tree and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#expandOrCollapse(java.lang.String[])">expandOrCollapse</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;ids)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Swaps the expand state of all TreeNodes with specified id's.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#find(java.lang.String)">find</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Finds and returns the first node that matches the id.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#find(org.apache.click.extras.tree.TreeNode, java.lang.String)">find</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Finds and returns the first node that matches the id, starting the search
 from the specified node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#fireNodeCollapsed(org.apache.click.extras.tree.TreeNode, boolean)">fireNodeCollapsed</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                  boolean&nbsp;previousState)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notifies all listeners currently registered with the tree, about any
 collapse events.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#fireNodeDeselected(org.apache.click.extras.tree.TreeNode, boolean)">fireNodeDeselected</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                   boolean&nbsp;previousState)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notifies all listeners currently registered with the tree, about any
 deselection events.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#fireNodeExpanded(org.apache.click.extras.tree.TreeNode, boolean)">fireNodeExpanded</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                 boolean&nbsp;previousState)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notifies all listeners currently registered with the tree, about any
 expand events.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#fireNodeSelected(org.apache.click.extras.tree.TreeNode, boolean)">fireNodeSelected</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                 boolean&nbsp;previousState)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notifies all listeners currently registered with the tree, about any
 selection events.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getControlSizeEst()">getControlSizeEst</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Decorator.html" title="class or interface in org.apache.click.control">Decorator</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getDecorator()">getDecorator</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the tree's decorator.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getExpandClass(org.apache.click.extras.tree.TreeNode)">getExpandClass</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query the specified treeNode and check which css class to apply.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getExpandedNodes(boolean)">getExpandedNodes</A></B>(boolean&nbsp;includeInvisibleNodes)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all the nodes that were expanded.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/ActionLink.html" title="class or interface in org.apache.click.control">ActionLink</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getExpandLink()">getExpandLink</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the tree node expand / collapse link.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html" title="class or interface in java.util">List</A>&lt;<A HREF="http://click.apache.org/docs/click-api/org/apache/click/element/Element.html" title="class or interface in org.apache.click.element">Element</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getHeadElements()">getHeadElements</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the Tree HTML HEAD elements for the following resources:
 <p/>
 
 <tt>click/tree/tree.css</tt>
 <tt>click/tree/tree.js</tt>
 <tt>click/tree/cookie-helper.js</tt>
 </TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getHeight()">getHeight</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the CSS "height" style of the tree, or null if not defined.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getHref(java.util.Map)">getHref</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util">Map</A>&lt;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>,? extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&gt;&nbsp;parameters)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return an anchor &lt;a&gt; tag href attribute for the given parameters.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getIconClass(org.apache.click.extras.tree.TreeNode)">getIconClass</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query the specified treeNode and check which css class to apply for
 the icons.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getRequestValue(java.lang.String)">getRequestValue</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the specified named parameter or a empty string
 <span class="st">""</span> if not found.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getRequestValues(java.lang.String)">getRequestValues</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of all values of the specified named parameter or null
 if the parameter does not exist.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getRootNode()">getRootNode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the tree's root TreeNode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getSelectedNodes(boolean)">getSelectedNodes</A></B>(boolean&nbsp;includeInvisibleNodes)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all the nodes that were selected.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/ActionLink.html" title="class or interface in org.apache.click.control">ActionLink</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getSelectLink()">getSelectLink</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the tree node select / deselect link.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#getWidth()">getWidth</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the CSS "width" style attribute of the tree, or null if not
 defined.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#hasRootNode()">hasRootNode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return if tree has a root node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isExpandedParent(org.apache.click.extras.tree.TreeNode)">isExpandedParent</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Helper method indicating if the specified node is both
 expanded and has at least 1 child node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isJavascriptEnabled()">isJavascriptEnabled</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns if javascript functionality are enabled or not.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()">isNotifyListeners</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query if the tree will notify its tree listeners of any change
 to the tree's model.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isRootNodeDisplayed()">isRootNodeDisplayed</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return if the tree's root node should be displayed or not.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html" title="class or interface in java.util">Iterator</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#iterator()">iterator</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an iterator over all the nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html" title="class or interface in java.util">Iterator</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#iterator(org.apache.click.extras.tree.TreeNode)">iterator</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an iterator over all nodes starting from the specified node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#onDestroy()">onDestroy</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method cleans up the <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#expandLink"><CODE>expandLink</CODE></A> and <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#selectLink"><CODE>selectLink</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#onProcess()">onProcess</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes user request to change state of the tree.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#processNodes(java.util.Collection, org.apache.click.extras.tree.Tree.Callback)">processNodes</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;&nbsp;nodes,
             <A HREF="../../../../../org/apache/click/extras/tree/Tree.Callback.html" title="interface in org.apache.click.extras.tree">Tree.Callback</A>&nbsp;callback)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides callback functionality for all the specified nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#processNodes(java.lang.String[], org.apache.click.extras.tree.Tree.Callback)">processNodes</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;ids,
             <A HREF="../../../../../org/apache/click/extras/tree/Tree.Callback.html" title="interface in org.apache.click.extras.tree">Tree.Callback</A>&nbsp;callback)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides callback functionality for all the specified nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#removeListener(org.apache.click.extras.tree.TreeListener)">removeListener</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeListener.html" title="interface in org.apache.click.extras.tree">TreeListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the listener to stop receiving tree events.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#render(org.apache.click.util.HtmlStringBuffer)">render</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Render the HTML representation of the tree.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#renderExpandAndCollapseAction(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode)">renderExpandAndCollapseAction</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                              <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Render the expand and collapse action of the tree.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#renderIcon(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode)">renderIcon</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
           <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Render the node's icon depending on the current state of the node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#renderTree(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode, int)">renderTree</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
           <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode,
           int&nbsp;indentation)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Render the children of the specified tree node as html markup and append
 the output to the specified buffer.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#renderTreeNode(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode, int)">renderTreeNode</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
               <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode,
               int&nbsp;indentation)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Render the specified treeNode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#renderTreeNodeEnd(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode, int)">renderTreeNodeEnd</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                  <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode,
                  int&nbsp;indentation)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interception point to render html after the tree node was rendered.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#renderTreeNodeStart(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode, int)">renderTreeNodeStart</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                    <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode,
                    int&nbsp;indentation)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interception point to render html before the tree node is rendered.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#renderValue(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode)">renderValue</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
            <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Render the node's value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#select(java.lang.String)">select</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select the node with matching id and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#select(org.apache.click.extras.tree.TreeNode)">select</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select the node and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#selectAll()">selectAll</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select all the nodes of the tree and inform any listeners of the change.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#selectOrDeselect(java.lang.String[])">selectOrDeselect</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;ids)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Swaps the select state of all TreeNodes with specified id's to the new value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setActionListener(org.apache.click.ActionListener)">setActionListener</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/ActionListener.html" title="class or interface in org.apache.click">ActionListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the control's action listener.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setDecorator(org.apache.click.control.Decorator)">setDecorator</A></B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Decorator.html" title="class or interface in org.apache.click.control">Decorator</A>&nbsp;decorator)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the tree's decorator which enables a interception point for users to render
 the tree nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setExpandState(java.util.Collection, boolean)">setExpandState</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;&nbsp;nodes,
               boolean&nbsp;newValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the TreeNode expand state of each node in the specified collection
 to the new value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setExpandState(java.lang.String, boolean)">setExpandState</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id,
               boolean&nbsp;newValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the expand state of the TreeNode with specified id to the new value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setExpandState(org.apache.click.extras.tree.TreeNode, boolean)">setExpandState</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
               boolean&nbsp;newValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the TreeNode expand state to the new value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setHeight(java.lang.String)">setHeight</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the the CSS "height" style attribute of the tree.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setJavascriptEnabled(boolean)">setJavascriptEnabled</A></B>(boolean&nbsp;newValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enables javascript functionality.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setJavascriptEnabled(boolean, int)">setJavascriptEnabled</A></B>(boolean&nbsp;newValue,
                     int&nbsp;javascriptPolicy)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overloads <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setJavascriptEnabled(boolean)"><CODE>setJavascriptEnabled(boolean)</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setListener(java.lang.Object, java.lang.String)">setListener</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;listener,
            <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;method)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the controls event listener.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setName(java.lang.String)">setName</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setNotifyListeners(boolean)">setNotifyListeners</A></B>(boolean&nbsp;notifyListeners)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enable or disable if the tree will notify its tree listeners of any change
 to the tree's model.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setRootNode(org.apache.click.extras.tree.TreeNode)">setRootNode</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;rootNode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the tree's root TreeNode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setRootNodeDisplayed(boolean)">setRootNodeDisplayed</A></B>(boolean&nbsp;rootNodeDisplayed)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets whether the tree's root node should be displayed or not.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setSelectState(java.util.Collection, boolean)">setSelectState</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;&nbsp;nodes,
               boolean&nbsp;newValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the TreeNode select state of each node in the specified collection
 to the new value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setSelectState(java.lang.String, boolean)">setSelectState</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id,
               boolean&nbsp;newValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the select state of the TreeNode with specified id to the new value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setSelectState(org.apache.click.extras.tree.TreeNode, boolean)">setSelectState</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
               boolean&nbsp;newValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the TreeNode select state to the new value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setWidth(java.lang.String)">setWidth</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the the CSS "width" style attribute of the tree.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#shouldRenderChildren(org.apache.click.extras.tree.TreeNode)">shouldRenderChildren</A></B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check the state of the specified node if its children
 should be rendered or not.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#toString()">toString</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a HTML rendered Tree string of all the tree's nodes.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.click.control.AbstractControl"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.click.control.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#addBehavior(org.apache.click.Behavior)" title="class or interface in org.apache.click.control">addBehavior</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#addStyleClass(java.lang.String)" title="class or interface in org.apache.click.control">addStyleClass</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#appendAttributes(org.apache.click.util.HtmlStringBuffer)" title="class or interface in org.apache.click.control">appendAttributes</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#dispatchActionEvent()" title="class or interface in org.apache.click.control">dispatchActionEvent</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getActionListener()" title="class or interface in org.apache.click.control">getActionListener</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getAttribute(java.lang.String)" title="class or interface in org.apache.click.control">getAttribute</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getAttributes()" title="class or interface in org.apache.click.control">getAttributes</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getBehaviors()" title="class or interface in org.apache.click.control">getBehaviors</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getContext()" title="class or interface in org.apache.click.control">getContext</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getHtmlImports()" title="class or interface in org.apache.click.control">getHtmlImports</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getId()" title="class or interface in org.apache.click.control">getId</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getMessage(java.lang.String)" title="class or interface in org.apache.click.control">getMessage</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getMessage(java.lang.String, java.lang.Object...)" title="class or interface in org.apache.click.control">getMessage</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getMessages()" title="class or interface in org.apache.click.control">getMessages</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getName()" title="class or interface in org.apache.click.control">getName</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getPage()" title="class or interface in org.apache.click.control">getPage</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getParent()" title="class or interface in org.apache.click.control">getParent</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getStyle(java.lang.String)" title="class or interface in org.apache.click.control">getStyle</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getStyles()" title="class or interface in org.apache.click.control">getStyles</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getTag()" title="class or interface in org.apache.click.control">getTag</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#hasAttribute(java.lang.String)" title="class or interface in org.apache.click.control">hasAttribute</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#hasAttributes()" title="class or interface in org.apache.click.control">hasAttributes</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#hasBehaviors()" title="class or interface in org.apache.click.control">hasBehaviors</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#hasStyles()" title="class or interface in org.apache.click.control">hasStyles</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#isAjaxTarget(org.apache.click.Context)" title="class or interface in org.apache.click.control">isAjaxTarget</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#onDeploy(javax.servlet.ServletContext)" title="class or interface in org.apache.click.control">onDeploy</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#onInit()" title="class or interface in org.apache.click.control">onInit</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#onRender()" title="class or interface in org.apache.click.control">onRender</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#removeBehavior(org.apache.click.Behavior)" title="class or interface in org.apache.click.control">removeBehavior</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#removeStyleClass(java.lang.String)" title="class or interface in org.apache.click.control">removeStyleClass</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#renderTagBegin(java.lang.String, org.apache.click.util.HtmlStringBuffer)" title="class or interface in org.apache.click.control">renderTagBegin</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#renderTagEnd(java.lang.String, org.apache.click.util.HtmlStringBuffer)" title="class or interface in org.apache.click.control">renderTagEnd</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setAttribute(java.lang.String, java.lang.String)" title="class or interface in org.apache.click.control">setAttribute</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setId(java.lang.String)" title="class or interface in org.apache.click.control">setId</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setParent(java.lang.Object)" title="class or interface in org.apache.click.control">setParent</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setStyle(java.lang.String, java.lang.String)" title="class or interface in org.apache.click.control">setStyle</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="EXPAND_TREE_NODE_PARAM"><!-- --></A><H3>
EXPAND_TREE_NODE_PARAM</H3>
<PRE>
public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>EXPAND_TREE_NODE_PARAM</B></PRE>
<DL>
<DD>The tree's expand/collapse parameter name: <tt>"expandTreeNode"</tt>.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.click.extras.tree.Tree.EXPAND_TREE_NODE_PARAM">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SELECT_TREE_NODE_PARAM"><!-- --></A><H3>
SELECT_TREE_NODE_PARAM</H3>
<PRE>
public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>SELECT_TREE_NODE_PARAM</B></PRE>
<DL>
<DD>The tree's select/deselect parameter name: <tt>"selectTreeNode"</tt>.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.click.extras.tree.Tree.SELECT_TREE_NODE_PARAM">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="JAVASCRIPT_COOKIE_POLICY"><!-- --></A><H3>
JAVASCRIPT_COOKIE_POLICY</H3>
<PRE>
public static final int <B>JAVASCRIPT_COOKIE_POLICY</B></PRE>
<DL>
<DD>Indicator for using cookies to implement client side behavior.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.click.extras.tree.Tree.JAVASCRIPT_COOKIE_POLICY">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="JAVASCRIPT_SESSION_POLICY"><!-- --></A><H3>
JAVASCRIPT_SESSION_POLICY</H3>
<PRE>
public static final int <B>JAVASCRIPT_SESSION_POLICY</B></PRE>
<DL>
<DD>Indicator for using the session to implement client side behavior.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.click.extras.tree.Tree.JAVASCRIPT_SESSION_POLICY">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="EXPAND_ICON"><!-- --></A><H3>
EXPAND_ICON</H3>
<PRE>
protected static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>EXPAND_ICON</B></PRE>
<DL>
<DD>The tree's expand icon name: <tt>"expandedIcon"</tt>.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.click.extras.tree.Tree.EXPAND_ICON">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="COLLAPSE_ICON"><!-- --></A><H3>
COLLAPSE_ICON</H3>
<PRE>
protected static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>COLLAPSE_ICON</B></PRE>
<DL>
<DD>The tree's collapsed icon name: <tt>"collapsedIcon"</tt>.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.click.extras.tree.Tree.COLLAPSE_ICON">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="LEAF_ICON"><!-- --></A><H3>
LEAF_ICON</H3>
<PRE>
protected static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>LEAF_ICON</B></PRE>
<DL>
<DD>The tree's leaf icon name: <tt>"leafIcon"</tt>.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.click.extras.tree.Tree.LEAF_ICON">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="rootNode"><!-- --></A><H3>
rootNode</H3>
<PRE>
protected <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A> <B>rootNode</B></PRE>
<DL>
<DD>The tree's hierarchical data model.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="selectOrDeselectNodeIds"><!-- --></A><H3>
selectOrDeselectNodeIds</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] <B>selectOrDeselectNodeIds</B></PRE>
<DL>
<DD>Array of ids that must be selected or deselected.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="expandOrCollapseNodeIds"><!-- --></A><H3>
expandOrCollapseNodeIds</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] <B>expandOrCollapseNodeIds</B></PRE>
<DL>
<DD>Array of ids that must be expanded or collapsed.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="selectLink"><!-- --></A><H3>
selectLink</H3>
<PRE>
protected <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/ActionLink.html" title="class or interface in org.apache.click.control">ActionLink</A> <B>selectLink</B></PRE>
<DL>
<DD>The Tree node select / deselect link.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="expandLink"><!-- --></A><H3>
expandLink</H3>
<PRE>
protected <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/ActionLink.html" title="class or interface in org.apache.click.control">ActionLink</A> <B>expandLink</B></PRE>
<DL>
<DD>The tree node expand / collapse link.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="javascriptHandler"><!-- --></A><H3>
javascriptHandler</H3>
<PRE>
protected transient <A HREF="../../../../../org/apache/click/extras/tree/Tree.JavascriptHandler.html" title="interface in org.apache.click.extras.tree">Tree.JavascriptHandler</A> <B>javascriptHandler</B></PRE>
<DL>
<DD>Keep track of node id's, as they are selected, deselected,
 expanded and collapsed.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/click/extras/tree/Tree.JavascriptHandler.html" title="interface in org.apache.click.extras.tree"><CODE>Tree.JavascriptHandler</CODE></A></DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="Tree(java.lang.String)"><!-- --></A><H3>
Tree</H3>
<PRE>
public <B>Tree</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Create an Tree control for the given name.
 <p/>
 The constructor also sets the id attribute to
 <tt>"tree"</tt> and the css class to <tt>"treestyle"</tt>
 to qualify the tree control when styled by tree.css. If the
 css class value is changed, ensure to also change the
 tree.css selectors that still reference <tt>"treestyle"</tt>.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the tree name
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the name is null</DL>
</DL>
<HR>

<A NAME="Tree()"><!-- --></A><H3>
Tree</H3>
<PRE>
public <B>Tree</B>()</PRE>
<DL>
<DD>Create a Tree with no name defined.
 <p/>
 The constructor also sets the id attribute to
 <tt>"tree"</tt> and the css class to <tt>"treestyle"</tt>
 to qualify the tree control when styled by tree.css. If the
 css class value is changed, ensure to also change the
 tree.css selectors that still reference <tt>"treestyle"</tt>.
 <p/>
 <b>Please note</b> the control's name must be defined before it is valid.
<P>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="setName(java.lang.String)"><!-- --></A><H3>
setName</H3>
<PRE>
public void <B>setName</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#setName(java.lang.String)" title="class or interface in org.apache.click">setName</A></CODE> in interface <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setName(java.lang.String)" title="class or interface in org.apache.click.control">setName</A></CODE> in class <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - of the control
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the name is null<DT><B>See Also:</B><DD><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#setName(java.lang.String)" title="class or interface in org.apache.click"><CODE>Control.setName(String)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getRootNode()"><!-- --></A><H3>
getRootNode</H3>
<PRE>
public <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A> <B>getRootNode</B>()</PRE>
<DL>
<DD>Return the tree's root TreeNode. This method will recalculate
 the tree's root node in case a new root node was set.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the tree's root TreeNode.</DL>
</DD>
</DL>
<HR>

<A NAME="hasRootNode()"><!-- --></A><H3>
hasRootNode</H3>
<PRE>
public boolean <B>hasRootNode</B>()</PRE>
<DL>
<DD>Return if tree has a root node.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>boolean indicating if the tree's root has been set.</DL>
</DD>
</DL>
<HR>

<A NAME="isRootNodeDisplayed()"><!-- --></A><H3>
isRootNodeDisplayed</H3>
<PRE>
public boolean <B>isRootNodeDisplayed</B>()</PRE>
<DL>
<DD>Return if the tree's root node should be displayed or not.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>if root node should be displayed</DL>
</DD>
</DL>
<HR>

<A NAME="setRootNodeDisplayed(boolean)"><!-- --></A><H3>
setRootNodeDisplayed</H3>
<PRE>
public void <B>setRootNodeDisplayed</B>(boolean&nbsp;rootNodeDisplayed)</PRE>
<DL>
<DD>Sets whether the tree's root node should be displayed or not.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rootNodeDisplayed</CODE> - true if the root node should be displayed,
 false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="setRootNode(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
setRootNode</H3>
<PRE>
public void <B>setRootNode</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;rootNode)</PRE>
<DL>
<DD>Set the tree's root TreeNode.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rootNode</CODE> - node will be set as the root</DL>
</DD>
</DL>
<HR>

<A NAME="getDecorator()"><!-- --></A><H3>
getDecorator</H3>
<PRE>
public <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Decorator.html" title="class or interface in org.apache.click.control">Decorator</A> <B>getDecorator</B>()</PRE>
<DL>
<DD>Get the tree's decorator.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the tree's decorator.</DL>
</DD>
</DL>
<HR>

<A NAME="setDecorator(org.apache.click.control.Decorator)"><!-- --></A><H3>
setDecorator</H3>
<PRE>
public void <B>setDecorator</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Decorator.html" title="class or interface in org.apache.click.control">Decorator</A>&nbsp;decorator)</PRE>
<DL>
<DD>Set the tree's decorator which enables a interception point for users to render
 the tree nodes.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>decorator</CODE> - the tree's decorator</DL>
</DD>
</DL>
<HR>

<A NAME="isJavascriptEnabled()"><!-- --></A><H3>
isJavascriptEnabled</H3>
<PRE>
public boolean <B>isJavascriptEnabled</B>()</PRE>
<DL>
<DD>Returns if javascript functionality are enabled or not.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>true if javascript functions are enabled, false otherwise<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setJavascriptEnabled(boolean)"><CODE>setJavascriptEnabled(boolean)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setJavascriptEnabled(boolean)"><!-- --></A><H3>
setJavascriptEnabled</H3>
<PRE>
public void <B>setJavascriptEnabled</B>(boolean&nbsp;newValue)</PRE>
<DL>
<DD>Enables javascript functionality.
 <p/>
 If true the tree will be navigable in the browser using javascript,
 instead of doing round trips to the server on each operation.
 <p/>
 With javascript enabled you need to store the values passed from the
 browser between requests. The tree currently supports the
 following options:
 <ul>
     <li><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#JAVASCRIPT_COOKIE_POLICY"><CODE>JAVASCRIPT_COOKIE_POLICY</CODE></A>
     <li><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#JAVASCRIPT_SESSION_POLICY"><CODE>JAVASCRIPT_SESSION_POLICY</CODE></A>
 </ul>
 This method will try and determine which policy should be applied
 to the current request by checking the value
 <A HREF="http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdFromCookie()" title="class or interface in javax.servlet.http"><CODE>HttpServletRequest.isRequestedSessionIdFromCookie()</CODE></A>.
 If <A HREF="http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdFromCookie()" title="class or interface in javax.servlet.http"><CODE>HttpServletRequest.isRequestedSessionIdFromCookie()</CODE></A>
 returns true, <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#JAVASCRIPT_COOKIE_POLICY"><CODE>JAVASCRIPT_COOKIE_POLICY</CODE></A> will be used, otherwise
 <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#JAVASCRIPT_SESSION_POLICY"><CODE>JAVASCRIPT_SESSION_POLICY</CODE></A>.
 <p/>
 <strong>Note:</strong> if javascript is enabled, then the entire
 tree is rendered even if some nodes are in a collapsed state. This
 enables the tree to still be fully navigable in the browser. However
 nodes that are in a collapsed state are still displayed as collapsed
 using the style <tt>"display:none"</tt>.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>newValue</CODE> - the value to set the javascriptEnabled property to
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the context is null<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setJavascriptEnabled(boolean, int)"><CODE>setJavascriptEnabled(boolean, int)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setJavascriptEnabled(boolean, int)"><!-- --></A><H3>
setJavascriptEnabled</H3>
<PRE>
public void <B>setJavascriptEnabled</B>(boolean&nbsp;newValue,
                                 int&nbsp;javascriptPolicy)</PRE>
<DL>
<DD>Overloads <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setJavascriptEnabled(boolean)"><CODE>setJavascriptEnabled(boolean)</CODE></A>. Enables one
 to select the javascript policy to apply.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>newValue</CODE> - the value to set the javascriptEnabled property to<DD><CODE>javascriptPolicy</CODE> - the current javascript policy
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the context is null<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setJavascriptEnabled(boolean)"><CODE>setJavascriptEnabled(boolean)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getWidth()"><!-- --></A><H3>
getWidth</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getWidth</B>()</PRE>
<DL>
<DD>Return the CSS "width" style attribute of the tree, or null if not
 defined.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the CSS "width" style attribute of the tree, or null if not
 defined</DL>
</DD>
</DL>
<HR>

<A NAME="setWidth(java.lang.String)"><!-- --></A><H3>
setWidth</H3>
<PRE>
public void <B>setWidth</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
<DL>
<DD>Set the the CSS "width" style attribute of the tree. For example:

 <pre class="prettyprint">
 Tree tree = new Tree("mytree");
 tree.setWidth("200px"); </pre>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the CSS "width" style attribute</DL>
</DD>
</DL>
<HR>

<A NAME="getHeight()"><!-- --></A><H3>
getHeight</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getHeight</B>()</PRE>
<DL>
<DD>Return the CSS "height" style of the tree, or null if not defined.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the CSS "height" style attribute of the tree, or null if not
 defined</DL>
</DD>
</DL>
<HR>

<A NAME="setHeight(java.lang.String)"><!-- --></A><H3>
setHeight</H3>
<PRE>
public void <B>setHeight</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;value)</PRE>
<DL>
<DD>Set the the CSS "height" style attribute of the tree. For example:

 <pre class="prettyprint">
 Tree tree = new Tree("mytree");
 tree.setHeight("200px"); </pre>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the CSS "height" style attribute</DL>
</DD>
</DL>
<HR>

<A NAME="getHeadElements()"><!-- --></A><H3>
getHeadElements</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html" title="class or interface in java.util">List</A>&lt;<A HREF="http://click.apache.org/docs/click-api/org/apache/click/element/Element.html" title="class or interface in org.apache.click.element">Element</A>&gt; <B>getHeadElements</B>()</PRE>
<DL>
<DD>Return the Tree HTML HEAD elements for the following resources:
 <p/>
 <ul>
 <li><tt>click/tree/tree.css</tt></li>
 <li><tt>click/tree/tree.js</tt></li>
 <li><tt>click/tree/cookie-helper.js</tt></li>
 </ul>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#getHeadElements()" title="class or interface in org.apache.click">getHeadElements</A></CODE> in interface <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getHeadElements()" title="class or interface in org.apache.click.control">getHeadElements</A></CODE> in class <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the HTML HEAD elements for the control<DT><B>See Also:</B><DD><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#getHeadElements()" title="class or interface in org.apache.click"><CODE>Control.getHeadElements()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getExpandLink()"><!-- --></A><H3>
getExpandLink</H3>
<PRE>
public <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/ActionLink.html" title="class or interface in org.apache.click.control">ActionLink</A> <B>getExpandLink</B>()</PRE>
<DL>
<DD>Return the tree node expand / collapse link.
 <p/>
 This method returns a <A HREF="../../../../../org/apache/click/extras/control/SubmitLink.html" title="class in org.apache.click.extras.control"><CODE>SubmitLink</CODE></A>
 so that the Tree can function properly when added to a
 <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Form.html" title="class or interface in org.apache.click.control"><CODE>Form</CODE></A>.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the tree node expand / collapse link</DL>
</DD>
</DL>
<HR>

<A NAME="getSelectLink()"><!-- --></A><H3>
getSelectLink</H3>
<PRE>
public <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/ActionLink.html" title="class or interface in org.apache.click.control">ActionLink</A> <B>getSelectLink</B>()</PRE>
<DL>
<DD>Return the tree node select / deselect link.
 <p/>
 This method returns a <A HREF="../../../../../org/apache/click/extras/control/SubmitLink.html" title="class in org.apache.click.extras.control"><CODE>SubmitLink</CODE></A>
 so that the Tree can function properly when added to a
 <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Form.html" title="class or interface in org.apache.click.control"><CODE>Form</CODE></A>.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the tree node select / deselect link.</DL>
</DD>
</DL>
<HR>

<A NAME="bindExpandOrCollapseValues()"><!-- --></A><H3>
bindExpandOrCollapseValues</H3>
<PRE>
public void <B>bindExpandOrCollapseValues</B>()</PRE>
<DL>
<DD>This method binds the users request of expanded and collapsed nodes to
 the tree's nodes.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="bindSelectOrDeselectValues()"><!-- --></A><H3>
bindSelectOrDeselectValues</H3>
<PRE>
public void <B>bindSelectOrDeselectValues</B>()</PRE>
<DL>
<DD>This method binds the users request of selected nodes to the tree's nodes.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isNotifyListeners()"><!-- --></A><H3>
isNotifyListeners</H3>
<PRE>
public boolean <B>isNotifyListeners</B>()</PRE>
<DL>
<DD>Query if the tree will notify its tree listeners of any change
 to the tree's model.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>true if listeners should be notified of any changes.</DL>
</DD>
</DL>
<HR>

<A NAME="setNotifyListeners(boolean)"><!-- --></A><H3>
setNotifyListeners</H3>
<PRE>
public void <B>setNotifyListeners</B>(boolean&nbsp;notifyListeners)</PRE>
<DL>
<DD>Enable or disable if the tree will notify its tree listeners of any change
 to the tree's model.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>notifyListeners</CODE> - true if the tree will notify its listeners ,
 false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="expand(java.lang.String)"><!-- --></A><H3>
expand</H3>
<PRE>
public void <B>expand</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
<DL>
<DD>Expand the node with matching id and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify its listeners of any change.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - identifier of the node to be expanded.</DL>
</DD>
</DL>
<HR>

<A NAME="expand(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
expand</H3>
<PRE>
public void <B>expand</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</PRE>
<DL>
<DD>Expand the node and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - the node to be expanded.</DL>
</DD>
</DL>
<HR>

<A NAME="collapse(java.lang.String)"><!-- --></A><H3>
collapse</H3>
<PRE>
public void <B>collapse</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
<DL>
<DD>Collapse the node with matching id and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - identifier of node to be collapsed.</DL>
</DD>
</DL>
<HR>

<A NAME="collapse(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
collapse</H3>
<PRE>
public void <B>collapse</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</PRE>
<DL>
<DD>Collapse the node and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - the node to be collapsed.</DL>
</DD>
</DL>
<HR>

<A NAME="expandAll()"><!-- --></A><H3>
expandAll</H3>
<PRE>
public void <B>expandAll</B>()</PRE>
<DL>
<DD>Expand all the nodes of the tree and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="collapseAll()"><!-- --></A><H3>
collapseAll</H3>
<PRE>
public void <B>collapseAll</B>()</PRE>
<DL>
<DD>Collapse all the nodes of the tree and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="select(java.lang.String)"><!-- --></A><H3>
select</H3>
<PRE>
public void <B>select</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
<DL>
<DD>Select the node with matching id and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - identifier of node to be selected.</DL>
</DD>
</DL>
<HR>

<A NAME="select(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
select</H3>
<PRE>
public void <B>select</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</PRE>
<DL>
<DD>Select the node and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - the node to be selected.</DL>
</DD>
</DL>
<HR>

<A NAME="deselect(java.lang.String)"><!-- --></A><H3>
deselect</H3>
<PRE>
public void <B>deselect</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
<DL>
<DD>Deselect the node with matching id and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - id of node to be deselected.</DL>
</DD>
</DL>
<HR>

<A NAME="deselect(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
deselect</H3>
<PRE>
public void <B>deselect</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</PRE>
<DL>
<DD>Deselect the node and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - the node to be deselected.</DL>
</DD>
</DL>
<HR>

<A NAME="selectAll()"><!-- --></A><H3>
selectAll</H3>
<PRE>
public void <B>selectAll</B>()</PRE>
<DL>
<DD>Select all the nodes of the tree and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="deselectAll()"><!-- --></A><H3>
deselectAll</H3>
<PRE>
public void <B>deselectAll</B>()</PRE>
<DL>
<DD>Deselect all the nodes of the tree and inform any listeners of the change.
 If <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#isNotifyListeners()"><CODE>isNotifyListeners()</CODE></A> returns false, this method will not
 notify listeners of any change.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getExpandedNodes(boolean)"><!-- --></A><H3>
getExpandedNodes</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt; <B>getExpandedNodes</B>(boolean&nbsp;includeInvisibleNodes)</PRE>
<DL>
<DD>Returns all the nodes that were expanded.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>includeInvisibleNodes</CODE> - indicator if only invisible nodes should be
 included
<DT><B>Returns:</B><DD>list of currently expanded nodes</DL>
</DD>
</DL>
<HR>

<A NAME="getSelectedNodes(boolean)"><!-- --></A><H3>
getSelectedNodes</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html" title="class or interface in java.util">List</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt; <B>getSelectedNodes</B>(boolean&nbsp;includeInvisibleNodes)</PRE>
<DL>
<DD>Returns all the nodes that were selected.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>includeInvisibleNodes</CODE> - indicates if invisible nodes should be included.
<DT><B>Returns:</B><DD>list of currently selected nodes.</DL>
</DD>
</DL>
<HR>

<A NAME="iterator()"><!-- --></A><H3>
iterator</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html" title="class or interface in java.util">Iterator</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt; <B>iterator</B>()</PRE>
<DL>
<DD>Returns an iterator over all the nodes.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>iterator over all elements in the tree</DL>
</DD>
</DL>
<HR>

<A NAME="iterator(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
iterator</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html" title="class or interface in java.util">Iterator</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt; <B>iterator</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node)</PRE>
<DL>
<DD>Returns an iterator over all nodes starting from the specified node.
 If null is specified, root node is used instead.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - starting point of nodes to iterator over
<DT><B>Returns:</B><DD>iterator over all nodes starting form the specified node</DL>
</DD>
</DL>
<HR>

<A NAME="find(java.lang.String)"><!-- --></A><H3>
find</H3>
<PRE>
public <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A> <B>find</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
<DL>
<DD>Finds and returns the first node that matches the id.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - identifier of the node to find
<DT><B>Returns:</B><DD>TreeNode the first node matching the id.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if argument is null.</DL>
</DD>
</DL>
<HR>

<A NAME="bindRequestValue()"><!-- --></A><H3>
bindRequestValue</H3>
<PRE>
public void <B>bindRequestValue</B>()</PRE>
<DL>
<DD>This method binds any expand/collapse and select/deselect changes from
 the request parameters.
 <p/>
 In other words the node id's of expanded, collapsed, selected and
 deselected nodes are retrieved from the request.
<P>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#bindExpandOrCollapseValues()"><CODE>bindExpandOrCollapseValues()</CODE></A>, 
<A HREF="../../../../../org/apache/click/extras/tree/Tree.html#bindSelectOrDeselectValues()"><CODE>bindSelectOrDeselectValues()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="onProcess()"><!-- --></A><H3>
onProcess</H3>
<PRE>
public boolean <B>onProcess</B>()</PRE>
<DL>
<DD>Processes user request to change state of the tree.
 This implementation processes any expand/collapse and select/deselect
 changes as requested.
 <p/>
 Thus expanded nodes will be collapsed and collapsed nodes will be
 expanded. Similarly selected nodes will be deselected and deselected
 nodes will be selected.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#onProcess()" title="class or interface in org.apache.click">onProcess</A></CODE> in interface <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#onProcess()" title="class or interface in org.apache.click.control">onProcess</A></CODE> in class <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true to continue Page event processing or false otherwise<DT><B>See Also:</B><DD><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#onProcess()" title="class or interface in org.apache.click"><CODE>Control.onProcess()</CODE></A>, 
<A HREF="../../../../../org/apache/click/extras/tree/Tree.html#expandOrCollapse(java.lang.String[])"><CODE>expandOrCollapse(java.lang.String[])</CODE></A>, 
<A HREF="../../../../../org/apache/click/extras/tree/Tree.html#selectOrDeselect(java.lang.String[])"><CODE>selectOrDeselect(java.lang.String[])</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="onDestroy()"><!-- --></A><H3>
onDestroy</H3>
<PRE>
public void <B>onDestroy</B>()</PRE>
<DL>
<DD>This method cleans up the <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#expandLink"><CODE>expandLink</CODE></A> and <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#selectLink"><CODE>selectLink</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#onDestroy()" title="class or interface in org.apache.click">onDestroy</A></CODE> in interface <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#onDestroy()" title="class or interface in org.apache.click.control">onDestroy</A></CODE> in class <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#onDestroy()" title="class or interface in org.apache.click"><CODE>Control.onDestroy()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setListener(java.lang.Object, java.lang.String)"><!-- --></A><H3>
setListener</H3>
<PRE>
public void <B>setListener</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;listener,
                        <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;method)</PRE>
<DL>
<DD>Set the controls event listener.
 <p/>
 To receive notifications when TreeNodes are selected or expanded please
 use <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#addListener(org.apache.click.extras.tree.TreeListener)"><CODE>addListener(TreeListener)</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#setListener(java.lang.Object, java.lang.String)" title="class or interface in org.apache.click">setListener</A></CODE> in interface <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setListener(java.lang.Object, java.lang.String)" title="class or interface in org.apache.click.control">setListener</A></CODE> in class <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the listener object with the named method to invoke<DD><CODE>method</CODE> - the name of the method to invoke</DL>
</DD>
</DL>
<HR>

<A NAME="setActionListener(org.apache.click.ActionListener)"><!-- --></A><H3>
setActionListener</H3>
<PRE>
public void <B>setActionListener</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/ActionListener.html" title="class or interface in org.apache.click">ActionListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Set the control's action listener.
 <p/>
 To receive notifications when TreeNodes are selected or expanded please
 use <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#addListener(org.apache.click.extras.tree.TreeListener)"><CODE>addListener(TreeListener)</CODE></A>.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setActionListener(org.apache.click.ActionListener)" title="class or interface in org.apache.click.control">setActionListener</A></CODE> in class <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the control's action listener</DL>
</DD>
</DL>
<HR>

<A NAME="addListener(org.apache.click.extras.tree.TreeListener)"><!-- --></A><H3>
addListener</H3>
<PRE>
public void <B>addListener</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeListener.html" title="interface in org.apache.click.extras.tree">TreeListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Adds the listener to start receiving tree events.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listener</CODE> - to add to start receiving tree events.</DL>
</DD>
</DL>
<HR>

<A NAME="removeListener(org.apache.click.extras.tree.TreeListener)"><!-- --></A><H3>
removeListener</H3>
<PRE>
public void <B>removeListener</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeListener.html" title="interface in org.apache.click.extras.tree">TreeListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Removes the listener to stop receiving tree events.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listener</CODE> - to be removed to stop receiving tree events.</DL>
</DD>
</DL>
<HR>

<A NAME="getControlSizeEst()"><!-- --></A><H3>
getControlSizeEst</H3>
<PRE>
public int <B>getControlSizeEst</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getControlSizeEst()" title="class or interface in org.apache.click.control">getControlSizeEst</A></CODE> in class <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the estimated rendered control size in characters<DT><B>See Also:</B><DD><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getControlSizeEst()" title="class or interface in org.apache.click.control"><CODE>AbstractControl.getControlSizeEst()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="cleanupSession()"><!-- --></A><H3>
cleanupSession</H3>
<PRE>
public void <B>cleanupSession</B>()</PRE>
<DL>
<DD>Utility method that force the Tree to remove any entries it made in the
 HttpSession.
 <p/>
 <b>Note</b> Tree only stores a value in the Session when JavaScript
 is enabled and set to <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#JAVASCRIPT_SESSION_POLICY"><CODE>JAVASCRIPT_SESSION_POLICY</CODE></A>.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="render(org.apache.click.util.HtmlStringBuffer)"><!-- --></A><H3>
render</H3>
<PRE>
public void <B>render</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer)</PRE>
<DL>
<DD>Render the HTML representation of the tree.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#render(org.apache.click.util.HtmlStringBuffer)" title="class or interface in org.apache.click">render</A></CODE> in interface <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#render(org.apache.click.util.HtmlStringBuffer)" title="class or interface in org.apache.click.control">render</A></CODE> in class <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - the specified buffer to render the control's output to<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#toString()"><CODE>toString()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
<DL>
<DD>Return a HTML rendered Tree string of all the tree's nodes.

 <p/>Note: by default the tree's root node will not be rendered.
 However this behavior can be changed by calling
 <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setRootNodeDisplayed(boolean)"><CODE>setRootNodeDisplayed(boolean)</CODE></A> with true.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#toString()" title="class or interface in org.apache.click.control">toString</A></CODE> in class <CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a HTML rendered Tree string<DT><B>See Also:</B><DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang"><CODE>Object.toString()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="renderTree(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode, int)"><!-- --></A><H3>
renderTree</H3>
<PRE>
protected void <B>renderTree</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                          <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode,
                          int&nbsp;indentation)</PRE>
<DL>
<DD>Render the children of the specified tree node as html markup and append
 the output to the specified buffer.
 <p/>
 <strong>Note:</strong> only the children of the specified  tree node will
 be rendered not the treeNode itself. This method is recursive, so the
 node's children and their children will be rendered and so on.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - string buffer containing the markup<DD><CODE>treeNode</CODE> - specified node who's children will be rendered<DD><CODE>indentation</CODE> - current level of the treeNode. The indentation increases each
 time the depth of the tree increments.<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setRootNodeDisplayed(boolean)"><CODE>setRootNodeDisplayed(boolean)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="shouldRenderChildren(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
shouldRenderChildren</H3>
<PRE>
protected boolean <B>shouldRenderChildren</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</PRE>
<DL>
<DD>Check the state of the specified node if its children
 should be rendered or not.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>treeNode</CODE> - specified node to check
<DT><B>Returns:</B><DD>true if the child nodes should be rendered,
 false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="renderTreeNodeStart(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode, int)"><!-- --></A><H3>
renderTreeNodeStart</H3>
<PRE>
protected void <B>renderTreeNodeStart</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                                   <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode,
                                   int&nbsp;indentation)</PRE>
<DL>
<DD>Interception point to render html before the tree node is rendered.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - string buffer containing the markup<DD><CODE>treeNode</CODE> - specified node to render<DD><CODE>indentation</CODE> - current level of the treeNode</DL>
</DD>
</DL>
<HR>

<A NAME="renderTreeNodeEnd(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode, int)"><!-- --></A><H3>
renderTreeNodeEnd</H3>
<PRE>
protected void <B>renderTreeNodeEnd</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                                 <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode,
                                 int&nbsp;indentation)</PRE>
<DL>
<DD>Interception point to render html after the tree node was rendered.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - string buffer containing the markup<DD><CODE>treeNode</CODE> - specified node to render<DD><CODE>indentation</CODE> - current level of the treeNode</DL>
</DD>
</DL>
<HR>

<A NAME="renderExpandAndCollapseAction(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
renderExpandAndCollapseAction</H3>
<PRE>
protected void <B>renderExpandAndCollapseAction</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                                             <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</PRE>
<DL>
<DD>Render the expand and collapse action of the tree.
 <p/>
 Default implementation creates a hyperlink that users can click on
 to expand or collapse the nodes.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - string buffer containing the markup<DD><CODE>treeNode</CODE> - treeNode to render</DL>
</DD>
</DL>
<HR>

<A NAME="renderTreeNode(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode, int)"><!-- --></A><H3>
renderTreeNode</H3>
<PRE>
protected void <B>renderTreeNode</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                              <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode,
                              int&nbsp;indentation)</PRE>
<DL>
<DD>Render the specified treeNode.
 <p/>
 If a decorator was specified using <A HREF="../../../../../org/apache/click/extras/tree/Tree.html#setDecorator(org.apache.click.control.Decorator)"><CODE>setDecorator(Decorator)</CODE></A>,
 this method will render using the decorator instead.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - string buffer containing the markup<DD><CODE>treeNode</CODE> - treeNode to render<DD><CODE>indentation</CODE> - current level of the treeNode</DL>
</DD>
</DL>
<HR>

<A NAME="renderIcon(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
renderIcon</H3>
<PRE>
protected void <B>renderIcon</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                          <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</PRE>
<DL>
<DD>Render the node's icon depending on the current state of the node.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - string buffer containing the markup<DD><CODE>treeNode</CODE> - treeNode to render</DL>
</DD>
</DL>
<HR>

<A NAME="renderValue(org.apache.click.util.HtmlStringBuffer, org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
renderValue</H3>
<PRE>
protected void <B>renderValue</B>(<A HREF="http://click.apache.org/docs/click-api/org/apache/click/util/HtmlStringBuffer.html" title="class or interface in org.apache.click.util">HtmlStringBuffer</A>&nbsp;buffer,
                           <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</PRE>
<DL>
<DD>Render the node's value.
 <p/>
 Subclasses should override this method to change the rendering of the
 node's value. By default the value will be rendered as a hyperlink,
 passing its <em>id</em> to the server.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - string buffer containing the markup<DD><CODE>treeNode</CODE> - treeNode to render</DL>
</DD>
</DL>
<HR>

<A NAME="getExpandClass(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
getExpandClass</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getExpandClass</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</PRE>
<DL>
<DD>Query the specified treeNode and check which css class to apply.
 <p/>
 Possible classes are expanded, collapsed, leaf, expandedLastNode,
 collapsedLastNode and leafLastNode.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>treeNode</CODE> - the tree node to check for css class
<DT><B>Returns:</B><DD>string specific css class to apply</DL>
</DD>
</DL>
<HR>

<A NAME="getIconClass(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
getIconClass</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getIconClass</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</PRE>
<DL>
<DD>Query the specified treeNode and check which css class to apply for
 the icons.
 <p/>
 Possible classes are expandedIcon, collapsedIcon and leafIcon.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>treeNode</CODE> - the tree node to check for css class
<DT><B>Returns:</B><DD>string specific css class to apply</DL>
</DD>
</DL>
<HR>

<A NAME="isExpandedParent(org.apache.click.extras.tree.TreeNode)"><!-- --></A><H3>
isExpandedParent</H3>
<PRE>
protected boolean <B>isExpandedParent</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;treeNode)</PRE>
<DL>
<DD>Helper method indicating if the specified node is both
 expanded and has at least 1 child node.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>treeNode</CODE> - specified node to check
<DT><B>Returns:</B><DD>true if the specified node is both expanded and
 contains at least 1 child node</DL>
</DD>
</DL>
<HR>

<A NAME="fireNodeExpanded(org.apache.click.extras.tree.TreeNode, boolean)"><!-- --></A><H3>
fireNodeExpanded</H3>
<PRE>
protected void <B>fireNodeExpanded</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                                boolean&nbsp;previousState)</PRE>
<DL>
<DD>Notifies all listeners currently registered with the tree, about any
 expand events.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - specify the TreeNode that was expanded<DD><CODE>previousState</CODE> - contains the previous expanded state</DL>
</DD>
</DL>
<HR>

<A NAME="fireNodeCollapsed(org.apache.click.extras.tree.TreeNode, boolean)"><!-- --></A><H3>
fireNodeCollapsed</H3>
<PRE>
protected void <B>fireNodeCollapsed</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                                 boolean&nbsp;previousState)</PRE>
<DL>
<DD>Notifies all listeners currently registered with the tree, about any
 collapse events.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - specific the TreeNode that was collapsed<DD><CODE>previousState</CODE> - contains the previous expanded state</DL>
</DD>
</DL>
<HR>

<A NAME="fireNodeSelected(org.apache.click.extras.tree.TreeNode, boolean)"><!-- --></A><H3>
fireNodeSelected</H3>
<PRE>
protected void <B>fireNodeSelected</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                                boolean&nbsp;previousState)</PRE>
<DL>
<DD>Notifies all listeners currently registered with the tree, about any
 selection events.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - specific the TreeNode that was selected<DD><CODE>previousState</CODE> - contains the previous selected state</DL>
</DD>
</DL>
<HR>

<A NAME="fireNodeDeselected(org.apache.click.extras.tree.TreeNode, boolean)"><!-- --></A><H3>
fireNodeDeselected</H3>
<PRE>
protected void <B>fireNodeDeselected</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                                  boolean&nbsp;previousState)</PRE>
<DL>
<DD>Notifies all listeners currently registered with the tree, about any
 deselection events.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - specific the TreeNode that was deselected<DD><CODE>previousState</CODE> - contains the previous selected state</DL>
</DD>
</DL>
<HR>

<A NAME="setExpandState(org.apache.click.extras.tree.TreeNode, boolean)"><!-- --></A><H3>
setExpandState</H3>
<PRE>
protected void <B>setExpandState</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                              boolean&nbsp;newValue)</PRE>
<DL>
<DD>Sets the TreeNode expand state to the new value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - specifies the TreeNode which expand state will be set<DD><CODE>newValue</CODE> - specifies the new expand state</DL>
</DD>
</DL>
<HR>

<A NAME="expandOrCollapse(java.lang.String[])"><!-- --></A><H3>
expandOrCollapse</H3>
<PRE>
protected void <B>expandOrCollapse</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;ids)</PRE>
<DL>
<DD>Swaps the expand state of all TreeNodes with specified id's.
 Thus if a node's expand state is currently 'true', calling
 expandOrCollapse will set the expand state to 'false' and vice versa.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ids</CODE> - array of node id's</DL>
</DD>
</DL>
<HR>

<A NAME="setExpandState(java.lang.String, boolean)"><!-- --></A><H3>
setExpandState</H3>
<PRE>
protected void <B>setExpandState</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id,
                              boolean&nbsp;newValue)</PRE>
<DL>
<DD>Sets the expand state of the TreeNode with specified id to the new value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - specifies the id of a TreeNode which expand state will be set<DD><CODE>newValue</CODE> - specifies the new expand state</DL>
</DD>
</DL>
<HR>

<A NAME="setExpandState(java.util.Collection, boolean)"><!-- --></A><H3>
setExpandState</H3>
<PRE>
protected void <B>setExpandState</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;&nbsp;nodes,
                              boolean&nbsp;newValue)</PRE>
<DL>
<DD>Sets the TreeNode expand state of each node in the specified collection
 to the new value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nodes</CODE> - specifies the collection of a TreeNodes which expand states will be set<DD><CODE>newValue</CODE> - specifies the new expand state</DL>
</DD>
</DL>
<HR>

<A NAME="setSelectState(org.apache.click.extras.tree.TreeNode, boolean)"><!-- --></A><H3>
setSelectState</H3>
<PRE>
protected void <B>setSelectState</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                              boolean&nbsp;newValue)</PRE>
<DL>
<DD>Sets the TreeNode select state to the new value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - specifies the TreeNode which select state will be set<DD><CODE>newValue</CODE> - specifies the new select state</DL>
</DD>
</DL>
<HR>

<A NAME="selectOrDeselect(java.lang.String[])"><!-- --></A><H3>
selectOrDeselect</H3>
<PRE>
protected void <B>selectOrDeselect</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;ids)</PRE>
<DL>
<DD>Swaps the select state of all TreeNodes with specified id's to the new value.
 Thus if a node's select state is currently 'true', calling selectOrDeselect
 will set the select state to 'false' and vice versa.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ids</CODE> - array of node id's</DL>
</DD>
</DL>
<HR>

<A NAME="setSelectState(java.lang.String, boolean)"><!-- --></A><H3>
setSelectState</H3>
<PRE>
protected void <B>setSelectState</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id,
                              boolean&nbsp;newValue)</PRE>
<DL>
<DD>Sets the select state of the TreeNode with specified id to the new value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - specifies the id of a TreeNode which select state will be set<DD><CODE>newValue</CODE> - specifies the new select state</DL>
</DD>
</DL>
<HR>

<A NAME="setSelectState(java.util.Collection, boolean)"><!-- --></A><H3>
setSelectState</H3>
<PRE>
protected void <B>setSelectState</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;&nbsp;nodes,
                              boolean&nbsp;newValue)</PRE>
<DL>
<DD>Sets the TreeNode select state of each node in the specified collection
 to the new value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nodes</CODE> - specifies the collection of a TreeNodes which select states will be set<DD><CODE>newValue</CODE> - specifies the new select state</DL>
</DD>
</DL>
<HR>

<A NAME="processNodes(java.lang.String[], org.apache.click.extras.tree.Tree.Callback)"><!-- --></A><H3>
processNodes</H3>
<PRE>
protected void <B>processNodes</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;ids,
                            <A HREF="../../../../../org/apache/click/extras/tree/Tree.Callback.html" title="interface in org.apache.click.extras.tree">Tree.Callback</A>&nbsp;callback)</PRE>
<DL>
<DD>Provides callback functionality for all the specified nodes.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ids</CODE> - the array of nodes to process<DD><CODE>callback</CODE> - object on which callbacks are made</DL>
</DD>
</DL>
<HR>

<A NAME="processNodes(java.util.Collection, org.apache.click.extras.tree.Tree.Callback)"><!-- --></A><H3>
processNodes</H3>
<PRE>
protected void <B>processNodes</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&gt;&nbsp;nodes,
                            <A HREF="../../../../../org/apache/click/extras/tree/Tree.Callback.html" title="interface in org.apache.click.extras.tree">Tree.Callback</A>&nbsp;callback)</PRE>
<DL>
<DD>Provides callback functionality for all the specified nodes.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nodes</CODE> - the collection of nodes to process<DD><CODE>callback</CODE> - object on which callbacks are made</DL>
</DD>
</DL>
<HR>

<A NAME="find(org.apache.click.extras.tree.TreeNode, java.lang.String)"><!-- --></A><H3>
find</H3>
<PRE>
protected <A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A> <B>find</B>(<A HREF="../../../../../org/apache/click/extras/tree/TreeNode.html" title="class in org.apache.click.extras.tree">TreeNode</A>&nbsp;node,
                        <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;id)</PRE>
<DL>
<DD>Finds and returns the first node that matches the id, starting the search
 from the specified node.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - specifies at which node the search must start from<DD><CODE>id</CODE> - specifies the id of the TreeNode to find
<DT><B>Returns:</B><DD>TreeNode the first node matching the id or null if no match was found.</DL>
</DD>
</DL>
<HR>

<A NAME="getRequestValue(java.lang.String)"><!-- --></A><H3>
getRequestValue</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getRequestValue</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Returns the value of the specified named parameter or a empty string
 <span class="st">""</span> if not found.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - specifies the parameter to return
<DT><B>Returns:</B><DD>the specified parameter or a empty string <span class="st">""</span> if not found</DL>
</DD>
</DL>
<HR>

<A NAME="getRequestValues(java.lang.String)"><!-- --></A><H3>
getRequestValues</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] <B>getRequestValues</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Returns an array of all values of the specified named parameter or null
 if the parameter does not exist.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - specifies the parameter to return
<DT><B>Returns:</B><DD>all matching parameters or null if no parameter was found</DL>
</DD>
</DL>
<HR>

<A NAME="getHref(java.util.Map)"><!-- --></A><H3>
getHref</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getHref</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util">Map</A>&lt;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>,? extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&gt;&nbsp;parameters)</PRE>
<DL>
<DD>Return an anchor &lt;a&gt; tag href attribute for the given parameters.
 This method will encode the URL with the session ID
 if required using <tt>HttpServletResponse.encodeURL()</tt>.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parameters</CODE> - the href parameters
<DT><B>Returns:</B><DD>the HTML href attribute</DL>
</DD>
</DL>
<HR>

<A NAME="createJavascriptHandler(int)"><!-- --></A><H3>
createJavascriptHandler</H3>
<PRE>
protected <A HREF="../../../../../org/apache/click/extras/tree/Tree.JavascriptHandler.html" title="interface in org.apache.click.extras.tree">Tree.JavascriptHandler</A> <B>createJavascriptHandler</B>(int&nbsp;javascriptPolicy)</PRE>
<DL>
<DD>Creates a new JavascriptHandler based on the specified policy.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>javascriptPolicy</CODE> - the current javascript policy
<DT><B>Returns:</B><DD>newly created JavascriptHandler</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/click/extras/tree/CheckboxTree.CheckboxSessionJavascriptRenderer.html" title="class in org.apache.click.extras.tree"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/click/extras/tree/Tree.AbstractJavascriptRenderer.html" title="class in org.apache.click.extras.tree"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/click/extras/tree/Tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

<style type='text/css'>.str{color:#2A00FF;}.kwd{color:#7F0055;font-weight:bold;}.com{color:#3F7F5F;}.typ{color:#000;}.lit{color:#066;}.pun{color:#660;}.pln{color:#000;}.tag{color:#000099;font-weight:bold;}.atn{color:#009900;}.atv{color:#000;}.dec{color:#606;}pre.prettyprint{padding:1em;border:1px solid #888;overflow:auto;}@media print{.str{color:#2A00FF;}.kwd{color:#7F0055;font-weight:bold;}.com{color:#3F7F5F;font-style:italic;}.typ{color:#000;font-weight:bold;}.lit{color:#044;}.pun{color:#440;}.pln{color:#000;}.tag{color:#000099;font-weight:bold;}.atn{color:#009900;}.atv{color:#000;}}</style><script type='text/javascript'>var PR_keywords={};(function(){var CPP_KEYWORDS='abstract bool break case catch char class const '+'const_cast continue default delete deprecated dllexport dllimport do '+'double dynamic_cast else enum explicit extern false float for friend '+'goto if inline int long mutable naked namespace new noinline noreturn '+'nothrow novtable operator private property protected public register '+'reinterpret_cast return selectany short signed sizeof static '+'static_cast struct switch template this thread throw true try typedef '+'typeid typename union unsigned using declaration, directive uuid '+'virtual void volatile while typeof';var CSHARP_KEYWORDS='as base by byte checked decimal delegate descending '+'event finally fixed foreach from group implicit in interface internal '+'into is lock null object override orderby params readonly ref sbyte '+'sealed stackalloc string select uint ulong unchecked unsafe ushort var';var JAVA_KEYWORDS='package synchronized boolean implements import throws '+'instanceof transient extends final strictfp native super';var JSCRIPT_KEYWORDS='debugger export function with NaN Infinity';var PERL_KEYWORDS='require sub unless until use elsif BEGIN END';var PYTHON_KEYWORDS='and assert def del elif except exec global lambda '+'not or pass print raise yield False True None';var RUBY_KEYWORDS='then end begin rescue ensure module when undef next '+'redo retry alias defined';var SH_KEYWORDS='done fi';var KEYWORDS=[CPP_KEYWORDS,CSHARP_KEYWORDS,JAVA_KEYWORDS,JSCRIPT_KEYWORDS,PERL_KEYWORDS,PYTHON_KEYWORDS,RUBY_KEYWORDS,SH_KEYWORDS];for(var k=0;k<KEYWORDS.length;k++){var kw=KEYWORDS[k].split(' ');for(var i=0;i<kw.length;i++){if(kw[i]){PR_keywords[kw[i]]=true;}}}}).call(this);var PR_STRING='str';var PR_KEYWORD='kwd';var PR_COMMENT='com';var PR_TYPE='typ';var PR_LITERAL='lit';var PR_PUNCTUATION='pun';var PR_PLAIN='pln';var PR_TAG='tag';var PR_DECLARATION='dec';var PR_SOURCE='src';var PR_ATTRIB_NAME='atn';var PR_ATTRIB_VALUE='atv';var PR_TAB_WIDTH=8;function PR_isWordChar(ch){return(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z');}function PR_spliceArrayInto(inserted,container,containerPosition,countReplaced){inserted.unshift(containerPosition,countReplaced||0);try{container.splice.apply(container,inserted);}finally{inserted.splice(0,2);}}var REGEXP_PRECEDER_PATTERN=(function(){var preceders=['!','!=','!==','#','%','%=','&','&&','&&=','&=','(','*','*=','+=',',','-=','->','/','/=',':','::',';','<','<<','<<=','<=','=','==','===','>','>=','>>','>>=','>>>','>>>=','?','@','[','^','^=','^^','^^=','{','|','|=','||','||=','~','break','case','continue','delete','do','else','finally','instanceof','return','throw','try','typeof'];var pattern='(?:'+'(?:(?:^|[^0-9\.])\\.{1,3})|'+'(?:(?:^|[^\\+])\\+)|'+'(?:(?:^|[^\\-])-)';for(var i=0;i<preceders.length;++i){var preceder=preceders[i];if(PR_isWordChar(preceder.charAt(0))){pattern+='|\\b'+preceder;}else{pattern+='|'+preceder.replace(/([^=<>:&])/g,'\\$1');}}pattern+='|^)\\s*$';return new RegExp(pattern);})();var pr_amp=/&/g;var pr_lt=/</g;var pr_gt=/>/g;var pr_quot=/"/g;function PR_attribToHtml(str){return str.replace(pr_amp,'&amp;').replace(pr_lt,'&lt;').replace(pr_gt,'&gt;').replace(pr_quot,'&quot;');}function PR_textToHtml(str){return str.replace(pr_amp,'&amp;').replace(pr_lt,'&lt;').replace(pr_gt,'&gt;');}var pr_ltEnt=/&lt;/g;var pr_gtEnt=/&gt;/g;var pr_aposEnt=/&apos;/g;var pr_quotEnt=/&quot;/g;var pr_ampEnt=/&amp;/g;function PR_htmlToText(html){var pos=html.indexOf('&');if(pos<0){return html;}for(--pos;(pos=html.indexOf('&#',pos+1))>=0;){var end=html.indexOf(';',pos);if(end>=0){var num=html.substring(pos+3,end);var radix=10;if(num&&num.charAt(0)=='x'){num=num.substring(1);radix=16;}var codePoint=parseInt(num,radix);if(!isNaN(codePoint)){html=(html.substring(0,pos)+String.fromCharCode(codePoint)+html.substring(end+1));}}}return html.replace(pr_ltEnt,'<').replace(pr_gtEnt,'>').replace(pr_aposEnt,"'").replace(pr_quotEnt,'"').replace(pr_ampEnt,'&');}function PR_isRawContent(node){return'XMP'==node.tagName;}var PR_innerHtmlWorks=null;function PR_getInnerHtml(node){if(null===PR_innerHtmlWorks){var testNode=document.createElement('PRE');testNode.appendChild(document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));PR_innerHtmlWorks=!/</.test(testNode.innerHTML);}if(PR_innerHtmlWorks){var content=node.innerHTML;if(PR_isRawContent(node)){content=PR_textToHtml(content);}return content;}var out=[];for(var child=node.firstChild;child;child=child.nextSibling){PR_normalizedHtml(child,out);}return out.join('');}function PR_normalizedHtml(node,out){switch(node.nodeType){case 1:var name=node.tagName.toLowerCase();out.push('\074',name);for(var i=0;i<node.attributes.length;++i){var attr=node.attributes[i];if(!attr.specified){continue;}out.push(' ');PR_normalizedHtml(attr,out);}out.push('>');for(var child=node.firstChild;child;child=child.nextSibling){PR_normalizedHtml(child,out);}if(node.firstChild||!/^(?:br|link|img)$/.test(name)){out.push('<\/',name,'>');}break;case 2:out.push(node.name.toLowerCase(),'="',PR_attribToHtml(node.value),'"');break;case 3:case 4:out.push(PR_textToHtml(node.nodeValue));break;}}function PR_tabExpander(tabWidth){var SPACES='                ';var charInLine=0;return function(plainText){var out=null;var pos=0;for(var i=0,n=plainText.length;i<n;++i){var ch=plainText.charAt(i);switch(ch){case'\t':if(!out){out=[];}out.push(plainText.substring(pos,i));var nSpaces=tabWidth-(charInLine%tabWidth);charInLine+=nSpaces;for(;nSpaces>=0;nSpaces-=SPACES.length){out.push(SPACES.substring(0,nSpaces));}pos=i+1;break;case'\n':charInLine=0;break;default:++charInLine;}}if(!out){return plainText;}out.push(plainText.substring(pos));return out.join('');};}var pr_chunkPattern=/(?:[^<]+|<!--[\s\S]*?-->|<!\[CDATA\[([\s\S]*?)\]\]>|<\/?[a-zA-Z][^>]*>|<)/g;var pr_commentPrefix=/^<!--/;var pr_cdataPrefix=/^<\[CDATA\[/;var pr_brPrefix=/^<br\b/i;function PR_extractTags(s){var matches=s.match(pr_chunkPattern);var sourceBuf=[];var sourceBufLen=0;var extractedTags=[];if(matches){for(var i=0,n=matches.length;i<n;++i){var match=matches[i];if(match.length>1&&match.charAt(0)==='<'){if(pr_commentPrefix.test(match)){continue;}if(pr_cdataPrefix.test(match)){sourceBuf.push(match.substring(9,match.length-3));sourceBufLen+=match.length-12;}else if(pr_brPrefix.test(match)){sourceBuf.push('\n');sourceBufLen+=1;}else{extractedTags.push(sourceBufLen,match);}}else{var literalText=PR_htmlToText(match);sourceBuf.push(literalText);sourceBufLen+=literalText.length;}}}return{source:sourceBuf.join(''),tags:extractedTags};}function PR_createSimpleLexer(shortcutStylePatterns,fallthroughStylePatterns){var shortcuts={};(function(){var allPatterns=shortcutStylePatterns.concat(fallthroughStylePatterns);for(var i=allPatterns.length;--i>=0;){var patternParts=allPatterns[i];var shortcutChars=patternParts[3];if(shortcutChars){for(var c=shortcutChars.length;--c>=0;){shortcuts[shortcutChars.charAt(c)]=patternParts;}}}})();var nPatterns=fallthroughStylePatterns.length;return function(sourceCode,opt_basePos){opt_basePos=opt_basePos||0;var decorations=[opt_basePos,PR_PLAIN];var lastToken='';var pos=0;var tail=sourceCode;while(tail.length){var style;var token=null;var patternParts=shortcuts[tail.charAt(0)];if(patternParts){var match=tail.match(patternParts[1]);token=match[0];style=patternParts[0];}else{for(var i=0;i<nPatterns;++i){patternParts=fallthroughStylePatterns[i];var contextPattern=patternParts[2];if(contextPattern&&!contextPattern.test(lastToken)){continue;}var match=tail.match(patternParts[1]);if(match){token=match[0];style=patternParts[0];break;}}if(!token){style=PR_PLAIN;token=tail.substring(0,1);}}decorations.push(opt_basePos+pos,style);pos+=token.length;tail=tail.substring(token.length);if(style!==PR_COMMENT&&/\S/.test(token)){lastToken=token;}}return decorations;};}var PR_C_STYLE_STRING_AND_COMMENT_LEXER=PR_createSimpleLexer([[PR_STRING,/^\'(?:[^\\\']|\\[\s\S])*(?:\'|$)/,null,"'"],[PR_STRING,/^"(?:[^\\"]|\\[\s\S])*(?:"|$)/,null,'"'],[PR_STRING,/^\`(?:[^\\\`]|\\[\s\S])*(?:\`|$)/,null,'`']],[[PR_PLAIN,/^(?:[^\'"\`\/\#]+)/,null,' \r\n'],[PR_COMMENT,/^#[^\r\n]*/,null,'#'],[PR_COMMENT,/^\/\/[^\r\n]*/,null],[PR_STRING,/^\/(?:[^\\\*\/]|\\[\s\S])+(?:\/|$)/,REGEXP_PRECEDER_PATTERN],[PR_COMMENT,/^\/\*[\s\S]*?(?:\*\/|$)/,null]]);function PR_splitStringAndCommentTokens(sourceCode){return PR_C_STYLE_STRING_AND_COMMENT_LEXER(sourceCode);}var PR_C_STYLE_LITERAL_IDENTIFIER_PUNC_RECOGNIZER=PR_createSimpleLexer([],[[PR_PLAIN,/^\s+/,null,' \r\n'],[PR_PLAIN,/^[a-z_$@][a-z_$@0-9]*/i,null],[PR_LITERAL,/^0x[a-f0-9]+[a-z]/i,null],[PR_LITERAL,/^(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?[a-z]*/i,null,'123456789'],[PR_PUNCTUATION,/^[^\s\w\.$@]+/,null]]);function PR_splitNonStringNonCommentTokens(source,decorations){for(var i=0;i<decorations.length;i+=2){var style=decorations[i+1];if(style===PR_PLAIN){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var chunk=source.substring(start,end);var subDecs=PR_C_STYLE_LITERAL_IDENTIFIER_PUNC_RECOGNIZER(chunk,start);for(var j=0,m=subDecs.length;j<m;j+=2){var subStyle=subDecs[j+1];if(subStyle===PR_PLAIN){var subStart=subDecs[j];var subEnd=j+2<m?subDecs[j+2]:chunk.length;var token=source.substring(subStart,subEnd);if(token=='.'){subDecs[j+1]=PR_PUNCTUATION;}else if(token in PR_keywords){subDecs[j+1]=PR_KEYWORD;}else if(/^@?[A-Z][A-Z$]*[a-z][A-Za-z$]*$/.test(token)){subDecs[j+1]=token.charAt(0)=='@'?PR_LITERAL:PR_TYPE;}}}PR_spliceArrayInto(subDecs,decorations,i,2);i+=subDecs.length-2;}}return decorations;}var PR_MARKUP_LEXER=PR_createSimpleLexer([],[[PR_PLAIN,/^[^<]+/,null],[PR_DECLARATION,/^<!\w[^>]*(?:>|$)/,null],[PR_COMMENT,/^<!--[\s\S]*?(?:-->|$)/,null],[PR_SOURCE,/^<\?[\s\S]*?(?:\?>|$)/,null],[PR_SOURCE,/^<%[\s\S]*?(?:%>|$)/,null],[PR_SOURCE,/^<(script|style|xmp)\b[^>]*>[\s\S]*?<\/\1\b[^>]*>/i,null],[PR_TAG,/^<\/?\w[^<>]*>/,null]]);var PR_SOURCE_CHUNK_PARTS=/^(<[^>]*>)([\s\S]*)(<\/[^>]*>)$/;function PR_tokenizeMarkup(source){var decorations=PR_MARKUP_LEXER(source);for(var i=0;i<decorations.length;i+=2){if(decorations[i+1]===PR_SOURCE){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var sourceChunk=source.substring(start,end);var match=(sourceChunk.match(PR_SOURCE_CHUNK_PARTS));if(match){decorations.splice(i,2,start,PR_TAG,start+match[1].length,PR_SOURCE,start+match[1].length+(match[2]||'').length,PR_TAG);}}}return decorations;}var PR_TAG_LEXER=PR_createSimpleLexer([[PR_ATTRIB_VALUE,/^\'[^\']*(?:\'|$)/,null,"'"],[PR_ATTRIB_VALUE,/^"[^"]*(?:"|$)/,null,'"'],[PR_PUNCTUATION,/^[<>\/=]+/,null,'<>/=']],[[PR_TAG,/^[\w-]+/,/^</],[PR_ATTRIB_VALUE,/^[\w-]+/,/^=/],[PR_ATTRIB_NAME,/^[\w-]+/,null],[PR_PLAIN,/^\s+/,null,' \r\n']]);function PR_splitTagAttributes(source,decorations){for(var i=0;i<decorations.length;i+=2){var style=decorations[i+1];if(style===PR_TAG){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var chunk=source.substring(start,end);var subDecorations=PR_TAG_LEXER(chunk,start);PR_spliceArrayInto(subDecorations,decorations,i,2);i+=subDecorations.length-2;}}return decorations;}function PR_splitSourceNodes(source,decorations){for(var i=0;i<decorations.length;i+=2){var style=decorations[i+1];if(style==PR_SOURCE){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var subDecorations=PR_decorateSource(source.substring(start,end));for(var j=0,m=subDecorations.length;j<m;j+=2){subDecorations[j]+=start;}PR_spliceArrayInto(subDecorations,decorations,i,2);i+=subDecorations.length-2;}}return decorations;}function PR_splitSourceAttributes(source,decorations){var nextValueIsSource=false;for(var i=0;i<decorations.length;i+=2){var style=decorations[i+1];if(style===PR_ATTRIB_NAME){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;nextValueIsSource=/^on|^style$/i.test(source.substring(start,end));}else if(style==PR_ATTRIB_VALUE){if(nextValueIsSource){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var attribValue=source.substring(start,end);var attribLen=attribValue.length;var quoted=(attribLen>=2&&/^["\']/.test(attribValue)&&attribValue.charAt(0)===attribValue.charAt(attribLen-1));var attribSource;var attribSourceStart;var attribSourceEnd;if(quoted){attribSourceStart=start+1;attribSourceEnd=end-1;attribSource=attribValue;}else{attribSourceStart=start+1;attribSourceEnd=end-1;attribSource=attribValue.substring(1,attribValue.length-1);}var attribSourceDecorations=PR_decorateSource(attribSource);for(var j=0,m=attribSourceDecorations.length;j<m;j+=2){attribSourceDecorations[j]+=attribSourceStart;}if(quoted){attribSourceDecorations.push(attribSourceEnd,PR_ATTRIB_VALUE);PR_spliceArrayInto(attribSourceDecorations,decorations,i+2,0);}else{PR_spliceArrayInto(attribSourceDecorations,decorations,i,2);}}nextValueIsSource=false;}}return decorations;}function PR_decorateSource(sourceCode){var decorations=PR_splitStringAndCommentTokens(sourceCode);decorations=PR_splitNonStringNonCommentTokens(sourceCode,decorations);return decorations;}function PR_decorateMarkup(sourceCode){var decorations=PR_tokenizeMarkup(sourceCode);decorations=PR_splitTagAttributes(sourceCode,decorations);decorations=PR_splitSourceNodes(sourceCode,decorations);decorations=PR_splitSourceAttributes(sourceCode,decorations);return decorations;}function PR_recombineTagsAndDecorations(sourceText,extractedTags,decorations){var html=[];var outputIdx=0;var openDecoration=null;var currentDecoration=null;var tagPos=0;var decPos=0;var tabExpander=PR_tabExpander(PR_TAB_WIDTH);function emitTextUpTo(sourceIdx){if(sourceIdx>outputIdx){if(openDecoration&&openDecoration!==currentDecoration){html.push('</span>');openDecoration=null;}if(!openDecoration&&currentDecoration){openDecoration=currentDecoration;html.push('<span class="',openDecoration,'">');}var htmlChunk=PR_textToHtml(tabExpander(sourceText.substring(outputIdx,sourceIdx))).replace(/(\r\n?|\n| ) /g,'$1&nbsp;').replace(/\r\n?|\n/g,'&nbsp;<br>');html.push(htmlChunk);outputIdx=sourceIdx;}}while(true){var outputTag;if(tagPos<extractedTags.length){if(decPos<decorations.length){outputTag=extractedTags[tagPos]<=decorations[decPos];}else{outputTag=true;}}else{outputTag=false;}if(outputTag){emitTextUpTo(extractedTags[tagPos]);if(openDecoration){html.push('</span>');openDecoration=null;}html.push(extractedTags[tagPos+1]);tagPos+=2;}else if(decPos<decorations.length){emitTextUpTo(decorations[decPos]);currentDecoration=decorations[decPos+1];decPos+=2;}else{break;}}emitTextUpTo(sourceText.length);if(openDecoration){html.push('</span>');}return html.join('');}function prettyPrintOne(sourceCodeHtml){try{var sourceAndExtractedTags=PR_extractTags(sourceCodeHtml);var source=sourceAndExtractedTags.source;var extractedTags=sourceAndExtractedTags.tags;var isMarkup=/^\s*</.test(source)&&/>\s*$/.test(source);var decorations=isMarkup?PR_decorateMarkup(source):PR_decorateSource(source);return PR_recombineTagsAndDecorations(source,extractedTags,decorations);}catch(e){if('console'in window){console.log(e);console.trace();}return sourceCodeHtml;}}var PR_SHOULD_USE_CONTINUATION=true;function prettyPrint(opt_whenDone){var codeSegments=[document.getElementsByTagName('pre'),document.getElementsByTagName('code'),document.getElementsByTagName('xmp')];var elements=[];for(var i=0;i<codeSegments.length;++i){for(var j=0;j<codeSegments[i].length;++j){elements.push(codeSegments[i][j]);}}codeSegments=null;var k=0;function doWork(){var endTime=(PR_SHOULD_USE_CONTINUATION?new Date().getTime()+250:Infinity);for(;k<elements.length&&new Date().getTime()<endTime;k++){var cs=elements[k];if(cs.className&&cs.className.indexOf('prettyprint')>=0){var nested=false;for(var p=cs.parentNode;p!=null;p=p.parentNode){if((p.tagName=='pre'||p.tagName=='code'||p.tagName=='xmp')&&p.className&&p.className.indexOf('prettyprint')>=0){nested=true;break;}}if(!nested){var content=PR_getInnerHtml(cs);content=content.replace(/(?:\r\n?|\n)$/,'');var newContent=prettyPrintOne(content);if(!PR_isRawContent(cs)){cs.innerHTML=newContent;}else{var pre=document.createElement('PRE');for(var i=0;i<cs.attributes.length;++i){var a=cs.attributes[i];if(a.specified){pre.setAttribute(a.name,a.value);}}pre.innerHTML=newContent;cs.parentNode.replaceChild(pre,cs);}}}}if(k<elements.length){setTimeout(doWork,250);}else if(opt_whenDone){opt_whenDone();}}doWork();}</script><script type='text/javascript'>prettyPrint();</script></BODY>
</HTML>
