I do something similar to what you are after (I think) by dragging squares around on the screen. In my use case, the squares represent the node order of an FX chain. After a new node order has been establish by dragging a square to a new location on the screen, I rearrange the node tree with the Group.moveAfter method. Maybe you can adapt this approach to what you are after?
I have expanded the code to work in 2D mode which allow you to drag square along both the x and y axis, I can share it if it is of interest.