    /**
     * Component layout for editors
     * @private
     */
    Ext.define('Ext.layout.container.Editor', {

        /* Begin Definitions */

        alias: 'layout.editor',

        extend: 'Ext.layout.container.Container',

        /* End Definitions */

        autoSizeDefault: {
            width: 'field',
            height: 'field'
        },

        getItemSizePolicy: function (item) {
            var me = this,
                autoSize = me.owner.autoSize;

            return me.sizePolicy || (me.sizePolicy = {
                setsWidth:  autoSize && autoSize.width  === 'boundEl' ? 1 : 0,
                setsHeight: autoSize && autoSize.height === 'boundEl' ? 1 : 0
            });
        },

        calculate: function(ownerContext) {
            var me = this,
                owner = me.owner,
                autoSize = owner.autoSize,
                fieldWidth,
                fieldHeight;

            if (autoSize === true) {
                autoSize = me.autoSizeDefault;
            }

            // Calculate size of both Editor, and its owned Field
            if (autoSize) {
                fieldWidth  = me.getDimension(owner, autoSize.width,  'getWidth',  owner.width);
                fieldHeight = me.getDimension(owner, autoSize.height, 'getHeight', owner.height);
            }

            // Set Field size
            ownerContext.childItems[0].setSize(fieldWidth, fieldHeight);

            // Bypass validity checking. Container layouts should not usually set their owner's size.
            ownerContext.setWidth(fieldWidth);
            ownerContext.setHeight(fieldHeight);

            // This is a Container layout, so publish content size
            ownerContext.setContentSize(fieldWidth || owner.field.getWidth(),
                                        fieldHeight || owner.field.getHeight());
        },

        getDimension: function(owner, type, getMethod, ownerSize){
            switch (type) {
                // Size to boundEl's dimension
                case 'boundEl':
                    return owner.boundEl[getMethod]();

                // Auto size (shrink wrap the Field's size
                case 'field':
                    return undefined;

                // Size to the Editor's configured size
                default:
                    return ownerSize;
            }
        }
    });