我正在使用 MVP 模式创建一个 GWT 应用程序。我有一个使用 DockLayoutPanel 的索引页。我对dockLayoutPanel 的每个部分都有视图和演示者(例如:NorthView 和NorthPresenter)。我在中心面板上有四个按钮(NorthBtn、EastBtn、WestBtn、SouthBtn)。在dockLayoutPanel 的相应部分中,UI 应更改的任何一个按钮的onClick。
入口点类:
@Override
public void onModuleLoad() {
RPCServiceAsync rpcService = GWT.create(RPCService.class);
HandlerManager eventBus = new HandlerManager(null);
AppController appViewer = new AppController(rpcService, eventBus);
appViewer.go(RootLayoutPanel.get());
}
AppController 类具有历史管理逻辑和事件处理逻辑。(来自 Google 文章- 为了处理并非特定于任何演示者而是驻留在应用程序层的逻辑,我们将介绍 AppController 组件。)
例如,在中心面板中的 EastBtn 的 onClick 我添加了一个新的历史标记“east”,并调用了 onValueChange() 方法。创建各自的演示者和视图,例如 EastView 和 EastPresenter:
- 如何使用新创建的面板更新现有的 EastPanel(因为我没有处理旧面板)?
- 如果用户在单击按钮后已将页面添加为书签,并重新访问带有书签的链接的页面,则流程将到达 onValueChange 方法并创建 EastView 和 EastPanel。但是,如何重新创建页面的其余部分并更新 EastPanel?