X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6a7e4474cba9d8be4b2ec445e10f1691f7277c50..6b044c28b5f26fb99c86c237ffad19741c0f7f3d:/docs/source/CheckboxSelectionModel.html?ds=inline diff --git a/docs/source/CheckboxSelectionModel.html b/docs/source/CheckboxSelectionModel.html index 02ac6cdf..04788717 100644 --- a/docs/source/CheckboxSelectionModel.html +++ b/docs/source/CheckboxSelectionModel.html @@ -7,10 +7,10 @@
/*! - * Ext JS Library 3.2.0 - * Copyright(c) 2006-2010 Ext JS, Inc. - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ /** * @class Ext.grid.CheckboxSelectionModel @@ -53,10 +53,10 @@ Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { hideable: false, dataIndex : '', id : 'checker', + isColumn: true, // So that ColumnModel doesn't feed this through the Column constructor constructor : function(){ Ext.grid.CheckboxSelectionModel.superclass.constructor.apply(this, arguments); - if(this.checkOnly){ this.handleMouseDown = Ext.emptyFn; } @@ -66,18 +66,21 @@ Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { initEvents : function(){ Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this); this.grid.on('render', function(){ - var view = this.grid.getView(); - view.mainBody.on('mousedown', this.onMouseDown, this); - Ext.fly(view.innerHd).on('mousedown', this.onHdMouseDown, this); - + Ext.fly(this.grid.getView().innerHd).on('mousedown', this.onHdMouseDown, this); }, this); }, - // If handleMouseDown was called from another event (enableDragDrop), set a flag so - // onMouseDown does not process it a second time - handleMouseDown : function() { - Ext.grid.CheckboxSelectionModel.superclass.handleMouseDown.apply(this, arguments); - this.mouseHandled = true; + /** + * @private + * Process and refire events routed from the GridView's processEvent method. + */ + processEvent : function(name, e, grid, rowIndex, colIndex){ + if (name == 'mousedown') { + this.onMouseDown(e, e.getTarget()); + return false; + } else { + return Ext.grid.Column.prototype.processEvent.apply(this, arguments); + } }, // private @@ -85,22 +88,20 @@ Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { if(e.button === 0 && t.className == 'x-grid3-row-checker'){ // Only fire if left-click e.stopEvent(); var row = e.getTarget('.x-grid3-row'); - - // mouseHandled flag check for a duplicate selection (handleMouseDown) call - if(!this.mouseHandled && row){ + if(row){ var index = row.rowIndex; if(this.isSelected(index)){ this.deselectRow(index); }else{ this.selectRow(index, true); + this.grid.getView().focusRow(index); } } } - this.mouseHandled = false; }, // private - onHdMouseDown : function(e, t){ + onHdMouseDown : function(e, t) { if(t.className == 'x-grid3-hd-checker'){ e.stopEvent(); var hd = Ext.fly(t.parentNode); @@ -118,6 +119,12 @@ Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { // private renderer : function(v, p, record){ return ''; + }, + + onEditorSelect: function(row, lastRow){ + if(lastRow != row && !this.checkOnly){ + this.selectRow(row); // *** highlight newly-selected cell and update selection + } } });