3 * Copyright(c) 2006-2009 Ext JS, LLC
5 * http://www.extjs.com/license
8 // This is a support class used internally by the Grid components
9 Ext.grid.SplitDragZone = function(grid, hd, hd2){
11 this.view = grid.getView();
12 this.proxy = this.view.resizeProxy;
13 Ext.grid.SplitDragZone.superclass.constructor.call(this, hd,
14 "gridSplitters" + this.grid.getGridEl().id, {
15 dragElId : Ext.id(this.proxy.dom), resizeFrame:false
17 this.setHandleElId(Ext.id(hd));
18 this.setOuterHandleElId(Ext.id(hd2));
21 Ext.extend(Ext.grid.SplitDragZone, Ext.dd.DDProxy, {
24 b4StartDrag : function(x, y){
25 this.view.headersDisabled = true;
26 this.proxy.setHeight(this.view.mainWrap.getHeight());
27 var w = this.cm.getColumnWidth(this.cellIndex);
28 var minw = Math.max(w-this.grid.minColumnWidth, 0);
29 this.resetConstraints();
30 this.setXConstraint(minw, 1000);
31 this.setYConstraint(0, 0);
35 Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y);
39 handleMouseDown : function(e){
40 var ev = Ext.EventObject.setEvent(e);
41 var t = this.fly(ev.getTarget());
42 if(t.hasClass("x-grid-split")){
43 this.cellIndex = this.view.getCellIndex(t.dom);
45 this.cm = this.grid.colModel;
46 if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){
47 Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this, arguments);
52 endDrag : function(e){
53 this.view.headersDisabled = false;
54 var endX = Math.max(this.minX, Ext.lib.Event.getPageX(e));
55 var diff = endX - this.startPos;
56 this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff);
59 autoOffset : function(){