Я отвечаю на ваш вопрос, сначала с кратким объяснением, а затем поэтапно отвечая на ваши вопросы.
На уровне фреймворка у вас может быть класс, который реализует ValueChangeHandler
, и установить его в журнале с использованием History.addValueChangeHandler(controller);
при условии, что контроллер реализует обработчик изменения значения
Любой новый элемент, который вы поместите в историю с History.newItem("NameOfAction")
, будет вызывать реализацию ValueChangeHandler
, которая в этом случае будет controller
Теперь в рамках реализации ValueChangeHandler
вы можете
String token = event.getValue();
if (token.equals("NameOfAction")) {
Call Appropriate presenter
}
Теперь поговорим о второй части фреймворка, презентатора и представлении реализации. Я предполагаю, что RootPanel является контейнером всех ваших виджетов пользовательского интерфейса. Вы можете создать отдельных докладчиков для каждого действия
presenter = new ActionPresenter(rpc, eventbus, new ActionView())
Обратите внимание, что я создаю представление и передаю докладчику, докладчик получает данные и создает представление с данными. Позже вы можете передать контейнер докладчику, чтобы показать все это в пользовательском интерфейсе.
Теперь о ваших конкретных вопросах
- MVP будет вашим лучшим выбором здесь. Статья о MVP здесь довольно хороша
- Я не вижу смысла использовать 2 менеджера активности, если ваш контейнер этих виджетов один и тот же
- EventBus был бы идеальным. Если вам нужно передать данные с событиями, переменная сеанса, такая как статические поля в основном классе, будет обслуживать вашу цель
- Мне нужно больше подробностей о том, что именно вы хотите поместить в какой менеджер
Надеюсь, это поможет!