使用GWT-Platform有效地在两个演示者小部件之间传递参数

时间:2016-09-21 14:08:34

标签: events gwt parameter-passing gwt-platform

我有一个名为ParentPresenter的演示者和两个presenterWidgets,ChildPresenter1和ChildPresenter2。

ParentPresenter包含ChildPresenter1,ChildPresenter2。 ChildPresenter1有1000多个随机复选框,用户可以选择/取消选择其中任何一个。

用户点击"保存" (放置在ChildPresenter2中),ChildPresenter2应该从ChildPresenter1获取选择/取消选择复选框值的列表。我很困惑ChildPresenter2将如何接收ChildPresenter1数据,

  1. 创建一个事件,该事件将由ChildPresenter1在每个复选框select / deselect和ChildPresenter2注册该事件时触发,并随时更新数据。但是在ChildPresenter1上看到1000+选择/取消选择可能是一个很好的解决方案吗?
  2. 当ChildPresenter2" Save"按下它会触发一个事件,ChildPresenter1会监听它,准备所有数据并从ChildPresenter1中再发一次带有数据的事件,这个事件将由ChildPresenter2处理以获取数据。听起来很傻,不是吗?
  3. 请建议我该如何处理?

1 个答案:

答案 0 :(得分:0)

我建议如下解决方案:

选择状态/数据和处理逻辑应放在ParentPresenter中。

ParentPresenter {
    List<String> selectedIds
}

在ChildPresenter1中,每当选择状态发生变化时,触发事件以通知选择的更改(使用选定或取消选择的ID)。 ParentPresenter将监听此事件并相应地更新其selectedIds。

在ChildPresenter2中,每当按下“保存”按钮时,触发一个SaveEvent,它也被ParentPresenter监听。一旦ParentPresenter收到此事件,它就可以处理所有必要的信息(selectedIds)。