/**
 * @class Ext.grid.column.Number
 * @extends Ext.grid.column.Column
 *
 * A Column definition class which renders a numeric data field according to a {@link #format} string.
 *
 * {@img Ext.grid.column.Number/Ext.grid.column.Number.png Ext.grid.column.Number cell editing}
 *
 * ## Code
 *     Ext.create('Ext.data.Store', {
 *        storeId:'sampleStore',
 *        fields:[
 *            {name: 'symbol', type: 'string'},
 *            {name: 'price', type: 'number'},
 *            {name: 'change', type: 'number'},
 *            {name: 'volume', type: 'number'},            
 *        ],
 *        data:[
 *            {symbol:"msft", price:25.76, change:2.43, volume:61606325},
 *            {symbol:"goog", price:525.73, change:0.81, volume:3053782},
 *            {symbol:"apple", price:342.41, change:1.35, volume:24484858},            
 *            {symbol:"sencha", price:142.08, change:8.85, volume:5556351}            
 *        ]
 *     });
 *     
 *     Ext.create('Ext.grid.Panel', {
 *         title: 'Number Column Demo',
 *         store: Ext.data.StoreManager.lookup('sampleStore'),
 *         columns: [
 *             {text: 'Symbol',  dataIndex: 'symbol', flex: 1},
 *             {text: 'Current Price',  dataIndex: 'price', renderer: Ext.util.Format.usMoney},
 *             {text: 'Change',  dataIndex: 'change', xtype: 'numbercolumn', format:'0.00'},
 *             {text: 'Volume',  dataIndex: 'volume', xtype: 'numbercolumn', format:'0,000'}
 *         ],
 *         height: 200,
 *         width: 400,
 *         renderTo: Ext.getBody()
 *     });
 * 
 * @xtype numbercolumn
 */
Ext.define('Ext.grid.column.Number', {
    extend: 'Ext.grid.column.Column',
    alias: ['widget.numbercolumn'],
    requires: ['Ext.util.Format'],
    alternateClassName: 'Ext.grid.NumberColumn',

    /**
     * @cfg {String} format
     * A formatting string as used by {@link Ext.util.Format#number} to format a numeric value for this Column
     * (defaults to <code>'0,000.00'</code>).
     */
    format : '0,000.00',
    constructor: function(cfg) {
        this.callParent(arguments);
        this.renderer = Ext.util.Format.numberRenderer(this.format);
    }
});