Bonjour à tous,
Je cherche à modifier le comportement par défaut d'un Table (SWT), pour pouvoir sélectionner plusieurs cellules de façon indépendante.
Un peu faire comme cette exemple :
http://matrexblog.blogspot.com/2007/...-in-table.html
La 1ere étape a "d'annuler" le comportement par défaut, c'est à dire de ne pas avoir la ligne sélectionné d'une autre couleur.
J'ai trouvé des exemples pour faire ça, dont sur eclipse.org (voir exemple 3), qui consiste donc à modifier l'événement juste avant que l'objet soit dessiner.
Seulement ça ne se passe pas exactement comme prévu, j'arrive bien à modifier le background pour y mettre ce que je souhaite (ici le même fond que les lignes non sélectionnée : blanc), mais le texte (foreground) lui, je n'arrive pas à le modifier ! Quoi que je fasse, il prend la couleur d'une ligne sélectionné, à savoir : blanc. Donc blanc sur blanc, vous devinez qu'on ne voit rien !
Je ne trouve pourtant pas pourquoi j'ai ce comportement, je n'ai rien trouvé dans ce sens sur le Web, et les exemples trouvé avec capture montre le contraire.
Je ne suis pas expert en SWT, étant plutôt dév J2EE à la base, je viens donc chercher un peu d'aide !
Voici le petit bout de code qui "annule" la sélection (de façon visuelle, de façon logique la ligne reste sélectionnée) :
Quelqu'un aurait-il une idée du problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 this.table.addListener(SWT.EraseItem, new Listener() { public void handleEvent(Event event) { event.detail &= ~SWT.HOT; //tentative de forcer la couleur du text a noir : ne fonctionne pas TableItem item = (TableItem)event.item; item.setForeground(unselectForegroundColor); //on annule l'evement "selection" event.detail &= ~SWT.SELECTED; } });
Merci d'avance pour votre aide.
Partager