/**
 * @private
 */
Ext.define('Ext.layout.component.ProgressBar', {
 
    /* Begin Definitions */
 
    alias: ['layout.progressbar'],
 
    extend: 'Ext.layout.component.Auto',
 
    /* End Definitions */
 
    type: 'progressbar',
 
    beginLayout: function (ownerContext) {
        var me = this,
            i, textEls;
 
        me.callParent(arguments);
 
        if (!ownerContext.textEls) {
            textEls = me.owner.textEl; // an Ext.Element or CompositeList (raw DOM el's)
 
            if (textEls.isComposite) {
                ownerContext.textEls = [];
                textEls = textEls.elements;
                for (= textEls.length; i--; ) {
                    ownerContext.textEls[i] = ownerContext.getEl(Ext.get(textEls[i]));
                }
            } else {
                ownerContext.textEls = [ ownerContext.getEl('textEl') ];
            }
        }
    },
 
    calculate: function(ownerContext) {
        var me = this,
            i, textEls, width;
 
        me.callParent(arguments);
 
        if (Ext.isNumber(width = ownerContext.getProp('width'))) {
            width -= ownerContext.getBorderInfo().width;
            textEls = ownerContext.textEls;
 
            for (= textEls.length; i--; ) {
                textEls[i].setWidth(width);
            }
        } else {
            me.done = false;
        }
    }
});