добавить узел и развернуть GXT Async TreePanel - PullRequest
0 голосов
/ 22 марта 2011

У меня есть Async TreePanel, которая использует RPC-прокси для загрузки данных с сервера. Я хочу перезагрузить узел, используя:

this.treeLoader.loadChildren(nodeModel);

Затем я хочу, чтобы загруженный узел дерева стал расширенным. Я пытался:

treePanel.setExpanded(nodeModel, true, false);

, но первый вызов асинхронный, поэтому setExpanded происходит до загрузки узлов.

Решением было бы использование LoadListener на treeLoader и расширение узла после загрузки его дочерних элементов, но метод loaderLoad (..) слушателя не может напрямую знать причину перезагрузки: возможно, пользователь расширил узел и это вызвало перезагрузку или, возможно, пользователь щелкнул пункт меню, чтобы перезагрузить узел.

Есть ли способ улучшить это, чтобы легче было развернуть узел после того, как пользователь хочет перезагрузить узел?

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 октября 2011

Попробуйте удалить прослушиватель в методе loaderLoad, а также в исключении loaderLoadException, чтобы избежать утечки

0 голосов
/ 27 января 2015

Я предлагаю сохранить узел, который был выбран для перезагрузки (добавьте слушатель onClick для вас).Чем в loaderLoad проверить, равен ли сохраненный объект родительскому узлу загруженного узла:

loader.addLoadListener(new LoadListener() {
    @Override
    public void loaderLoad(LoadEvent loadEvent) {
        ModelData parent = loadEvent.getConfig();
        if(parent.equals(storedObject) {
            // your code here
...