I am designing a new application and trying to work out the "best" approach in extjs4.

The application is similar to a typical email client - a list of messages in a grid on the right, and a tree of folders in a pane on the left. Behaviour is also the same as a typical email application. The end user is able to select one or more messages from the current grid and drag them onto a folder on the left. The messages then disappear from the grid because they have been moved to the new folder.

I'm interested in any advice or ideas on the "right" way to do this with extjs4.

** There might be hundreds of thousands of messages in any given folder, so the grid must do paging or scrolling.
** The user must be able to multi-select messages contiguously using the shift key, or non contiguously using the control key
** After messages have been dragged into a new folder, the grid must update in place to clear the moved messages from the current grid, without a page reload and without the user losing their place in grid.

Is the extjs4 grid capable of doing the above? Is there an example anywhere showing dragging of single/multiple grid rows to a tree?