Я создал виджет, который является подклассом Composite и содержит com.extjs.gxt.ui.client.widget.Viewport
.В этом окне просмотра я добавил свой компонент заголовка, LayoutComponent (изначально пустой) и мой компонент нижнего колонтитула.Я инициализировал составной виджет, вызвав initWidget в конце конструктора, который все настраивает ... что-то вроде этого (некоторый код удален для удобства чтения):
public class MyComposite extends Composite {
...
public MyComposite(...) {
viewport = new Viewport();
viewport.add(new Header());
content = new LayoutContainer();
viewport.add(content);
viewport.add(new Footer());
initWidget(viewport);
}
public void show(Widget... widgets) {
content.removeAll();
for (Widget widget: widgets) content.add(widget);
}
}
Затем я добавляю экземпляр этого вRootPanel:
MyComposite myComposite = new MyComposite(...);
RootPanel.get("myComposite").add(myComposite);
И угадайте, что ... это работает!Я вижу это.Заголовок показывает, нижний колонтитул показывает, и содержание является пустым в этой точке.Хорошо.Затем я делаю звонок, чтобы показать и добавить вещи к нему.Не совсем так, как например:
myComposite.show(new Label(...));
Но ничего не происходит.Код работает, метод add (...) вызывается из метода show (...), исключений нет, но ничего (нового) не появляется.Я не использую метку, но это не проблема (проверено, это работает в другом месте).Когда я проверяю DOM в браузере, я вижу, что для содержимого есть div, как он был изначально, но он остался пустым (то есть без содержимого тела).
Чего мне не хватает?
Спасибо!