1

私は GWT と GWTP を使用して小さなアプリケーションを開発していますが、これらのテクノロジはまったく初めてで、ここで少し助けが必要です。

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

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

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

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

しかし、どのように明らかにすればよいItemsListPresenterでしょうか? それonBind()は呼ばれていません。

このためにメソッドを呼び出さなければならないことはわかっていPlaceManagerます。私の質問は、ベスト プラクティスに準拠するために、この呼び出しを実際にどのように実行する必要があるかということです。

PlaceManagermyに注入し、MainPagePresenterそのメソッドをメソッド内で直接呼び出してもonBind()よろしいでしょうか?

前もって感謝します。

4

1 に答える 1

3

次のように、MainPageView の setInSlot() メソッドも実装する必要があります。

@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);
    }
}

MainPagePresenter.TYPE_SetMainContent はコンテンツ スロットであり、mainContentPanel はネストされたプレゼンターを表示する MainView パネルです。また、メイン プレゼンターは場所であってはなりません。ネストされたプレゼンターのみが場所です。

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

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

一度に複数のサブ プレゼンターを表示する場合は、ネストされたプレゼンターの代わりにプレゼンター ウィジェットを使用する必要があります。

于 2011-08-09T21:53:40.763 に答える