2011-08-09 7 views
1

私はGWTとGWTPを使用して小さなアプリケーションを開発していますが、私はこれらの技術を全く新しくしています。最初のページアクセス時にGWTPのネスタープレゼンターを公開

ネストされたプレゼンター機能を使用しようとしています。しかし、私はその意図を正しく理解していれば疑問があります...

私のアプリケーションは、2種類のフレームで項目のリストをいくつか持つことになっています。それらをフォルダとファイルとみなしてください。

私はMainPageビューとプレゼンターを開発しましたが、いくつかのレイアウトパネルしかありません。個別のプレゼンターとしてアイテムのリスト(カスタムウィジェットとして表される)を実装したいと思います。例えば、ItemsListPresenterと呼ばれるものが1つです。

私はMainPagePresenterにスロットを作成し、ItemsListPresenter.revealInParent()メソッドを実装して、そのスロットにプレゼンターを挿入しました。

しかし、どのように私はItemsListPresenterを明らかにする必要がありますか?それはonBind()でも呼び出されていません。

私はこれについてPlaceManagerというメソッドを呼び出す必要があることを知っています。私の質問は、ベストプラクティスに合致するようにこのコールを実際に実行する方法です。

MainPagePresenterPlaceManagerを注入して、それをonBind()の方法で直接呼び出すのはいいですか?

ありがとうございます。

答えて

3

ます。また、このように、あなたのMainPageViewのsetInSlot()メソッドを実装する必要があります。MainPagePresenter.TYPE_SetMainContentは、あなたのコンテンツスロットで、mainContentPanelはあなたが明らかにしたくなるMAINVIEWパネルで

@Override 
public void setInSlot(Object slot, Widget content) { 
    if (slot == MainPagePresenter.TYPE_SetMainContent) { 
     mainContentPanel.clear(); 
     if (content != null) { 
      mainContentPanel.add(content); 
     } 

    } else { 
     super.setInSlot(slot, content); 
    } 
} 

ネストされたプレゼンター。また、メインのプレゼンターは場所であってはならず、ネストされたプレゼンターだけがプレースです。

PlaceManagerのメソッドを使用して、現在表示されているネストされたプレゼンターをプログラムで切り替えることができます(一度に1つしか表示できません)。 ginを使用して必要な場所にPlaceManagerを挿入することができます。それとも、このようなメニューでハイパーリンクを使用して切り替えることができます

<g:InlineHyperlink targetHistoryToken="{nameTokens.getFistItemsListPage}"> 
    First items list 
</g:InlineHyperlink> 
<g:InlineHyperlink targetHistoryToken="{nameTokens.getSecondItemsListPage}"> 
    Second items list 
</g:InlineHyperlink> 

あなたは一度にいくつかのサブプレゼンターを表示したい場合は、ネストされた発表者の代わりにpresenter widgetsを使用する必要があります。

+0

ありがとうございます!それは私が私に期待する以上に説明しました。 – edio

関連する問題