Динамическое добавление нескольких групп GWT RadioButton - PullRequest
5 голосов
/ 07 апреля 2011

В моем приложении у меня есть панель виджетов (все виджеты того же типа) и кнопки, которые позволяют пользователю добавлять и удалять виджеты на панели. Внутри каждого из виджетов есть группа GWT RadioButton. Виджет использует GWT UiBinder, и поэтому в моем файле ui.xml я даю каждому RadioButton имя группы, чтобы они связывались вместе.

Однако это становится проблемой, когда 2 или более виджета добавляются на панель, потому что все кнопки RadioButton во всех виджетах имеют одинаковое имя группы. Я хочу, чтобы каждая группа RadioButton в каждом из виджетов была независимой от других. Как я могу это сделать?

1 Ответ

4 голосов
/ 07 апреля 2011

Вы можете ввести параметр groupName в конструктор виджета, а затем использовать @UiFactory для создания RadioButtons:

private String groupName;

public MyWidget(String groupName) {
    this.groupName = groupName;
    initWidget(uiBinder.createAndBindUi(this));
}

@UiFactory
RadioButton makeRadioButton() {
    return new RadioButton(groupName);
}

makeRadioButton() будет вызываться автоматически для всех ваших <g:RadioButton> s, которые вы используете в XML-файле UiBinder.

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

...