/**
 * @private
 * Private Container class used by the {@link Ext.grid.RowEditor} to hold its buttons.
 */
Ext.define('Ext.grid.RowEditorButtons', {
    extend: 'Ext.container.Container',
    alias: 'widget.roweditorbuttons',

    frame: true,

    constructor: function(config) {
        var rowEditor = config.rowEditor,
            cssPrefix = Ext.baseCSSPrefix,
            plugin = rowEditor.editingPlugin;

        config = Ext.apply({
            floating: {
                shadow: false
            },
            baseCls: cssPrefix + 'grid-row-editor-buttons',
            layout: {
                type: 'hbox',
                align: 'middle'
            },
            defaults: {
                xtype: 'button',
                ui: rowEditor.buttonUI,
                scope: plugin,
                flex: 1,
                minWidth: Ext.panel.Panel.prototype.minButtonWidth
            },
            items: [{
                cls: cssPrefix + 'row-editor-update-button',
                itemId: 'update',
                handler: plugin.completeEdit,
                text: rowEditor.saveBtnText,
                disabled: rowEditor.updateButtonDisabled
            }, {
                cls: cssPrefix + 'row-editor-cancel-button',
                handler: plugin.cancelEdit,
                text: rowEditor.cancelBtnText
            }]
        }, config);
        this.callParent([config]);
    },

    getTargetEl: function() {
        return this.el;
    },

    // Work round position absolute 100% width bug in IEQuirks
    afterComponentLayout: function() {
        if (Ext.isIEQuirks && !this.componentLayoutCounter) {
            this.el.setWidth(this.width = this.layout.innerCt.getWidth() + this.getFrameInfo().width);
        }
        this.callParent(arguments);        
    }
});