I’ve just uploaded Spark Tree component to the GitHub so if you’ve got some updates or bug fixes – please send pull requests :) Also the package is changed – now it’s com.sparkTree
.

I’ve just uploaded Spark Tree component to the GitHub so if you’ve got some updates or bug fixes – please send pull requests :) Also the package is changed – now it’s com.sparkTree
.
Привет, Максим.
А как удалить элемент дерева, если не секрет?
У меня падает ошибка (out of bounds), что так:
что так:
1 вариант будет работать только если
selectedItem
это элемент верхнего уровня потому чтоdp.dataProvider
содержит только их.2 вариант будет работать если все ветки дерева закрыты и опять же выбран элемент верхнего уровня потому что
selectedIndex
считается как будто это список, а не дерево.А как ты из MX Tree удалял? :) Там тоже такое не прокатывает, по-моему.
Чтобы удалить элемент достаточно удалить его из исходной коллекции. Если этот элемент где-то глубоко в дереве – то найти его родительскую коллекцию вручную и удалить оттуда.
Спасибо. Теперь понятно. Из MX Tree не удалял ничего .. просто не довелось :)
Наверно можно реализовать TreeDataProvider.removeItemAt, чтобы не искать как же это делается.
В моем варианте получилось так:
А в твоём parent еще получить надо.
Еще обнаружил проблему:
если при нажимании на кнопке “+” “-” не выделять элемент event.preventDefaults(), то индексы начинают косячить и выделение слетает. Оно кстати итак слетает, если захлопнуть родительский узел.
А поведение такое было бы уместно, если хочется сохранить список дочерних элементов именно того узла, который ты выделял тыком по папке. Это сэкономило бы кол-во пререписываний листа дочерних элементов (который формируется при выделении папки).
Не вышло у меня подшаманить в этом направлении.
Я бы не сказал, что это проблема. Скорее возможное улучшение. Может, сделаю на досуге.
I found a bug, and the test.mxml in my blog post: http://www.smithfox.com/?e=85
I guess:
//branchIndex = branchIndexes.pop() + 1;
branchIndex = branchIndexes.pop();
After my research, I found the issue is caused by the Flex SDK4.5.1 ListBase’s Caret.
So I try to give my solution: http://www.smithfox.com/?e=155
Another suggestion:
Now the Flex is 4.5.1, but there are still no official spark tree, so your component is really a great component.
Most of flexer tend to use spark tree without the halo library dependence.
But I found your code use mx.controls.ITreeDataDescriptor and mx.controls.ITreeDataDescriptor2. the two classes exists in mx.swc(flex 4.5 old mx library).
Then I try to copy some codes from SDK source code to package “com.sparkTree”.
It works!!
And I comment the mx.swc from my flex-config.xml, rebuit the swc,
the sparkTree.swc size from 44K to 26K!!