このモデルに従って、MVPアーキテクチャを使用してGWTとのインターフェイスの開発を開始します。
- TabLayoutPanelをインスタンス化する最初のビューは、最初のタブのウィジェットと空の2番目のタブを定義します。
- 2番目のタブのonSelectionTabLayoutPanel全体を2番目のタブのウィジェットを定義する2番目のビューに送信するイベントを発生させます。
2番目のビューで適切なTabLayoutPanelを受け取りましたが、2番目のタブを取得して変更を加え、古いパネルに挿入すると、「このウィジェットの親はHasWidgetsを実装していません」というメッセージが表示され、2番目のタブが消えます。
ここで本当の問題が何であるか、またはそれ以外の方法でそれを行う方法を理解するのを手伝ってくれてありがとう。
コメント付きの2番目のビューコードを追加しました。
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);
}