2

我正在通过 Places 管理我的项目中的历史。

我要做的是:

  • 在顶层实现 PlaceRequestHandler(例如 AppController),
  • 注册它-> eventBus.addHandler(PlaceRequestEvent.getType(), this);
  • 实施方法“onPlaceRequest”,我在其中进行项目导航。

我正在使用 GWT 演示者,我项目中的每个演示者都会覆盖该onPlaceRequest方法。

当每个请求都从顶级“onPlaceRequest”方法处理时,为什么我需要这个?

我举个例子:

public class AppController implements Presenter, PlaceRequestHandler
...........
public void bind()
{
  eventBus.addHandler(PlaceRequestEvent.getType(), this);
...
}
public void onPlaceRequest(PlaceRequestEvent event)
{
// here is the project navigation tree
} 

让我们选一位演讲者

public class SomePresenter extends Presenter<SomePresenter.Display>
{
... here some methods are overriden and 

@Override
protected void onPlaceRequest(PlaceRequest request)
{
// what should I do here? 
}
}

这个想法是什么,我应该如何使用它?

4

1 回答 1

2

您可以将 a和 a附加到事件总线,而不是让所有演示 PlaceRequestHandler者自己扩展和管理这些事件 。他们一起为您管理浏览器的历史记录和您的位置。当您要求goTo() 另一个地方时,它会停止您当前的活动并使用地点到活动(您的演示者)的映射来选择接下来要开始的活动。PlaceHistoryHandlerPlaceControllerPlaceController

要使用这种技术,您需要让您的演示者扩展AbstractActivity. 尝试在 GWT 的名为GWT Development with Activities and Places的文档中阅读有关它的 Google 教程。

于 2011-08-27T16:08:14.043 回答