Что бы вы сделали, это создали обработчик событий. Каждый объект ExtJs имеет ряд событий, которые автоматически связываются с ними. Вы бы написали обработчик событий (функцию), который затем могли бы назначить слушателю событий. Таким образом, в этом случае вы, вероятно, захотите назначить обработчик события для события click вашего компонента TreePanel.
var tbPan = new Ext.tree.TreePanel({
itemId:'navTree',
autoScroll: true,
root: new Ext.tree.TreeNode({
id: 'root',
text: 'My Tree Root',
rootVisible: true
}),
listeners: {
click: {
fn:clickListener
}
}
});
clickListener = function (node,event){
// The node argument represents the node that
// was clicked on within your TreePanel
};
Но что произойдет, если вы захотите узнать уже выбранный узел? В этот момент вам нужно получить доступ к Модели выбора TreePanel. Вы упомянули действие кнопки. Допустим, вы хотите применить функцию к обработчику нажатия этой кнопки, чтобы получить выбранный узел:
var btn = new Ext.Button({
text: 'Get Value',
handler: function (thisBtn,event){
var node = Ext.fly('navTree').getSelectionModel().getSelectedNode();
}
});
Вы использовали элемент flyweight для быстрой ссылки на сам TreePanel, а затем использовали внутренний метод TreePanel для получения его модели выбора. После этого вы использовали внутренний метод этой модели выбора (в данном случае DefaultSelectionModel), чтобы получить выбранный узел.
В документации Ext JS вы найдете множество информации. Онлайн (и автономное приложение AIR) API довольно обширный. Руководство по Ext Core также может дать вам глубокое понимание разработки ExtJS, даже если вы не используете Core напрямую.