Я создаю приложение 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:
- Как я могу обновить существующую EastPanel с помощью вновь созданной панели (поскольку у меня нет дескриптора старой панели)?
- Если пользователь создал закладку на странице после нажатия кнопки и повторно зашел на страницу со ссылкой в закладке, поток достигнет метода onValueChange и создал EastView и EastPanel. Но как заново создать остальную часть страницы и обновить EastPanel?