我开始根据这个模型使用 MVP 架构开发与 GWT 的接口:
- 实例化 TabLayoutPanel 的第一个视图定义了第一个 Tab 的小部件和一个空的第二个 Tab。
- 第二个选项卡的 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);
}