2 * Ext JS Library 2.2.1
\r
3 * Copyright(c) 2006-2009, Ext JS, LLC.
\r
4 * licensing@extjs.com
\r
6 * http://extjs.com/license
\r
10 // This is a support class used internally by the Grid components
\r
11 Ext.grid.SplitDragZone = function(grid, hd, hd2){
\r
13 this.view = grid.getView();
\r
14 this.proxy = this.view.resizeProxy;
\r
15 Ext.grid.SplitDragZone.superclass.constructor.call(this, hd,
\r
16 "gridSplitters" + this.grid.getGridEl().id, {
\r
17 dragElId : Ext.id(this.proxy.dom), resizeFrame:false
\r
19 this.setHandleElId(Ext.id(hd));
\r
20 this.setOuterHandleElId(Ext.id(hd2));
\r
21 this.scroll = false;
\r
23 Ext.extend(Ext.grid.SplitDragZone, Ext.dd.DDProxy, {
\r
24 fly: Ext.Element.fly,
\r
26 b4StartDrag : function(x, y){
\r
27 this.view.headersDisabled = true;
\r
28 this.proxy.setHeight(this.view.mainWrap.getHeight());
\r
29 var w = this.cm.getColumnWidth(this.cellIndex);
\r
30 var minw = Math.max(w-this.grid.minColumnWidth, 0);
\r
31 this.resetConstraints();
\r
32 this.setXConstraint(minw, 1000);
\r
33 this.setYConstraint(0, 0);
\r
34 this.minX = x - minw;
\r
35 this.maxX = x + 1000;
\r
37 Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y);
\r
41 handleMouseDown : function(e){
\r
42 ev = Ext.EventObject.setEvent(e);
\r
43 var t = this.fly(ev.getTarget());
\r
44 if(t.hasClass("x-grid-split")){
\r
45 this.cellIndex = this.view.getCellIndex(t.dom);
\r
47 this.cm = this.grid.colModel;
\r
48 if(this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)){
\r
49 Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this, arguments);
\r
54 endDrag : function(e){
\r
55 this.view.headersDisabled = false;
\r
56 var endX = Math.max(this.minX, Ext.lib.Event.getPageX(e));
\r
57 var diff = endX - this.startPos;
\r
58 this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff);
\r
61 autoOffset : function(){
\r