Bonjour,
j'ai quelques difficultés à remplir un TableViewer dynamiquement.
J'ai donc une TableViewer avec plusieurs colonne, chacune correspondant à un attribut des objets que je veux afficher.
J'ai implémenter IStructuredContentProvider et LabelProvider mais tout ce que j'arrive a faire c'est d'afficher dans la premier colonne, getText ne renvoyant qu'une String pour mon objet.
Je suppose que c'est dans LabelProvider qu'il faut que j'arrange la chose..?
J'ai essayé une astuce pour le remplir mais vu que je returne null il m'affiche deslignes vide au debut du tableau.
Voici mon code :
public class TableContentProvider implements IStructuredContentProvider{
public Object[] getElements(Object inputElement) {
// TODO Auto-generated method stub
return ((List)inputElement).toArray();
}
public void dispose() {
// TODO Auto-generated method stub
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
// TODO Auto-generated method stub
}
}
public class TableLabelProvider extends LabelProvider {
public String getText(Object element) {
Lot p = (Lot) element;
Table tab = table.getTable();
TableItem tl1 = new TableItem(tab,SWT.LEFT);
tl1.setText(0,p.getNumLot().toString());
tl1.setText(1,p.getDescLot());
tl1.setText(2,p.getEstimMin().toString());
tl1.setText(3,p.getEstimMax().toString());
return null; // au depart je retourner juste une chaine mais je n'avais les infos que sur une colonne
}
}
Alors soit je ne m'y prend pas du tout comme il faut, soit il y a une astuce que je n'ai pas vu...
D'autre part, contrairement a quand j'ajoute une simple Table, la je n'ai rien par defaut pour la selection. Si je click sur ma table ça ne fait rien.
Comment puis-je remedier a cela ?
Merci de votre aide.
Partager