Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / src / grid / plugin / HeaderReorderer.js
1 /**
2  * @class Ext.grid.plugin.HeaderReorderer
3  * @extends Ext.util.Observable
4  * @private
5  */
6 Ext.define('Ext.grid.plugin.HeaderReorderer', {
7     extend: 'Ext.util.Observable',
8     requires: ['Ext.grid.header.DragZone', 'Ext.grid.header.DropZone'],
9     alias: 'plugin.gridheaderreorderer',
10
11     init: function(headerCt) {
12         this.headerCt = headerCt;
13         headerCt.on('render', this.onHeaderCtRender, this);
14     },
15
16     /**
17      * @private
18      * AbstractComponent calls destroy on all its plugins at destroy time.
19      */
20     destroy: function() {
21         Ext.destroy(this.dragZone, this.dropZone);
22     },
23
24     onHeaderCtRender: function() {
25         this.dragZone = Ext.create('Ext.grid.header.DragZone', this.headerCt);
26         this.dropZone = Ext.create('Ext.grid.header.DropZone', this.headerCt);
27         if (this.disabled) {
28             this.dragZone.disable();
29         }
30     },
31     
32     enable: function() {
33         this.disabled = false;
34         if (this.dragZone) {
35             this.dragZone.enable();
36         }
37     },
38     
39     disable: function() {
40         this.disabled = true;
41         if (this.dragZone) {
42             this.dragZone.disable();
43         }
44     }
45 });