Я начинаю разрабатывать интерфейс с GWT, используя архитектуру MVP по этой модели:
- Первое представление, которое создает экземпляр TabLayoutPanel, определяет виджеты первой вкладки и пустую вторую вкладку.
- onSelection второй вкладки Я запускаю событие, которое отправляет всю TabLayoutPanel во второе представление, которое будет определять виджеты второй вкладки.
Во втором представлении я получаю соответствующую TabLayoutPanel, но когда я извлекаю вторую вкладку, вношу изменения и вставляю ее в старую панель, я получаю сообщение «Родитель этого виджета не реализует HasWidgets», и вторая вкладка исчезает.
Спасибо, что помогли мне увидеть, в чем здесь настоящая проблема или как это сделать иначе.
Я добавил второй код просмотра с комментариями.
public class MDP2View extends Composite implements MDP2Presenter.Display {
private final TabLayoutPanel tabPanel;
private final VerticalPanel MDP2;
private final Label label;
public MDP2View(HasSelectionHandlers<Integer> tabPanel) {
// Getting the TabLayoutPanel created on the first View
this.tabPanel = (TabLayoutPanel) tabPanel;
// Getting the second Tab (this will remove the Tab from the TabLayoutPanel)
MDP2 = (VerticalPanel) this.tabPanel.getWidget(1);
initWidget(MDP2);
// Adding a label to the Tab
label = new Label();
label.setText("onSelectionHandler Works!!!");
MDP2.add(label);
// Inserting the Tab in the tabPanel
this.tabPanel.insert(MDP2, "MDP2", 1);
}