Почему мне нужно переопределить «onPlaceRequest» в каждом классе Presenter? - PullRequest
2 голосов
/ 06 июля 2011

Я управляю историей в своем проекте с помощью Places.

Что я делаю так:

  • реализуем PlaceRequestHandler на верхнем уровне (например, AppController),
  • зарегистрировать его -> eventBus.addHandler (PlaceRequestEvent.getType (), this);
  • реализовать метод "onPlaceRequest", где я выполняю навигацию по проекту.

Яиспользование GWT Presenter и каждый докладчик в моем проекте переопределяет метод 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? 
}
}

В чем идея и как я должен ее использовать?

1 Ответ

2 голосов
/ 27 августа 2011

Вместо того, чтобы все ваши докладчики расширяли PlaceRequestHandler и управляли этими событиями самостоятельно, вы можете присоединить PlaceHistoryHandler и PlaceController к вашей шине событий.Вместе они управляют историей браузера и вашими местами для вас.Когда вы попросите PlaceController перейти в () другое место, оно остановит вашу текущую активность и использует сопоставление мест с действиями (вашими ведущими), чтобы выбрать, с какого из них начинать следующее.

Чтобы использовать этотехника, вам нужно, чтобы ваши ведущие продлили AbstractActivity.Попробуйте прочитать руководство Google об этом в документации GWT под названием GWT Development с действиями и местами .

...