I have done something similar lately except for the spring loaded
opening mechanism. The problem that I saw with Alex Harui's approach was
that you had to turn a leaf into a branch before being able to drop a
node on it. That impacts the icons that represent the nodes and I still
wanted a leaf node to be represented with a leaf icon up to the point
where it contains children. If all your nodes (leaf or branch) have the
same icon, then you could make all the nodes branches through a custom
ITreeDataDescriptor. You'll have to live with having the small arrow to
the left on every node.
 
What I finally did was to overload some tree methods. If the drag & drop
is over the bottom half portion of a node, I highlight it and rewrite
the parent and rowIndex properties of the _dropData property. That works
well. You could extend the logic to open up the folder after the drop
and add a spring loaded opening mechanism.
 
I'm attaching some code but I had to clean it up to remove proprietary
information. Not sure if it still compiles but that's a starting point
:-)
 
Hope it helps!
 
 
 
 

Attachment: TreeEx.as
Description: TreeEx.as

Reply via email to