Во-первых, это хорошая практика? я попробовал то, что, кажется, правильный путь для меня, но не увенчалась успехом:Как ввести uiBinder с помощью @Inject (вместо GWT.create())?
public class FormViewImpl extends CompositeView implements HasUiHandlers<C>, FormView {
public interface SettlementInstructionsSearchFormViewUiBinder extends UiBinder<Widget, SettlementInstructionsSearchFormViewImpl> {}
@Inject
static FormViewImpl uiBinder;
@Inject
static Provider<DateEditorWidget> dateEditorProvider;
@UiField(provided = true)
MyComponent<String> myComp;
@UiField
DateEditorWidget effectiveDateFrom;
// .. other fields
@Inject
public FormViewImpl() {
myComp = new MyComponent<String>("lol");
if (uiBinder == null)
uiBinder = GWT.create(SettlementInstructionsSearchFormViewUiBinder.class);
initWidget(uiBinder.createAndBindUi(this));
}
@UiFactory
DateEditorWidget createDateEditor() {
return dateEditorProvider.get();
}
}
Какие другие вещи, чем класс без аргументов требуется? В проекте моей компании такой же код работает в другом месте. Извините, что здесь высокий уровень noob ... Если у вас были какие-то указатели, было бы хорошо.
Благодаря
Спасибо, 'requestStaticInjection' было то, что я отсутствовал. Я мог бы поместить uiBinder в конструктор, но в моем случае представление создается вручную. – Jordan
В этом случае вы можете не захотеть беспокоиться о аннотации '@ Inject' на конструкторе, поскольку, как представляется, это будет управляться gin/guice. –