/**
* A Column definition class which renders boolean data fields.
* See the {@link Ext.grid.column.Column#xtype xtype} config option of
* {@link Ext.grid.column.Column} for more details.
*
* @example
* var store = Ext.create('Ext.data.Store', {
* fields: [
* {name: 'framework', type: 'string'},
* {name: 'rocks', type: 'boolean'}
* ],
* data: [
* { framework: 'Ext JS 5', rocks: true },
* { framework: 'Ext GWT', rocks: true },
* { framework: 'Other Guys', rocks: false }
* ]
* });
*
* Ext.create('Ext.grid.Panel', {
* title: 'Boolean Column Demo',
* store: store,
* columns: [
* { text: 'Framework', dataIndex: 'framework', flex: 1 },
* {
* xtype: 'booleancolumn',
* text: 'Rocks',
* trueText: 'Yes',
* falseText: 'No',
* dataIndex: 'rocks'
* }
* ],
* height: 200,
* width: 400,
* renderTo: Ext.getBody()
* });
*/
Ext.define('Ext.grid.column.Boolean', {
extend: 'Ext.grid.column.Column',
alias: ['widget.booleancolumn'],
alternateClassName: 'Ext.grid.BooleanColumn',
/**
* @cfg {String} trueText
* The string returned by the renderer when the column value is not falsey.
* @locale
*/
trueText: 'true',
/**
* @cfg {String} falseText
* The string returned by the renderer when the column value is falsey (but not undefined).
* @locale
*/
falseText: 'false',
/**
* @cfg {String} undefinedText
* The string returned by the renderer when the column value is undefined.
*/
undefinedText: '\u00a0',
defaultFilterType: 'boolean',
/**
* @cfg {Object} renderer
* @hide
*/
/**
* @cfg {Object} scope
* @hide
*/
/**
* @cfg producesHTML
* @inheritdoc
*/
producesHTML: false,
defaultRenderer: function(value) {
if (value === undefined) {
return this.undefinedText;
}
if (!value || value === 'false') {
return this.falseText;
}
return this.trueText;
},
updater: function(cell, value) {
Ext.fly(cell).down(this.getView().innerSelector, true).innerHTML =
Ext.grid.column.Boolean.prototype.defaultRenderer.call(this, value);
}
});