/*! * Ext JS Library 3.3.0 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ Ext.ns('Ext.ux.grid'); /** * @class Ext.ux.grid.CheckColumn * @extends Ext.grid.Column *A Column subclass which renders a checkbox in each column cell which toggles the truthiness of the associated data field on click.
*Note. As of ExtJS 3.3 this no longer has to be configured as a plugin of the GridPanel.
*Example usage:
** In addition to toggling a Boolean value within the record data, this * class toggles a css class between 'x-grid3-check-col' and * 'x-grid3-check-col-on' to alter the background image used for * a column. */ Ext.ux.grid.CheckColumn = Ext.extend(Ext.grid.Column, { /** * @private * Process and refire events routed from the GridView's processEvent method. */ processEvent : function(name, e, grid, rowIndex, colIndex){ if (name == 'mousedown') { var record = grid.store.getAt(rowIndex); record.set(this.dataIndex, !record.data[this.dataIndex]); return false; // Cancel row selection. } else { return Ext.grid.ActionColumn.superclass.processEvent.apply(this, arguments); } }, renderer : function(v, p, record){ p.css += ' x-grid3-check-col-td'; return String.format('var cm = new Ext.grid.ColumnModel([{ header: 'Foo', ... },{ xtype: 'checkcolumn', header: 'Indoor?', dataIndex: 'indoor', width: 55 } ]); // create the grid var grid = new Ext.grid.EditorGridPanel({ ... colModel: cm, ... }); *
', v ? '-on' : ''); }, // Deprecate use as a plugin. Remove in 4.0 init: Ext.emptyFn }); // register ptype. Deprecate. Remove in 4.0 Ext.preg('checkcolumn', Ext.ux.grid.CheckColumn); // backwards compat. Remove in 4.0 Ext.grid.CheckColumn = Ext.ux.grid.CheckColumn; // register Column xtype Ext.grid.Column.types.checkcolumn = Ext.ux.grid.CheckColumn;