/** * This class displays a numeric value in a {@link Ext.grid.Grid grid} cell. This cell type * is typically used by specifying {@link Ext.grid.column.Number} column type. * * {@link Ext.grid.Row Rows} create cells based on the {@link Ext.grid.column.Column#cell} * config. Application code would rarely create cells directly. */Ext.define('Ext.grid.cell.Number', { extend: 'Ext.grid.cell.Text', xtype: 'numbercell', isNumberCell: true, requires: [ 'Ext.util.Format' ], config: { /** * @cfg {String} format * A format string as used by {@link Ext.util.Format#number} to format values for * this column. */ format: '0,000.00' }, classCls: Ext.baseCSSPrefix + 'numbercell', zeroValue: null, updateColumn: function (column, oldColumn) { this.callParent([ column, oldColumn ]); if (column && column.isNumberColumn) { var format = column.getFormat(); if (format !== null) { this.setFormat(format); } } }, updateFormat: function (format) { if (!this.isConfiguring) { this.writeValue(); } }, formatValue: function (value) { var hasValue = value || value === 0, zeroValue; if (value === 0 && (zeroValue = this.getZeroValue()) !== null) { value = zeroValue || ''; } else { value = hasValue ? Ext.util.Format.number(value, this.getFormat()) : ''; } return value; }});