I don't know exactly what you want to do, but here's an example:
Code:
tree.getEl().on({
'dragenter': function(e) {
if (e.hasFormat(Ext.air.DragType.FILES)) {
e.preventDefault();
}
},
'dragover': function(e) {
if (e.hasFormat(Ext.air.DragType.FILES)) {
e.browserEvent.dataTransfer.dropEffect = 'link'; // or 'copy' or 'move'
e.preventDefault();
}
},
'drop': function(e) {
var files = e.browserEvent.dataTransfer.getData(Ext.air.DragType.FILES),
node = e.getTarget('.x-tree-node-el', 3, true);
node = node.getAttribute('tree-node-id', 'ext');
node = tree.getNodeById(node);
node.expand(false, false, function() {
Ext.each(files, function(file) {
node.appendChild(new Ext.tree.TreeNode({
text: file.name
}));
});
});
},
delegate: '.x-tree-node-el'
});
It adds subnodes to nodes if you drag files on them.
There's no check for leaf/non-leaf nodes or files/directories. It's just a quick and dirty one to demonstrate dragging onto a tree.