/**
* This class implements the controller event domain. All classes extending from
* {@link Ext.app.Controller} are included in this domain. The selectors are simply id,
* alias, or the wildcard "*" to match any controller.
*
* @private
*/
Ext.define('Ext.app.domain.Controller', {
extend: 'Ext.app.EventDomain',
singleton: true,
requires: [
'Ext.app.Controller'
],
type: 'controller',
prefix: 'controller.',
idMatchRe: /^#/,
constructor: function() {
var me = this;
me.callParent();
me.monitor(Ext.app.BaseController);
},
match: function(target, selector) {
var result = false,
alias = target.alias;
if (selector === '*') {
result = true;
}
else if (selector === '#') {
result = !!target.isApplication;
}
else if (this.idMatchRe.test(selector)) {
result = target.getId() === selector.substring(1);
}
else if (alias) {
result = Ext.Array.indexOf(alias, this.prefix + selector) > -1;
}
return result;
}
});