/**
 * @class Ext.app.domain.View
 */
Ext.define('Ext.app.domain.View', {
    extend: 'Ext.app.EventDomain',
 
    requires: ['Ext.Widget'],
    
    isInstance: true,
    
    constructor: function(controller) {
        this.callParent([controller]);
        this.controller = controller;
        this.monitoredClasses = [Ext.Widget];
    },
    
    match: function(target, selector, controller) {
        var out = false;
        
        if (selector === '#') {
            out = controller === target.getController();
        }
        else {
            out = target.is(selector);
        }
        
        return out;
    },
    
    destroy: function() {
        this.controller = null;
        
        this.callParent();
    }
});