/*
|
This file is part of Ext JS 4.2
|
|
Copyright (c) 2011-2013 Sencha Inc
|
|
Contact: http://www.sencha.com/contact
|
|
GNU General Public License Usage
|
This file may be used under the terms of the GNU General Public License version 3.0 as
|
published by the Free Software Foundation and appearing in the file LICENSE included in the
|
packaging of this file.
|
|
Please review the following information to ensure the GNU General Public License version 3.0
|
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
|
If you are unsure which license is appropriate for your use, please contact the sales department
|
at http://www.sencha.com/contact.
|
|
Build date: 2013-05-16 14:36:50 (f9be68accb407158ba2b1be2c226a6ce1f649314)
|
*/
|
/**
|
* @private
|
*/
|
Ext.define('Ext.grid.plugin.HeaderReorderer', {
|
extend: 'Ext.AbstractPlugin',
|
requires: ['Ext.grid.header.DragZone', 'Ext.grid.header.DropZone'],
|
alias: 'plugin.gridheaderreorderer',
|
|
init: function(headerCt) {
|
this.headerCt = headerCt;
|
headerCt.on({
|
render: this.onHeaderCtRender,
|
single: true,
|
scope: this
|
});
|
},
|
|
/**
|
* @private
|
* AbstractComponent 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();
|
}
|
}
|
});
|