2011-04-07 78 views
5

在我的应用程序中,我有一个小组件面板(所有相同类型的小组件)以及允许用户向面板添加和删除小组件的按钮。在每个小部件里面都有一个GWT RadioButton组。小部件使用GWT UiBinder,所以在我的ui.xml文件中,我给每个RadioButton一个组名,以便它们将链接在一起。动态添加多个GWT RadioButton组

但是,当这个小部件中有2个或更多被添加到面板时,这会成为一个问题,因为所有小部件中的所有RadioButton都具有相同的组名。我希望每个小部件中的每个RadioButton组独立于其他小部件。我怎样才能做到这一点?

回答

4

您可以引入一个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>是你在UiBinder的XML文件中使用被调用。

现在您可以动态使用不同的无线电组名称创建这些小部件中的每一个。