The TreeListener listens to a Tree and fires two events: TreeItemSelected and TreeItemStatusChanged. The first is pretty self-evident, and the 'status' part of the second refers to the node opening or closing.
class Demo extends Composite implements TreeListener
{
Tree tree = new Tree();
Label info = new Label("Click the tree to start");
public Demo()
{
VerticalPanel vp = new VerticalPanel();
vp.addStyleName("demo-table");
vp.addStyleName("table-center");
vp.setWidth("300px");
TreeItem outerRoot = new TreeItem("Item 1");
outerRoot.addItem("Item 1-1");
outerRoot.addItem("Item 1-2");
outerRoot.addItem("Item 1-3");
tree.addItem(outerRoot);
TreeItem innerRoot = new TreeItem("Item 1-5");
innerRoot.addItem("Item 1-5-1");
innerRoot.addItem("Item 1-5-2");
innerRoot.addItem("Item 1-5-3");
innerRoot.addItem("Item 1-5-4");
outerRoot.addItem(innerRoot);
tree.addTreeListener(this);
vp.add(tree);
vp.setCellHeight(tree, "200px");
DOM.setStyleAttribute(info.getElement(),
"backgroundColor", "#ffc");
DOM.setStyleAttribute(info.getElement(),
"borderTop", "3px solid #999");
vp.add(info);
initWidget(vp);
}
public void onTreeItemSelected(TreeItem item)
{
info.setText("Selected " + item.getText());
}
public void onTreeItemStateChanged(TreeItem item)
{
info.setText(item.getText() + " State Changed");
}
}