В этом случае, когда в разных регионах страницы есть докладчик, вы можете использовать подход, предложенный Дэвидом Чендлером из команды GWT:
http://groups.google.com/group/google-web-toolkit/browse_thread/thread/2812e1b15a2a98a6/8c82d629b7a48e56?lnk=gst&q=EastActivityMapper#8c82d629b7a48e56
Вам следует прочитатьпост, но в итоге вы бы сделали что-то вроде этого:
WestActivityMapper westActivityMapper = new WestActivityMapper();
WestActivityManager westActivityManager = new WestActivityManager(westActivityMapper, eventBus);
westActivityManager.setDisplay(westPanel);
EastActivityMapper EastActivityMapper = new EastActivityMapper();
EastActivityManager eastActivityManager = new EastActivityManager(eastActivityMapper, eventBus);
EastActivityManager.setDisplay(eastPanel);
dockLayoutPanel.addWest(westWidget, 50);
dockLayoutPanel.addEast(eastWidget, 50);
RootLayoutPanel.get().add(dockLayoutPanel);
За отображение вашего дерева будет отвечать западный маппер активности, а восточный маппер будет содержать тело вашего приложения.
Мы используем этот подход для отображения списка элементов на нашей западной закрепленной панели (не дерева, но достаточно близко), которая затем обновляет то, что отображается в теле нашего приложения.Когда пользователь выбирает элемент из списка, мы запускаем новое событие Place и включаем идентификатор элемента списка в качестве Place Token, чтобы пользователь мог использовать кнопку возврата.Однако вы также можете использовать EventBus, как вы указали.