GWT活动和场所:重用模态对话框?

GWT活动和场所:重用模态对话框?,gwt,gwt-mvp,gwt-places,Gwt,Gwt Mvp,Gwt Places,我正试图了解GWT的活动和场所。我不知道如何实现特定的功能性 让我们假设我也在使用MVP,并且我的活动是我的演示者 假设我有一个活动(我们称之为活动A)(及其相应的视图),它显示客户列表。用户可以单击视图中的“创建客户”按钮 我想做的是:当用户单击按钮时,我想在当前活动的顶部弹出一个“创建客户”对话框。我还希望将与该对话框相关的所有逻辑分离,以便以后可以重用 例如,相同的对话框可以在“创建发票”活动中重用。因此,用户可以在“创建发票”活动中单击类似的“创建客户”按钮,并显示与前面使用的相同对话框

我正试图了解GWT的活动和场所。我不知道如何实现特定的功能性

让我们假设我也在使用MVP,并且我的活动是我的演示者

假设我有一个活动(我们称之为活动A)(及其相应的视图),它显示客户列表。用户可以单击视图中的“创建客户”按钮

我想做的是:当用户单击按钮时,我想在当前活动的顶部弹出一个“创建客户”对话框。我还希望将与该对话框相关的所有逻辑分离,以便以后可以重用

例如,相同的对话框可以在“创建发票”活动中重用。因此,用户可以在“创建发票”活动中单击类似的“创建客户”按钮,并显示与前面使用的相同对话框

现在,如果我理解正确,我不想转到一个新的地方,因为它将终止当前活动“列出客户”或“创建发票”

我曾考虑过定义“CreateCustomerPresenter”和“CreateCustomerDialog”(这将是相应的视图),并让我的“列出客户”/“创建发票”活动(提醒:他们也是我的演示者)扩展“CreateCustomerPresenter”,但我不知道这是否是一个明智的想法


在活动上下文中重用与对话框关联的逻辑+视图的推荐方法是什么?

我最近正是这样做的

我采取的方法是以通常的方式为对话框内容创建一个活动/视图。要启动,请创建嵌入对话框中的活动/视图-我将其称为子活动。创建模式对话框,然后对作为面板传递对话框内容的子活动调用start。然后在主活动中,我重定向了maySt对子活动执行op、stop等操作

棘手的部分是处理对话框关闭并将控制权传递回主活动。我最终在对话框中添加了一个侦听器,并在事件总线上触发了事件,这些事件是从我的主活动中获取的。我对此不是100%满意,但它确实有效


我没有使用过它,但我认为它支持这种方式以及其他开箱即用的创建子活动的方式。

有几种有效的方法,但我通常更喜欢的方法是:根本不要将对话框视为场所(活动)

推理:一个地方意味着,你可以通过书签/浏览器历史记录访问它。假设我在客户列表中,我单击“编辑客户”,就会打开一个对话框。我想“返回”吗“当我单击“浏览器后退”按钮时返回列表?当我单击“浏览器前进”按钮时,对话框是否会再次打开?我对此表示怀疑,并相信用户希望使用浏览器按钮在应用程序中返回/前进整个“页面”(即用户感觉像页面的概念),但不想在页面中打开/关闭对话框