I had to use the override that mkkhailt suggested in order to be able to load a node. I am using EXT JS 4.1.3 which I believe is the latest as of today.
One clue may be that if didn't seem to happen for nodes that were not that deep. Nodes that were 2 levels done could be loaded fine without the override. Nodes 5 levels down could not. I didn't test what happens for nodes 3 or 4 levels down because my tree isn't setup that.
My store was a local filtered store so I couldn't use store.removeAll() and also the events happening with respect to the removal of a record were too costly. So I suspended the store events, did what I had to do (later changed this to store.remove(store.getRange())), and resumed the store events. After that, I thought firing the datachanged event of the store and refreshing the grid view was enough in order to make things right.
It seems it's not. Because as seen below, Ext.view.AbstractView does not listen to the datachanged event of its store.
I think this could be classified as a bug. I use ExtJS 18.104.22.1684 and I'm overriding app from ExtJS 3. Data received from server are saved to single store which use following models. Data are displayed in Ext.view.View
As I wrote above, data are stored in single store and use different models. When I use westy's override data are displayed properly. However when you want use itemcontextmenu, only one of messages can be selected.