Méthode appropriée pour lier un groupe de boutons radio à l'aide de la liaison de données JFace

Je me demandais si quelqu'un pourrait m'expliquer comment je pourrait la lier à un groupe de boutons radio pour une variable booléenne dans le modèle à l'aide de JFace la liaison de données.

Laissez-moi vous expliquer la situation: j'ai créé une classe qui représente un groupe de SWT boutons (avec le style de 'SWT.La RADIO") qui se compose de trois éléments: Une étiquette avec la question et les deux boutons, l'un pour la réponse "oui" et un pour un "non". Je voudrais créer une liaison à une variable booléenne dans le modèle de telle manière que lorsqu'un utilisateur sélectionne le "oui" bouton radio le booléen est vrai, et quand il/elle sélectionne le bouton "non" le booléen est définie sur false.

Voici le code de ma classe:

private class YesOrNoRadioButtonGroup {

private static final String YES = "yes";
private static final String NO = "no";
private Button m_yesButton;
private Button m_noButton;

public YesOrNoRadioButtonGroup(final Composite p_parent,
                               final String p_questionText,
                               final IObservableValue p_modelProperty
                               final DataBindingContext p_dbContext) 
{

  Composite radioButtonGroupContainer = new Composite(p_parent, SWT.NONE);
  radioButtonGroupContainer.setLayout(new GridLayout());
  Label question = new Label(radioButtonGroupContainer, SWT.NONE);
  question.setText(p_questionText);


  m_yesButton = new Button(radioButtonGroupContainer, SWT.RADIO);
  m_yesButton.setText(YES);

  m_noButton = new Button(radioButtonGroupContainer, SWT.RADIO);
  m_noButton.setText(NO);
  m_noButton.setSelection(true);

  Listener yesOrNoRadioGroupListener = new Listener() {

    public void handleEvent(Event p_event) {

      Button button = (Button) p_event.widget;

      if (m_yesButton.equals(button)) {
        m_yesButton.setSelection(true);
        m_noButton.setSelection(false);
      }
      else {
        m_yesButton.setSelection(false);
        m_noButton.setSelection(true);
      }
    }
  };

  m_yesButton.addListener(SWT.Selection, yesOrNoRadioGroupListener);
  m_noButton.addListener(SWT.Selection, yesOrNoRadioGroupListener);

  p_dbContext.bindValue(SWTObservables.observeSelection(this.getYesButton()),
      p_modelProperty, null, null);      
}

public Button getYesButton() {
  return m_yesButton;
}

public Button getNoButton() {
  return m_noButton;
}    


}

Maintenant, comme vous pouvez le voir, je suis à la liaison de mon bouton "oui" pour la valeur de type boolean. Plus précisément, la valeur sera lié sur la SWT.sélection de l'événement. C'est, paraît-il, le seul événement valide pour la liaison d'un bouton radio. Cependant, à cause de cela, une fois que le bouton "non" est sélectionné, la valeur de ce booléen reste inchangée (puisque pas de SWT.sélection d'événements sur le bouton "oui" a été tiré).
Que puis-je faire pour que cela fonctionne, la façon dont il est censé le faire, c'est à dire être en mesure de modifier la valeur du booléen dans le modèle sur la base duquel des boutons que l'utilisateur sélectionne?
Ai-je raté quelque chose d'évident ici?
Merci!

source d'informationauteur Sandman