/**
* This class implements the component event domain. All classes extending from
* {@link Ext.Component} are included in this domain. The matching criteria uses
* {@link Ext.ComponentQuery}.
*
* @private
*/
Ext.define('Ext.app.domain.Component', {
extend: 'Ext.app.EventDomain',
singleton: true,
requires: [
'Ext.Widget'
],
type: 'component',
constructor: function() {
this.callParent();
this.monitor(Ext.Widget);
},
dispatch: function(target, ev, args) {
var controller = target.lookupController(false), // don't skip target
domain, view;
while (controller) {
domain = controller.compDomain;
if (domain) {
if (domain.dispatch(target, ev, args) === false) {
return false;
}
}
view = controller.getView();
controller = view ? view.lookupController(true) : null;
}
return this.callParent([target, ev, args]);
},
match: function(target, selector) {
return target.is(selector);
}
});