TableTreeViewer deprecated, TreeViewer à la rescousse

Depuis la nouvelle version d’Eclipse 3.3, il est déconseillé d’utiliser directement le composant TableTreeViewer pour mixer un arbre avec une table.

La raison est simple. Eclipse 3.3 intègre une gestion des colonnes via la classe ViewerColumn (sous types TableViewerColumn et TreeViewerColumn).

Par conséquent, pour éviter d’utiliser le composant TableTreeViewer, il faut utiliser un TreeViewer avec des colonnes de type TreeViewerColumn.

La capture d’écran (un arbre pour la première colonne et une table pour les autres colonnes)

/images/tabletreeviewer.jpg

Ci-dessous un code d’exemple.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
final TreeViewer viewer = new TreeViewer(shell, SWT.FULL\_SELECTION);  
viewer.setContentProvider(new MyTreeContentProvider());  
  
TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.CENTER);  
column.setLabelProvider(new ColumnLabelProvider() {  
  public String getText(Object element) {  
    if (element instanceof Person) {  
      Person current = (Person)element;  
      return current.getName();  
    } else {  
      return element.toString();
    }  
  }  
});  
column.getColumn().setText("Métier / Nom");  
  
column = new TreeViewerColumn(viewer, SWT.CENTER);  
column.setLabelProvider(new ColumnLabelProvider() {  
  public String getText(Object element) {  
    if (element instanceof Person) {  
      Person current = (Person)element;  
      return current.getAdress();
    } else {  
      return null;  
    }  
  }  
});  
column.getColumn().setText("Adresse");  

La première colonne appelée Métier / Nom contient l’arbre tandis que les autres décrivent les colonnes de la table.

L’exemple complet peut être trouvé ici.

Ce billet est open source. Vous avez noté un problème de typographie ?
Ou quelque chose d'obscur ? Améliorer ce billet à partir du dépôt GitHub.

Je suis Mickaël BARON Ingénieur de Recherche en Informatique 💻 au @LIAS_LAB le jour 🌞
Responsable de zones #Java sur @javaDeveloppez la nuit 🌚
❤️ #Java #Docker #VueJS #Eclipse #Services #WebSemantic