Концепция. Рассмотрите возможность использования двух панелей 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 по сравнению с другими макетами/компонентами, но должен быть общий и правильный способ сделать это :)