2011-04-07 4 views
5

Dans mon application, j'ai un panneau de widgets (tous du même type de widget), et des boutons qui permettent à l'utilisateur d'ajouter et de supprimer des widgets sur le panneau. À l'intérieur de chacun des widgets est un groupe RadioButton GWT. Le widget utilise l'UiBinder GWT, et donc dans mon fichier ui.xml je donne à chaque RadioButton un nom de groupe afin qu'ils se lient ensemble.Ajout dynamique de plusieurs groupes GWT RadioButton

Cela devient un problème, cependant, lorsque 2 ou plus de ce widget sont ajoutés au panneau, car tous les boutons radio dans tous les widgets ont le même nom de groupe. Je veux que chaque groupe RadioButton dans chacun des widgets soit indépendant des autres. Comment puis-je faire ceci?

Répondre

4

Vous pouvez introduire un paramètre groupName à votre constructeur widget, puis utiliser @UiFactory pour construire les RadioButtons:

private String groupName; 

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

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

makeRadioButton() seront appelés automatiquement pour tous vos <g:RadioButton> s que vous utilisez dans le fichier xml UiBinder.

Maintenant, vous pouvez créer dynamiquement chacun de ces widgets avec un nom de groupe radio différent.