X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/src/grid/column/Boolean.js diff --git a/src/grid/column/Boolean.js b/src/grid/column/Boolean.js new file mode 100644 index 00000000..728e7ef0 --- /dev/null +++ b/src/grid/column/Boolean.js @@ -0,0 +1,90 @@ +/** + * @class Ext.grid.column.Boolean + * @extends Ext.grid.column.Column + *

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.

+ * + * {@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 'true'). + */ + trueText: 'true', + + /** + * @cfg {String} falseText + * The string returned by the renderer when the column value is falsey (but not undefined) (defaults to + * 'false'). + */ + falseText: 'false', + + /** + * @cfg {String} undefinedText + * The string returned by the renderer when the column value is undefined (defaults to ' '). + */ + 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; + }; + } +}); \ No newline at end of file