/** * @private */Ext.define('Ext.grid.plugin.HeaderReorderer', { extend: 'Ext.plugin.Abstract', requires: ['Ext.grid.header.DragZone', 'Ext.grid.header.DropZone'], alias: 'plugin.gridheaderreorderer', init: function(headerCt) { this.headerCt = headerCt; headerCt.on({ boxready: this.onHeaderCtRender, single: true, scope: this }); }, /** * @private * Component calls destroy on all its plugins at destroy time. */ destroy: function() { Ext.destroy(this.dragZone, this.dropZone); }, onHeaderCtRender: function() { var me = this; me.dragZone = new Ext.grid.header.DragZone(me.headerCt); me.dropZone = new Ext.grid.header.DropZone(me.headerCt); if (me.disabled) { me.dragZone.disable(); } }, enable: function() { this.disabled = false; if (this.dragZone) { this.dragZone.enable(); } }, disable: function() { this.disabled = true; if (this.dragZone) { this.dragZone.disable(); } }});