/**
* @class Ext.grid.column.Boolean
* @extends Ext.grid.column.Column
* <p>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.</p>
*
* {@img Ext.grid.column.Boolean/Ext.grid.column.Boolean.png Ext.grid.column.Boolean grid column}
*
* ## Code
* Ext.create('Ext.data.Store', {
* storeId:'sampleStore',
* fields:[
* {name: 'framework', type: 'string'},
* {name: 'rocks', type: 'boolean'}
* ],
* data:{'items':[
* {"framework":"Ext JS 4", "rocks":true},
* {"framework":"Sencha Touch", "rocks":true},
* {"framework":"Ext GWT", "rocks":true},
* {"framework":"Other Guys", "rocks":false}
* ]},
* proxy: {
* type: 'memory',
* reader: {
* type: 'json',
* root: 'items'
* }
* }
* });
*
* Ext.create('Ext.grid.Panel', {
* title: 'Boolean Column Demo',
* store: Ext.data.StoreManager.lookup('sampleStore'),
* columns: [
* {text: 'Framework', dataIndex: 'framework', flex: 1},
* {
* xtype: 'booleancolumn',
* text: 'Rocks',
* trueText: 'Yes',
* falseText: 'No',
* dataIndex: 'rocks'}
* ],
* height: 200,
* width: 400,
* renderTo: Ext.getBody()
* });
*
* @xtype booleancolumn
*/
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 (defaults to <tt>'true'</tt>).
*/
trueText: 'true',
/**
* @cfg {String} falseText
* The string returned by the renderer when the column value is falsey (but not undefined) (defaults to
* <tt>'false'</tt>).
*/
falseText: 'false',
/**
* @cfg {String} undefinedText
* The string returned by the renderer when the column value is undefined (defaults to <tt>' '</tt>).
*/
undefinedText: ' ',
constructor: function(cfg){
this.callParent(arguments);
var trueText = this.trueText,
falseText = this.falseText,
undefinedText = this.undefinedText;
this.renderer = function(value){
if(value === undefined){
return undefinedText;
}
if(!value || value === 'false'){
return falseText;
}
return trueText;
};
}
});