/**
* A Column definition class which renders a numeric data field according to a
* {@link #format} string.
*
* @example
* 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()
* });
*/
Ext.define('Ext.grid.column.Number', {
extend: 'Ext.grid.column.Column',
alias: ['widget.numbercolumn'],
alternateClassName: 'Ext.grid.NumberColumn',
requires: ['Ext.util.Format'],
defaultFilterType: 'number',
/**
* @cfg {String} format
* A formatting string as used by {@link Ext.util.Format#number} to format a numeric
* value for this Column.
* @locale
*/
format: '0,000.00',
/**
* @cfg {Object} renderer
* @hide
*/
/**
* @cfg {Object} scope
* @hide
*/
/**
* @cfg producesHTML
* @inheritdoc
*/
producesHTML: false,
summaries: {
sum: true,
min: true,
max: true,
average: true,
variance: true,
variancep: true,
stddev: true,
stddevp: true
},
defaultRenderer: function(value) {
return Ext.util.Format.number(value, this.format);
},
updater: function(cell, value) {
Ext.fly(cell).down(this.getView().innerSelector, true).innerHTML =
Ext.grid.column.Number.prototype.defaultRenderer.call(this, value);
}
});