GWT MVP模式 - 在事件上更改页面的不同部分

时间:2011-03-31 18:57:49

标签: gwt gwt-mvp

我正在使用MVP模式创建GWT应用程序。我有一个使用DockLayoutPanel的索引页面。我有dockLayoutPanel的每个部分的视图和演示者(例如:NorthView和NorthPresenter)。我在中间面板上有四个按钮(NorthBtn,EastBtn,WestBtn,SouthBtn)。 onClick应该在dockLayoutPanel的相应部分中更改UI中的任何一个按钮。

入口点类:

@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我添加一个新的历史记录标记“east”,并调用onValueChange()方法。创建了相应的演示者和视图,例如EastView和EastPresenter:

  1. 如何使用新创建的面板更新现有的EastPanel(因为我没有处理旧面板)?
  2. 如果用户在按钮单击后为页面添加了书签并重新访问带有书签链接的页面,则流程将达到onValueChange方法并创建EastView和EastPanel。但是,如何重新创建页面的其余部分并更新EastPanel?

1 个答案:

答案 0 :(得分:4)

我会在场所控制器中使用一个地方和一个goTO。

看看这个例子: http://95.110.143.4/layoutmvp/layoutmvp.html

这是代码: http://95.110.143.4/layoutmvp/layoutmvp.tar.gz