Шаблон GWT MVP - изменение разных частей страницы на мероприятии

Я создаю приложение GWT с использованием шаблона MVP. У меня есть индексная страница, на которой используется DockLayoutPanel. У меня есть представление и ведущий для каждого раздела dockLayoutPanel (например, NorthView и NorthPresenter). У меня четыре кнопки на центральной панели (NorthBtn, EastBtn, WestBtn, SouthBtn). onClick любой из кнопок, которые пользовательский интерфейс должен изменить в соответствующем разделе dockLayoutPanel.

Класс точки входа:

@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.)

Например, onClick на EastBtn в центральной панели я добавляю новый токен истории, «восток», и вызывается метод onValueChange (). Создаются соответствующие презентатор и представление, скажем, EastView и EastPresenter:

  1. Как я могу обновить существующую панель EastPanel с помощью вновь созданной панели (поскольку у меня нет дескриптора старой панели)?
  2. Если пользователь добавил страницу в закладки после нажатия кнопки и повторно посетит страницу со ссылкой, отмеченной закладкой, поток достигнет метода onValueChange и создаст EastView и EastPanel. Но как можно воссоздать остальную часть страницы и обновить EastPanel?

person Mithun    schedule 31.03.2011    source источник


Ответы (1)


Я бы использовал место и goTO в контроллере места.

Взгляните на этот пример: http://95.110.143.4/layoutmvp/layoutmvp.html

Вот код: http://95.110.143.4/layoutmvp/layoutmvp.tar.gz

person Pablo Castilla    schedule 31.03.2011