Если нужно сохранить возможность расположения элементов вашего контейнера по лейауту, то лучше сделать так:
Ext.define('MyContainer', {
extend: 'Ext.container.Container',
alias: 'widget.my-container',
config: {
boxes: []
},
initComponent: function() {
this.items = [];
Ext.Array.each(this.getBoxes(), function(box) {
this.items.push({
xtype: 'component',
html: box.content
});
}, this);
this.callParent();
}
});
var myCnt = Ext.create('MyContainer', {
renderTo: Ext.getBody(),
boxes: [
{
content: '5555'
},
{
content: '77777'
}
]
});
Вместо boxes, можно написать в config и что-нибудь своё. Только потом getBoxes() нужно будет тоже поменять на getЧтоНибудьСвоё().
Переписывать лейауты не нужно. Ими нужно пользоваться.
Пример