tweetdeckhipchattelegramhangoutsslackgmailskypefacebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-servicesmacoslinuxwindowsinboxwhatsappicloud
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.1 KiB
63 lines
2.1 KiB
/** |
|
* @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; |
|
} |
|
}); |