2012-04-16 3 views
0

Я хочу реализовать интерактивную TreePanel с навигацией на клавиатуре. После первого нажатия на любой элемент он работает правильно. Я добавил ключевое слово < A> -add, < E> -edit, < D> -deleting. После отображения диалогового окна «Добавить диалог» введите имя нового элемента и нажмите Ctrl-S или нажмите кнопку «Сохранить». Вот код экономии:Lose keyNavigation в ExtJs4 после редактирования элемента

saveItem: function(wnd) { 
    rec = wnd.getRecord(); 
    var store = this.getProductCategoryStore(); 

    if (wnd.parent) { 
     parent = wnd.parent 
     parent.data.leaf = false; 
     parent.set('loaded', false); 
    } else 
     parent = this.getCategoryTree().getRootNode(); 

    if (rec.phantom) 
     parent.appendChild(rec); 
    store.sync(); 
    wnd.close(); 

    if (wnd.parent) 
     parent.expand(); 

    this.getCategoryTree().focus(); 
    this.getCategoryTree().selectPath(rec.getPath()); 
}, 

Таким образом, последние две строки в моей попытке сосредоточиться на дереве, но он не работает. < A>, < E>, < D> - рабочий, но стрелки не работают. Если я нажму на дерево вручную, он снова будет работать.

ответ

0

РЕШЕН. Приятно использовать Ext.FocusManager, чтобы понять, как работает фокус в приложении. Для правильной фокусировки в дереве:

tree.getView().focus()