Spark Tree on GitHub

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.

Download SparkTree.swc
Download source code

11 responses to “Spark Tree on GitHub”

  1. Привет, Максим.
    А как удалить элемент дерева, если не секрет?
    У меня падает ошибка (out of bounds), что так:

    var dp:TreeDataProvider = TreeDataProvider(tree.dataProvider);
    dp.dataProvider.removeItemAt(dp.getItemIndex(tree.selectedItem));

    что так:

    dp.dataProvider.removeItemAt(tree.selectedIndex);
  2. Спасибо. Теперь понятно. Из MX Tree не удалял ничего .. просто не довелось :)
    Наверно можно реализовать TreeDataProvider.removeItemAt, чтобы не искать как же это делается.

  3. В моем варианте получилось так:

    var collection:IList = tree.selectedItem.parent ?
    	FolderEntry(tree.selectedItem.parent).children :
    	TreeDataProvider(tree.dataProvider).dataProvider;
    var l:int = collection.length;
    while(l-->0)
    {
    	if (collection[l]==tree.selectedItem)
    	{
    		collection.removeItemAt(l);
    		break;
    	}
    }

    А в твоём parent еще получить надо.

  4. Еще обнаружил проблему:
    если при нажимании на кнопке “+” “-” не выделять элемент event.preventDefaults(), то индексы начинают косячить и выделение слетает. Оно кстати итак слетает, если захлопнуть родительский узел.
    А поведение такое было бы уместно, если хочется сохранить список дочерних элементов именно того узла, который ты выделял тыком по папке. Это сэкономило бы кол-во пререписываний листа дочерних элементов (который формируется при выделении папки).
    Не вышло у меня подшаманить в этом направлении.

  5. I found a bug, and the test.mxml in my blog post: http://www.smithfox.com/?e=85

    1. I guess:

      //branchIndex = branchIndexes.pop() + 1;
      branchIndex = branchIndexes.pop();

      1. 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

  6. 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!!

Leave a Reply