Ext.ux.MultiSelectTreePanel (with Drag and Drop)

This is a replacement tree component that supports multi-select and drag&drop at the same time. You can shift or ctrl select multiple nodes and drag identically to the normal tree. You can use further extensions to allow grids.

This code has moved to github. The original links are still up, but may be removed in future.

Fixes an issue a user had with the way selection works. With the 1.1 release if you select multiple nodes and then later single click one of those nodes it doesn't do anything. The desired/intuitive behaviour was to deselect the other nodes. I implemented this with some messing around. I'm not entirely happy with how complicated it is. The end result is nicer though.

There is also a workaround for a bug in the core. If you click and hold a node for longer than the startdrag threshold then it calls proxy.repair() which causes some flickering.

Reversed Order Bug

There seems to be a bug in how the nodes are inserted when the nodes are dropped below a target node.

Ex:
1
2
3
4
5
6
7
8
9
0

Select nodes 6,7,8 and drop below node 1. The resulting order of the tree will be:

1
8
7
6
2
3
4
5
9
0

This happens on both 1.1 and 1.2 versions of this extension. I'm also using ExtJS 3.2.1 where this is happening. Would appreciate if someone can share the fix. I'll share the fix here as well once I managed to find a solution.