我在客户端使用GWT活动和地点。 我有一个布局(LeftSide - CenterSide - RightSide),每一方都有自己的ActivityMapper + Activity + View。
我想动态地向Sides添加Views(With activity)。 例如,如果用户的性别为男性,则在左侧显示AView + APresenter和BView + BPresenter;但如果用户的性别是女性,则仅显示BView + BPresenter。
有人可以帮助我,我该怎么做?
由于
答案 0 :(得分:1)
您必须创建第四个ActivityMapper
,在需要时返回null
传递AcceptsOneWidget
小部件时,其显示区域(null
)可能会缩小/消失。
有关更多上下文和一些示例代码,请参阅http://blog.ltgt.net/gwt-21-activities-nesting-yagni/。
但是,如果您根据用户的不同而变化,并在应用程序外进行身份验证(意味着应用程序已加载了已知用户,然后永远不会更改,或者应用程序将重新加载给其他用户),则您可以在启动时(onModuleLoad
)决定是否创建第四个ActivityMapper
及其ActivityManager
和AcceptsOneWidget
:
if (user.getGender() == Gender.MALE) {
SimplePanel display = new SimplePanel();
parent.add(display);
ActivityManager manager = new ActivityManager(new MaleSpecificActivityMapper(), eventBus);
manager.setDisplay(display);
}