Hi All! *Steps to reproduce:*
1. Create an application with the Tree component instance and
XMLListCollection dataProvider binded to it that contains 5 items:
- private var itemsXML : XML =
<items>
<item name="Item 1" isBranch="true" />
<item name="Item 2" isBranch="true" />
<item name="Item 3" isBranch="true" />
<item name="Item 4" isBranch="true" />
<item name="Item 5" isBranch="true" />
</items>;
2. Expand Item 4.
3. Drag and drop Item 5 from the root to the Item 4.
4. Drag and drop Item 5 from the Item 4 to the root.
*Expected result:* Item 5 is deleted from the Item 4 and appears on the root
in the drop position.
*Actual result:* Item 5 actually appears on the root in the drop position,
but it is not removed from the Item 4, so there are 2 same elements in the
hierarchy intead of one.
*Details:* I have realized that HierarchicalCollectionView.parentMap hash is
not correctly updated and upon 1st drag and drop still contains nulls for
all items within the collection. Thus DefaultDataDescriptor.getParent()
returns wrong value and removeChildItem() in Tree.dragDropHandler() does not
work as expected.
You can find the test application source attached.
Sergey.
tree.mxml
Description: Binary data
