#gwt #radio-button #uibinder
#gwt #переключатель #uibinder
Вопрос:
В моем приложении у меня есть панель виджетов (все виджеты одного типа) и кнопки, которые позволяют пользователю добавлять и удалять виджеты на панель. Внутри каждого из виджетов находится группа радиокнопок GWT. Виджет использует UiBinder GWT, и поэтому в моем ui.xml файл Я присваиваю каждой радиокнопке имя группы, чтобы они были связаны друг с другом.
Однако это становится проблемой, когда на панель добавляются 2 или более таких виджета, поскольку все радиокнопки во всех виджетах имеют одинаковое название группы. Я хочу, чтобы каждая группа радиокнопок в каждом из виджетов была независимой от других. Как я могу это сделать?
Ответ №1:
Вы можете ввести параметр groupName в конструктор вашего виджета, а затем использовать @UiFactory для создания радиокнопок:
private String groupName;
public MyWidget(String groupName) {
this.groupName = groupName;
initWidget(uiBinder.createAndBindUi(this));
}
@UiFactory
RadioButton makeRadioButton() {
return new RadioButton(groupName);
}
makeRadioButton()
будет вызываться автоматически для всех ваших <g:RadioButton>
файлов, которые вы используете в XML-файле UiBinder.
Теперь вы можете динамически создавать каждый из этих виджетов с другим названием группы радиокнопок.