我有一个GWT应用程序,我正在使用GWT MVP与Places / Activities。
我的应用程序布局类似于
菜单 | 内容
菜单和内容显示将动态更改,并且一个更改与另一个分开。我的意思是,当内容显示更改时,我不想更新菜单显示,反之亦然。两个显示器需要能够响应PlaceChangeEvents并在发生这些事件时更新自己。问题在于,每个显示器只应响应特定的PlaceChangeEvents,忽略针对其他显示器的PlaceChangeEvents。但是,使用“标准”GWT MVP模式无法实现此目标,因为即使每个显示器都有自己的ActivityManager,它们也会自动接收到所有PlaceChangeEvents,因为存在单个PlaceController侦听单个EventBus。我唯一能想到的方法是拥有两个EventBus和两个PlaceControllers - 一个用于菜单,一个用于内容。因此,我的问题是,这是否是一个好的解决方案,或者我错过了更简单/更好的方法?这种解决方案的一个问题是,PlaceHistoryHandler只能注册一个EventBus。
我的应用程序布局类似于
菜单 | 内容
菜单和内容显示将动态更改,并且一个更改与另一个分开。我的意思是,当内容显示更改时,我不想更新菜单显示,反之亦然。两个显示器需要能够响应PlaceChangeEvents并在发生这些事件时更新自己。问题在于,每个显示器只应响应特定的PlaceChangeEvents,忽略针对其他显示器的PlaceChangeEvents。但是,使用“标准”GWT MVP模式无法实现此目标,因为即使每个显示器都有自己的ActivityManager,它们也会自动接收到所有PlaceChangeEvents,因为存在单个PlaceController侦听单个EventBus。我唯一能想到的方法是拥有两个EventBus和两个PlaceControllers - 一个用于菜单,一个用于内容。因此,我的问题是,这是否是一个好的解决方案,或者我错过了更简单/更好的方法?这种解决方案的一个问题是,PlaceHistoryHandler只能注册一个EventBus。
start()
方法:http://www.google.com/codesearch/p?hl=en#A1edwVHBClQ/user/src/com/google/gwt/activity/shared/ActivityManager.java&q=com.google.gwt.activity.shared.activitymanager&d=0&l=111 - Peter Knego