11

メインプレゼンターにコンテンツ スロットがあります。アプリのロード時にホーム プレゼンターを 1 つのスロットに、メニュー スロットを別のスロットに配置するにはどうすればよいですか?

または不可能ですか?

前もって感謝します。

4

2 に答える 2

16

はい、できます!次のサンプルコードでは、HomePresenterが場所であり、Presenterを拡張し、MenuPresenterがPresenterWidgetを拡張していると想定しています。
MainPresenterで:

@ContentSlot public static final Type<RevealContentHandler<?>> MAIN_SLOT = new Type<RevealContentHandler<?>>();  
@ContentSlot public static final Type<RevealContentHandler<?>> MENU_SLOT = new Type<RevealContentHandler<?>>();

@Override
protected void onReveal() {
    super.onReveal();
    setInSlot(MENU_SLOT, menuPresenter);
}

HomePresenterで:

@Override
protected void revealInParent() {
    RevealContentEvent.fire(this, MainPresenter.MAIN_SLOT, this);
}

次にMainViewで:

@UiField Panel mainContainer;
@UiField Panel menuContainer;

@Override
public void setInSlot(Object slot, Widget content) {
    if (slot == MainPresenter.MAIN_SLOT) {
        mainContainer.clear();
        mainContainer.add(content);
    } else if (slot == MainPresenter.MENU_SLOT) {
        menuContainer.clear();
        menuContainer.add(content);
    } else {
        super.setInSlot(slot, content);
    }
}
于 2011-09-28T07:21:24.390 に答える
1

GWTP 1.5+ のユーザーは、スロットに多くの新しい変更が導入され、プレゼンターが明らかになったことに注意してください。問題のケースは、ページ コンテンツに NestedSlot を使用し、すべてのページに表示するメニューに PermanentSlot を使用して実現できます。

幸いなことに、これらの変更は十分に文書化されています。新しいスロット タイプの説明と使用方法の例について は、 GWTP スロットのドキュメントを参照してください。

于 2016-02-25T20:49:11.157 に答える