J'ai un TableViewer et j'aime avoir un graphique sur une colonne. Comment puis-je faire ceci?JFace TableViewer: écrire sur le canevas
Ce qui ne fonctionne pas est:
J'ai essayé le TableEditor avec une toile, extrait de code:
MyCanvas canvas = new MyCanvas (tableViewer.getTable(), SWT.NONE, (MyClass)item.getData());
avec MyCanvas ayant un PaintListener
faire le travail de dessin. Cela a fonctionné dessin sur la cellule de table, mais quand le tableViewer
a été filtré, la colonne graphique - et seulement cela - est restée non filtrée: Disons que la table avait 100 lignes et le filtre correspondait à 80 lignes, le résultat était de 80 lignes avec données mais 100 lignes avec le Canvas, donc aussi 20 lignes où rien d'autre que le Canvas a été montré.
Je suppose que le problème vient du fait que TableEditor soit sur la table plutôt que sur TableViewer. J'ai découvert qu'il y a TableViewer.setCellEditors()
mais je n'arrive pas à comprendre comment je pourrais l'utiliser pour écrire sur la toile d'une cellule (colonne).
Peut-être y a-t-il encore une autre possibilité de n'utiliser aucun éditeur pour obtenir le canevas d'une cellule de tableau (filtrée!). Merci beaucoup pour toute suggestion de solution.
Vous pouvez regarder en utilisant 'OwnerDrawLabelProvider' en tant que fournisseur d'étiquettes de colonne. Cela vous permet de dessiner la colonne directement. –
Merci beaucoup - cela a fait l'affaire! –