/**
 * 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.
 *
 * ```javascript
 * @example({ framework: 'extjs' })
 * Ext.create('Ext.data.Store', {
 *    storeId:'sampleStore',
 *    fields:[
 *        {name: 'framework', type: 'string'},
 *        {name: 'rocks', type: 'boolean'}
 *    ],
 *    data:[
 *        { framework: "Ext JS",     rocks: true  },
 *        { framework: "Ext GWT",    rocks: true  },
 *        { framework: "Other Guys", rocks: false }
 *    ]
 * });
 *
 * Ext.create('Ext.grid.Grid', {
 *     fullscreen: true,
 *     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
 * });
 * ```
 */
Ext.define('Ext.grid.column.Boolean', {
    extend: 'Ext.grid.column.Column',
    xtype: 'booleancolumn',
 
    isBooleanColumn: true,
 
    requires: ['Ext.grid.cell.Boolean'],
 
    config: {
        /**
         * @cfg {String} trueText
         * The string returned by the renderer when the column value is not falsey.
         */
        trueText: null,
 
        /**
         * @cfg {String} falseText
         * The string returned by the renderer when the column value is falsey (but not undefined).
         */
        falseText: null,
 
        /**
         * @cfg {String} undefinedText
         * The string returned by the renderer when the column value is undefined.
         */
        undefinedText: null,
 
        defaultEditor: {
            xtype: 'checkboxfield'
        },
 
        cell: {
            xtype: 'booleancell'
        }
    }
});