Создание PresenterWidget (GWTP) вручную
Я новичок в GWT, GWTP.
У меня есть PresenterWidget, который создается несколько раз и добавляется в слот. Я хочу определить количество экземпляров программно. Я только знаю, что я делаю новый экземпляр виджета, вводя его.
@Inject MyWidgetPresenter first;
@Inject MyWidgetPresenter second;
// ...
Могу ли я создать его с новым? как создать представление?
Я попытался использовать композит, потому что он казался самым умным решением, потому что в любом случае он не содержит много логики. Но я не могу добавить композит в слот.
заранее спасибо
2 ответа
Вы можете получить ClientGinjector
ссылаться и вызывать метод getYourPresenter(). Если это объявлено как @Singleton
он вернет тот же экземпляр, если не создаст новый экземпляр, так же, как и с использованием нового, но вставит все параметры в конструктор. Это будет то же самое, что и добавление @Inject в поле.
Добавлено: Если у вас нет необходимого докладчика, на вашем ClientGinjector
Вы можете просто написать метод получения в этом интерфейсе. Пример:
public interface ClientGinjector extends Ginjector {
....
SideMenuPresenter getSideMenuPresenter();
....
}
В GWTP 1.0 Ginjector больше не нужен (автоматически генерируется gwtp).
В вашем случае (и каждый раз, когда вам нужно несколько экземпляров класса) лучше всего внедрить Provider вашего WidgetPresenter:
@Inject Provider<MyWidgetPresenter> myWidgetPresenterProvider;
Каждый раз, когда вам нужен новый экземпляр MyWidegetPresenter, вызывайте метод get() у провайдера:
MyWidgetPresenter myWidgetPresenter = myWidgetPresenterProvider.get();