/*!
|
* Ext JS Library 3.1.0
|
* Copyright(c) 2006-2009 Ext JS, LLC
|
* licensing@extjs.com
|
* http://www.extjs.com/license
|
*/
|
// private
|
// This is a support class used internally by the Grid components
|
Ext.grid.SplitDragZone = Ext.extend(Ext.dd.DDProxy, {
|
fly: Ext.Element.fly,
|
|
constructor : function(grid, hd, hd2){
|
this.grid = grid;
|
this.view = grid.getView();
|
this.proxy = this.view.resizeProxy;
|
Ext.grid.SplitDragZone.superclass.constructor.call(this, hd,
|
"gridSplitters" + this.grid.getGridEl().id, {
|
dragElId : Ext.id(this.proxy.dom), resizeFrame:false
|
});
|
this.setHandleElId(Ext.id(hd));
|
this.setOuterHandleElId(Ext.id(hd2));
|
this.scroll = false;
|
},
|
|
b4StartDrag : function(x, y){
|
this.view.headersDisabled = true;
|
this.proxy.setHeight(this.view.mainWrap.getHeight());
|
var w = this.cm.getColumnWidth(this.cellIndex);
|
var minw = Math.max(w-this.grid.minColumnWidth, 0);
|
this.resetConstraints();
|
this.setXConstraint(minw, 1000);
|
this.setYConstraint(0, 0);
|
this.minX = x - minw;
|
this.maxX = x + 1000;
|
this.startPos = x;
|
Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y);
|
},
|
|
|
handleMouseDown : function(e){
|
var ev = Ext.EventObject.setEvent(e);
|
var t = this.fly(ev.getTarget());
|
if(t.hasClass("x-grid-split")){
|
this.cellIndex = this.view.getCellIndex(t.dom);
|
this.split = t.dom;
|
this.cm = this.grid.colModel;
|
if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){
|
Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this, arguments);
|
}
|
}
|
},
|
|
endDrag : function(e){
|
this.view.headersDisabled = false;
|
var endX = Math.max(this.minX, Ext.lib.Event.getPageX(e));
|
var diff = endX - this.startPos;
|
this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff);
|
},
|
|
autoOffset : function(){
|
this.setDelta(0,0);
|
}
|
});
|