/**
 *
 */
Ext.define('Ext.layout.Abstract', {
    mixins: ['Ext.mixin.Observable'],
    
    isLayout: true,
 
    constructor: function(config) {
        this.initialConfig = config;
    },
 
    //<debug>
    isCompatible: function (layout) {
        if (!layout) {
            return true;
        }
 
        if (layout.isInstance) {
            return false;
        }
 
        var type = Ext.isString(layout) ? layout : layout.type,
            alias = this.alias;
 
        if (!alias || !type) {
            return false;
        }
 
        return alias.indexOf('layout.' + type) > -1;
    },
    //</debug>
 
    setContainer: function(container) {
        var me = this;
 
        me.container = container;
 
        me.mixins.observable.constructor.call(me, me.initialConfig);
 
        return me;
    },
 
    onItemAdd: Ext.emptyFn,
 
    onItemRemove: Ext.emptyFn,
 
    onItemMove: Ext.emptyFn,
 
    onItemCenteredChange: Ext.emptyFn,
 
    onItemPositionedChange: Ext.emptyFn,
 
    onItemDockedChange: Ext.emptyFn,
 
    onItemInnerStateChange: Ext.emptyFn
});