Создание 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();
Другие вопросы по тегам