Mettre un bouton dans un tableau
Bonjour à tous,
dans un tableau, je désire rajouter un bouton, afin de lancer un traitement sur un objet de la ligne sélectionné. Comment puis je faire ?
Dans mon code, j'ai ceci :
Code:
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| {
myTableViewer = new TableViewer(parent, SWT.BORDER | SWT.FULL_SELECTION);
Table myTable = (Table) myTableViewer .getControl();
GridData gridData = new GridData(GridData.FILL, GridData.FILL, true, true);
gridData.horizontalSpan = 1;
myTable.setLayoutData(gridData);
TableLayout tableLayout = new TableLayout();
tableLayout.addColumnData(new ColumnPixelData(100));
// ... autres ColumnPixelData rajoutés : autant que de colonnes à gérer
myTable.setLayout(tableLayout);
myTableViewer .setContentProvider(new IStructuredContentProvider() {
@Override
public Object[] getElements(Object inputElement) {
return (NxProxyDataVO[]) inputElement;
}
@Override
public void dispose() {}
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
});
createFirstDataColumn();
createSecondDataColumn();
// creer autant de colonnes que necessaire
createToUpdateColumn();
myTable.setHeaderVisible(true);
}
// ... quelques lignes plus bas :
// exemple
private void createFirstDataColumn() {
TableViewerColumn tvc = new TableViewerColumn(myTableViewer , SWT.LEFT);
tvc.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
return "" + ((ClassOfData) element).getName();
}
});
TableColumn tc = tvc.getColumn();
// tc.setWidth(10);
tc.setText("First Data");
} |
Ici donc, quand je renseigne l'objet , il me suffit de faire
Code:
myTableViewer.setInput(...)
avec un tableau de .
A la dernière colonne, je voudrais, non pas afficher du texte, mais un bouton sur lequel, quand je clique, m'ouvre une fenêtre à partir duquel je peux lancer un traitement. Le gros problème est que je n'arrive pas à savoir comment on met un bouton dans la colonne !!!
Quelques bonnes âmes auraient elles des pistes de solution ? Un exemple à me donner ?
Merci d'avance,
Très cordialement,