Как (несколько = true) презентатор и представление могут быть инициализированы с параметрами, используя eventBus.addHandler? - PullRequest
0 голосов
/ 15 декабря 2011

С архитектурой Mvp4g (только) один экземпляр представления (внедренный с помощью аннотации @Presenter) связан с его презентатором. В моем случае у меня есть EntityView с его Presenter EntityPresenter. всякий раз, когда пользователь щелкает по узлу листа дерева навигатора, Я добавляю новую вкладку в TabSet. И эта новая вкладка будет содержать EntityView. Итак, у меня будет столько же EntityView, сколько вкладок в TabSeT.

Я установил multiple=true для EntityPresenter. Конструктор EntityView принимает один аргумент.

@Inject
public EntityView(final Record view) {
  //some initialization
}

Вопрос, где я делаю (от другого докладчика):

EntityPresenter presenter = eventBus.addHandler(EntityPresenter.class);

У меня есть один аргумент Record params, который я хочу передать конструктору EntityView, как это сделать? и аннотирующий конструктор (принимающий аргумент) с @Inject внедрит EntityView в EntityPresenter?

1 Ответ

0 голосов
/ 18 января 2012

Я предлагаю использовать EventHandler - это презентатор без представления в mvp4g - который получает событие showEntity (длинный ключ). В методе onShowEntity (...) вы можете создать докладчика с помощью оператора:

EntityPresenter presenter = eventBus.addHandler(EntityPresenter.class);

С этой ссылкой на экземпляр вы можете установить ключ в презентере. Но имейте в виду, вы должны управлять своими экземплярами презентатора самостоятельно, когда используете multiple=true.

...