GWT中的JavaMVP。复杂视图
对在复杂视图上使用mvp有疑问。
假设我们有一些具有样板设计的小部件(ListWidget),如下所示:
控制按钮提供了在ContentPanel(仅包含数据的常规CellTable)和DetailsPanel(此处我们可以编辑特定条目,这不是模式对话框)之间切换的功能
反过来,DetailsPanel具有这种结构
Button1、Button2、Button3应该只处理DetailsPanel和change ActionPanel(ActionPanel是一种向导,所以在点击Button1、Button2或Button3后,其内容应该全部更改),但是按钮Save和Cancel应该将我们导航回ListWidget
- 我应该使用什么方法来实现所描述的功能李>
- 我是否应该在主上下文中使用两个不同的ActivityManager李>
- 如何管理和向ListWidget上的相关面板广播消息?(在视图中放置处理程序并在某些操作中将事件推送到内部eventBus中是否可以? 例如,当我在DetailsPanel中保存项目时,PreviewPanel应该更改,并且该项目应该集中在CellTable中;等)
- 若我应该对两个不同的ActivityManager使用该模式,那个么我应该如何准确地处理活动更改行为李>
谢谢,希望有人能帮助我
# 1 楼答案
我在回答你的问题,首先简单解释一下,然后逐条回答你的问题
在框架级别,您可以有一个实现
ValueChangeHandler
的类,并使用History.addValueChangeHandler(controller);
在历史上设置该类,假设控制器正在实现值更改处理程序任何与
History.newItem("NameOfAction")
一起放入历史记录的新项都将调用ValueChangeHandler
的实现,在本例中,它将是controller
现在在ValueChangeHandler
的实现中,您可以现在,我们来讨论框架的第二部分,演示者和视图实现。我假设RootPanel是所有UI小部件的容器。可以为每个操作创建单独的演示者
presenter = new ActionPresenter(rpc, eventbus, new ActionView())
请注意,我正在创建一个视图并将其传递给演示者,演示者获取数据并使用数据构建视图。您可以稍后将容器传递给演示者,以便在UI上显示整个内容
现在谈谈你的具体问题
希望这有帮助