/** * A form field trigger that contains a Component */Ext.define('Ext.field.trigger.Component', { extend: 'Ext.field.trigger.Base', alias: 'trigger.component', classCls: Ext.baseCSSPrefix + 'componenttrigger', config: { /** * @cfg {Ext.Component} */ component: null }, doDestroy: function() { this.setComponent(null); this.callParent(); }, applyComponent: function(config, existing) { return Ext.updateWidget(existing, config, this, 'createComponent'); }, createComponent: function(config) { return Ext.apply({ $initParent: this, ownerCmp: this }, config); }, updateComponent: function(component) { if (component) { delete component.$initParent; component.ownerCmp = this; this.el.appendChild(component.el); } }, updateDisabled: function(disabled, oldDisabled) { this.callParent([disabled, oldDisabled]); this.getComponent().setDisabled(disabled); }, getRefItems: function(deep) { var refItems = [], component = this.getComponent(); if (component) { refItems.push(component); if (deep && component.getRefItems) { refItems.push.apply(refItems, component.getRefItems(deep)); } } return refItems; }});