有关于在复杂视图上使用mvp的问题。
假设,我们有一些带有样板设计的小部件(ListWidget),如下所示:
控制按钮提供在ContentPanel(只是常规CellTable与数据)和DetailsPanel之间切换的功能(这里我们可以编辑特定条目,这不是模态对话框)
DetailsPanel反过来具有这种结构
Button1,Button2,Button3应该只处理DetailsPanel并更改ActionPanel(ActionPanel某种向导,所以在Button1,Button2或Button3点击后它的内容应该全部改变),但按钮保存和取消应该导航我们回到ListWidget
谢谢,希望有人帮助我。
答案 0 :(得分:1)
我正在回答你的问题,首先是简短的解释,然后逐点回答你的问题。
在框架级别,你可以有一个实现ValueChangeHandler
的类,并使用History.addValueChangeHandler(controller);
在历史记录中设置它,假设控制器正在实现值更改处理程序
使用History.newItem("NameOfAction")
放入历史记录的任何newItem都会调用ValueChangeHandler
的实现,在这种情况下controller
现在在ValueChangeHandler
的实施中你可以
String token = event.getValue();
if (token.equals("NameOfAction")) {
Call Appropriate presenter
}
现在让我们谈谈框架,演示者和视图实现的第二部分。我假设RootPanel是所有UI小部件的容器。您可以为每个操作创建单独的演示者
presenter = new ActionPresenter(rpc, eventbus, new ActionView())
请注意,我正在创建一个视图并传递给演示者,演示者获取数据并使用数据构建视图。您可以稍后将容器传递给演示者,以在UI上显示整个内容。
现在谈谈您的具体问题
希望这有帮助!