GoogleWebToolkit运行时动态布局活动

时间:2012-10-18 08:23:40

标签: gwt uibinder

我在客户端使用GWT活动和地点。 我有一个布局(LeftSide - CenterSide - RightSide),每一方都有自己的ActivityMapper + Activity + View。

我想动态地向Sides添加Views(With activity)。 例如,如果用户的性别为男性,则在左侧显示AView + APresenter和BView + BPresenter;但如果用户的性别是女性,则仅显示BView + BPresenter。

有人可以帮助我,我该怎么做?

由于

1 个答案:

答案 0 :(得分:1)

您必须创建第四个ActivityMapper,在需要时返回null 传递AcceptsOneWidget小部件时,其显示区域(null)可能会缩小/消失。

有关更多上下文和一些示例代码,请参阅http://blog.ltgt.net/gwt-21-activities-nesting-yagni/

但是,如果您根据用户的不同而变化,并在应用程序外进行身份验证(意味着应用程序已加载了已知用户,然后永远不会更改,或者应用程序将重新加载给其他用户),则您可以在启动时(onModuleLoad)决定是否创建第四个ActivityMapper及其ActivityManagerAcceptsOneWidget

if (user.getGender() == Gender.MALE) {
  SimplePanel display = new SimplePanel();
  parent.add(display);

  ActivityManager manager = new ActivityManager(new MaleSpecificActivityMapper(), eventBus);
  manager.setDisplay(display);
}