Read the description first.
Also, if something does not work, please read more carefully before reporting.
- Every node can be initially opened or closed. Also, some actions upon it may be disabled, you'll see that on demo
 
- 
You can drag'n'drop a node to change parent
- FirstTree accepts only sources from secondTree, secondTree accepts both (for demo purposes)
 
- You can only drop to folder ("+/-" sign)
 
- You can't drop an ancestor to any of its descenants
 
- You can't drop a child to its closest parent
 
- A node is highlighted if you can drop onto it
 
- There are two DnD modes: "between" and "onto". Between is used in the demo.
 
- Nodes autoexpand on dragOver after delay
 
 
- 
Move nodes up and down, remove them by selecting and pressing tool buttons.
You surely can't move top nodes higher and bottom nodes lower.
 
- 
You can create nodes by clicking create button.
- Currently only simple same nodes are created, but this can be changed easily.
 
- Nodes are created on top for convinience.
 
 
- All editing operations use server requests(ajax)
- Empty folders get loaded dynamically.
 
- In this demo "test" node can be expanded infinitely (from server).
 
- Remote communication process is indicated.
 
 
- FirstTree has context menu (right-click on node), attached using events.
Its main functionality inherits dojo.widget.PopupMenu2.
 
- 
A bunch of events is fired by both tree and controller to simplify integration.
 
- 
Yes, it is OpenSource, and yes, you are free to use & contribute to it.
 
Ilia Kantor, ilia at manual dot ru
Here go debug messages