SWT/JFace Binding d’une propriété d’un Widget

Le code suivant permet d’observer la sélection d’un Viewer et d’activer ou inactiver une propriété d’un widget en conséquence !

ViewersObservables.observeSingleSelection(tableViewer) permet d’observer la sélection d’un élément dans le viewer.

WidgetProperties.enabled().observe(btnModify) permet d’observer une des propriétés du widget (ici la propriété enabled).

Dès qu’un élément est sélectionné dans le viewer, le bouton est activé. Dès qu’il n’y a plus aucun élément de sélectionné, le bouton est à nouveau désactivé.

  1. TableViewer tableViewer = …
  2.  
  3. Button btnModify = new Button(parent, SWT.NONE);
  4. btnModify.setText("Il y a une selection");
  5.  
  6. final IObservableValue selection = ViewersObservables.observeSingleSelection(tableViewer);
  7.  
  8. getBindingContext().bindValue(WidgetProperties.enabled().observe(btnModify),
  9.   new ComputedValue() {
  10.    @Override
  11.    protected Object calculate() {
  12.     return Boolean.valueOf(selection.getValue() instanceof RowVO);
  13.    }
  14.   });

Le commentaires sont fermés.