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

发布于 2024-10-29 14:43:38 字数 963 浏览 7 评论 0原文

我正在使用 MVP 模式创建 GWT 应用程序。我有一个使用 DockLayoutPanel 的索引页。我有 DockerLayoutPanel 的每个部分的视图和演示者(例如:NorthView 和 NorthPresenter)。我的中心面板有四个按钮(NorthBtn、EastBtn、WestBtn、SouthBtn)。 UI 应在dockLayoutPanel 的相应部分中更改任何一个按钮的 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 组件。)

例如,中心面板 I 中 EastBtn 的 onClick添加一个新的历史标记“east”,并调用 onValueChange() 方法。创建了相应的演示者和视图,例如 EastView 和 EastPresenter:

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

I am creating a GWT application using MVP pattern. I have an index page which uses DockLayoutPanel. I have view and presenter for each section of dockLayoutPanel (ex: NorthView and NorthPresenter). I have four buttons in the center panel (NorthBtn, EastBtn, WestBtn, SouthBtn). onClick of any one of the buttons the UI should change in respective section of dockLayoutPanel.

Entry Point Class:

@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 class has the logic for History management and event handling logic. (From Google article - To handle logic that is not specific to any presenter and instead resides at the application layer, we'll introduce the AppController component.)

For example, onClick of a EastBtn in center panel I add a new history token, "east", and onValueChange() method is called. The respective presenter and view is created, say EastView and EastPresenter:

  1. How can I update the existing EastPanel with the newly created panel (as I dont have handle to the old Panel)?
  2. If the user has bookmarked the page after the button click and re-visits the page with bookmarked link, the flow would reach onValueChange method and create EastView and EastPanel. But, how can the rest of the page be re-created and EastPanel be updated?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

皇甫轩 2024-11-05 14:43:38

我会在地点控制器中使用地点和 goTO。

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

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

I would use a place and a goTO in the place controller.

Take a look at this example:
http://95.110.143.4/layoutmvp/layoutmvp.html

Here is the code:
http://95.110.143.4/layoutmvp/layoutmvp.tar.gz

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文