Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Восстановление конфигурации узлов дерева. (http://www.flasher.ru/forum/showthread.php?t=120251)

insected 15.01.2009 15:48

Восстановление конфигурации узлов дерева.
 
У меня такой вопрос.... У меня есть дерево, дата сорс у него xml, который я получаю с сервера. По ходу работы программы, xml на сервере меняется и мне нужно перезагрузить его в дерево. После каждой перезагрузки дерево схлопывается. Как можно запомнить конфигурацию узлов дерева (развернут/свернут) и потом после загрузки данных восстановить ее ? а то неудобно получается...

silin 16.01.2009 00:31

как вариант (для астровского дерева)
сохраняем состояние
Код AS3:

dpCopy = tree.dataProvider.clone();

восстанавливаем
Код AS3:

tree.closeAllNodes();
for (var i:int = 0; i < dpCopy.length; i++)
{
 
        var item:TNode = dpCopy.getItemAt(i) as TNode;
        if (!item.isVisible())
        {
                item.parentNode.openNode();
        }
}


insected 16.01.2009 01:09

Спасибо!

Foli 10.03.2009 17:01

Цитата:

Сообщение от silin (Сообщение 791041)
как вариант (для астровского дерева)
сохраняем состояние
Код AS3:

dpCopy = tree.dataProvider.clone();

восстанавливаем
Код AS3:

tree.closeAllNodes();
for (var i:int = 0; i < dpCopy.length; i++)
{
 
        var item:TNode = dpCopy.getItemAt(i) as TNode;
        if (!item.isVisible())
        {
                item.parentNode.openNode();
        }
}


А это точно AS3?
Что значит tree.dataProvider.clone(); ?
Короче, таже проблема как и у топик стартера. Так лень рекурсию писать. Может кто поможет. :umnik2:

silin 10.03.2009 20:21

да, это точно AS3
clone() это метод fl.data.DataProvider, создающий копию текущего состояния
насчет помощи когда даже самому автору лень - без комментариев :)

Foli 10.03.2009 22:03

Цитата:

Сообщение от silin (Сообщение 804412)
насчет помощи когда даже самому автору лень - без комментариев :)

silin, без обид, плс. :umnik2:
Я не хочу, чтобы за меня сделали что-то.
Я имел ввиду, что рекурсивно 100% работать будет.
Но может есть другой метод? Вот нашел сегодня твой пост тут.
Я заметил ты на форуме по компоненту Tree много помогаешь людям. :drinks:

У меня есть чёткая структура в XML.
При добавлении (удалении) с сервера получаю новую структуру.
Но она отображается свернутой уже. Короче, дискомфорт для клиента. :umnik2:

insected 10.03.2009 23:32

Цитата:

Сообщение от silin (Сообщение 804412)
насчет помощи когда даже самому автору лень - без комментариев :)

Ну это не автору вообще-то ) автор был я и мне не лень

silin 11.03.2009 00:59

давайте теперь к словам цепляться..:), автору просьбы имелось ввиду..

короче, у меня не вышло по-простому разом обновить ни астровское, ни mx-ское дерево так чтоб оно при этом не схлопнулось или после обновления восстановить состояние
хотя и странно, что таких методов не предусмотрено, ситуация-то вполне жизненная

Foli 11.03.2009 03:53

Нашел что-то приблеженное к проблеме:
Keep a Tree control open with the data provider is updated

Этот пример у меня работает, только если просто обновить нод. Например, изменить его название. При добавлении не работает. :umnik2:


tree openItems

Тут чувак объяснил, что и как работает. Но не догоняю, как это использовать.


Часовой пояс GMT +4, время: 12:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.