85 lines
No EOL
2.6 KiB
JavaScript
85 lines
No EOL
2.6 KiB
JavaScript
/*
|
|
This file is part of Ext JS 3.4
|
|
|
|
Copyright (c) 2011-2013 Sencha Inc
|
|
|
|
Contact: http://www.sencha.com/contact
|
|
|
|
GNU General Public License Usage
|
|
This file may be used under the terms of the GNU General Public License version 3.0 as
|
|
published by the Free Software Foundation and appearing in the file LICENSE included in the
|
|
packaging of this file.
|
|
|
|
Please review the following information to ensure the GNU General Public License version 3.0
|
|
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
|
|
|
If you are unsure which license is appropriate for your use, please contact the sales department
|
|
at http://www.sencha.com/contact.
|
|
|
|
Build date: 2013-04-03 15:07:25
|
|
*/
|
|
Ext.ns('Ext.ux.grid');
|
|
|
|
/**
|
|
* @class Ext.ux.grid.CheckColumn
|
|
* @extends Ext.grid.Column
|
|
* <p>A Column subclass which renders a checkbox in each column cell which toggles the truthiness of the associated data field on click.</p>
|
|
* <p><b>Note. As of ExtJS 3.3 this no longer has to be configured as a plugin of the GridPanel.</b></p>
|
|
* <p>Example usage:</p>
|
|
* <pre><code>
|
|
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,
|
|
...
|
|
});
|
|
* </code></pre>
|
|
* In addition to toggling a Boolean value within the record data, this
|
|
* class toggles a css class between <tt>'x-grid3-check-col'</tt> and
|
|
* <tt>'x-grid3-check-col-on'</tt> 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('<div class="x-grid3-check-col{0}"> </div>', 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; |