ねえ、私は gwtp フレームワークを学んでいて、ちょっとしたジレンマに遭遇しました。メイン コンテンツ スロットとメニュー コンテンツ スロットを持つ LayoutPresenter が最上位にあり、可能であれば各スロットのプレゼンターをバインドする方法を見つけようとしています。メイン コンテンツが表示されると、自動的に正しい面が表示されます。メニュー。現在、メニューのプレゼンターに onReveal と onHide を更新する静的ブール値があります。次に、メイン コンテンツが表示されたときにメニューが表示されているかどうかを確認し、表示されていない場合は表示します。
public class MenuPresenter extends Presenter<MenuPresenter.MyView, MenuPresenter.MyProxy> {
private static boolean hidden = true;
...
@Override
protected void revealInParent() {
RevealContentEvent.fire(this, LayoutPresenter.SIDE, this);
}
@Override
protected void onReveal(){
super.onReveal();
hidden = false;
}
@Override
protected void onHide(){
super.onHide();
hidden = true;
}
public static boolean isHidden(){
return hidden;
}
}
次に、メイン コンテンツ プレゼンターで:
public class ContentPresenter extends
Presenter<ContentPresenter.MyView, ContentPresenter.MyProxy> {
...
private final DispatchAsync dispather;
private final PlaceManager placeManager;
@Inject
public PhoneCallPresenter(final EventBus eventBus, final MyView view, final MyProxy proxy, final DispatchAsync dispatcher, final PlaceManager placeManager) {
super(eventBus, view, proxy);
this.dispather = dispatcher;
this.placeManager = placeManager;
}
@Override
protected void revealInParent() {
RevealContentEvent.fire(this, LayoutPresenter.CONTENT, this);
}
@Override
protected void onReveal() {
super.onReveal();
if (MenuPresenter.isHidden()){
placeManager.revealPlace(new PlaceRequest(NameTokens.menu));
}
}
}