/** * @class Ext.grid.CellEditor * @extends Ext.Editor * Internal utility class that provides default configuration for cell editing. * @ignore */ Ext.define('Ext.grid.CellEditor', { extend: 'Ext.Editor', constructor: function(config) { config = Ext.apply({}, config); if (config.field) { config.field.monitorTab = false; } if (!Ext.isDefined(config.autoSize)) { config.autoSize = { width: 'boundEl' }; } this.callParent([config]); }, /** * @private * Hide the grid cell when editor is shown. */ onShow: function() { var first = this.boundEl.first(); if (first) { first.hide(); } this.callParent(arguments); }, /** * @private * Show grid cell when editor is hidden. */ onHide: function() { var first = this.boundEl.first(); if (first) { first.show(); } this.callParent(arguments); }, /** * @private * Fix checkbox blur when it is clicked. */ afterRender: function() { this.callParent(arguments); var field = this.field; if (field.isXType('checkboxfield')) { field.mon(field.inputEl, 'mousedown', this.onCheckBoxMouseDown, this); field.mon(field.inputEl, 'click', this.onCheckBoxClick, this); } }, /** * @private * Because when checkbox is clicked it loses focus completeEdit is bypassed. */ onCheckBoxMouseDown: function() { this.completeEdit = Ext.emptyFn; }, /** * @private * Restore checkbox focus and completeEdit method. */ onCheckBoxClick: function() { delete this.completeEdit; this.field.focus(false, 10); }, alignment: "tl-tl", hideEl : false, cls: Ext.baseCSSPrefix + "small-editor " + Ext.baseCSSPrefix + "grid-editor", shim: false, shadow: false });