You must build a collection of TreeNode objects and add this collection to the TreeView control. Each TreeNode object has several properties to set up the visual appearance and functionality.
Important TreeNode properties
expanded - Shows this node expaned with children ext - Title text of the node target - Target browser window toolTip - Tooltip text to display url - Hyperlink to navigate to action - Name of method to call if user selects this node actionListenerExpression - Expression for action listener method.
Adding icon to TreeNode
To add a icon to the TreeNode you must first create a ImageComponent. Now you can set the theme specific icon with the setIcon method. Use a constant of class ThemeImages for the icon name. Add the created ImageComponent as facet to the TreeNode.
Sample:
ImageComponent image = new ImageComponent();
image.setIcon( TreeImages.TREE_FOLDER );
treeNode.getFacets().put( treeNode.IMAGE_FACET_KEY, image );
Setting Action Expression for TreeNode
To set the Action Expression of a TreeNode you must use the method setActionExpression of the TreeNode object. This method needs a MethodExpression object as parameter.
Sample code:
ExpressionFactory ef = FacesContext.
getCurrentInstance().
getApplication().
getExpressionFactory();
ELContext elContext = FacesContext.
getCurrentInstance().
getELContext();
MethodExpression me = ef.createMethodExpression(
elContext,
"#{Page1.treeNode_action}",
String.class, new Class[]{} );
treeNode.setActionExpression( me );