Шаблон GWT MVP - изменение различных частей страницы в событии - PullRequest
1 голос
/ 31 марта 2011

Я создаю приложение GWT, используя шаблон MVP. У меня есть страница индекса, которая использует DockLayoutPanel. У меня есть представление и ведущий для каждого раздела dockLayoutPanel (например, NorthView и NorthPresenter). У меня есть четыре кнопки в центральной панели (NorthBtn, EastBtn, WestBtn, SouthBtn). Нажмите любую из кнопок, которые пользовательский интерфейс должен изменить в соответствующем разделе 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 в центральной панели я добавляю новый маркер истории, вызывается метод east, и onValueChange (). Соответствующий докладчик и представление созданы, скажем, EastView и EastPresenter:

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

1 Ответ

4 голосов
/ 31 марта 2011

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

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

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

...