]> git.proxmox.com Git - extjs.git/blob - extjs/classic/classic/src/grid/plugin/HeaderReorderer.js
add extjs 6.0.1 sources
[extjs.git] / extjs / classic / classic / src / grid / plugin / HeaderReorderer.js
1 /**
2 * @private
3 */
4 Ext.define('Ext.grid.plugin.HeaderReorderer', {
5 extend: 'Ext.plugin.Abstract',
6 requires: ['Ext.grid.header.DragZone', 'Ext.grid.header.DropZone'],
7 alias: 'plugin.gridheaderreorderer',
8
9 init: function(headerCt) {
10 this.headerCt = headerCt;
11 headerCt.on({
12 boxready: this.onHeaderCtRender,
13 single: true,
14 scope: this
15 });
16 },
17
18 destroy: function() {
19 var me = this;
20
21 // The grid may happen to never render
22 me.headerCt.un('boxready', me.onHeaderCtRender, me);
23
24 Ext.destroy(me.dragZone, me.dropZone);
25 me.headerCt = me.dragZone = me.dropZone = null;
26
27 me.callParent();
28 },
29
30 onHeaderCtRender: function() {
31 var me = this;
32
33 me.dragZone = new Ext.grid.header.DragZone(me.headerCt);
34 me.dropZone = new Ext.grid.header.DropZone(me.headerCt);
35 if (me.disabled) {
36 me.dragZone.disable();
37 }
38 },
39
40 enable: function() {
41 this.disabled = false;
42 if (this.dragZone) {
43 this.dragZone.enable();
44 }
45 },
46
47 disable: function() {
48 this.disabled = true;
49 if (this.dragZone) {
50 this.dragZone.disable();
51 }
52 }
53 });