/** * @private */Ext.define('Ext.tree.ViewDragZone', { extend: 'Ext.view.DragZone', isPreventDrag: function(e, record) { return (record.get('allowDrag') === false) || !!e.getTarget(this.view.expanderSelector); }, getDragText: function() { var records = this.dragData.records, count = records.length, text = records[0].get(this.displayField), suffix = 's'; if (count === 1 && text) { return text; } else if (!text) { suffix = ''; } return Ext.String.format(this.dragText, count, suffix); }, afterRepair: function() { var me = this, view = me.view, selectedRowCls = view.selectedItemCls, records = me.dragData.records, r, rLen = records.length, fly = Ext.fly, item; if (Ext.enableFx && me.repairHighlight) { // Roll through all records and highlight all the ones we attempted to drag. for (r = 0; r < rLen; r++) { // anonymous fns below, don't hoist up unless below is wrapped in // a self-executing function passing in item. item = view.getNode(records[r]); // We must remove the selected row class before animating, because // the selected row class declares !important on its background-color. fly(item.firstChild).highlight(me.repairHighlightColor, { listeners: { beforeanimate: function() { if (view.isSelected(item)) { fly(item).removeCls(selectedRowCls); } }, afteranimate: function() { if (view.isSelected(item)) { fly(item).addCls(selectedRowCls); } } } }); } } me.dragging = false; }});