Extjs: Как приблизиться к концепции: Добавить, удалить, добавить экземпляр

Концепция : Рассмотрим наличие двух панелей A и B и окна C , как в следующем примере. Кнопки в окне переключаются между двумя панелями.

var A = new Ext.Panel({
    title: 'A'
});

var B = new Ext.Panel({
    title: 'B'
});

var C = new Ext.Window({
    layout: 'fit',
    width: 300,
    height: 300,
    items: A,
    buttons: [
    {
        text: 'Switch to A',
        handler: function() {
            C.removeAll(false);
            C.add(A);
            C.doLayout();
        }
    }, {
        text: 'Switch to B',
        handler: function() {
            C.removeAll(false);
            C.add(B);
            C.doLayout();
        }
    }]
});
C.show();

Концепция очень проста: добавить компонент, удалить его и снова добавить тот же экземпляр.

Проблема : Переключение с A на B работает, но возврат к A не работает (B остается, а A больше не отображается).

Вопрос : Думая ООП, я ожидал, что вышеуказанная концепция будет работать. Так как это не так, и это очень простой маневр, как мне думать / рассматривать / дизайн , когда я пытаюсь это сделать ?

Я понимаю, что могут быть разные случаи при рассмотрении FormPanel по сравнению с другими макетами / компонентами - но должен быть общий и правильный способ сделать это :)

6
задан Chau 31 March 2011 в 13:24
поделиться