Динамическое добавление нескольких групп радиокнопок GWT

#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.

Теперь вы можете динамически создавать каждый из этих виджетов с другим названием группы радиокнопок.