IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SWT/JFace Java Discussion :

Griser élements d'un CheckboxTreeViewer


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 15
    Par défaut Griser élements d'un CheckboxTreeViewer
    Bonjour !

    Voici mon problème:
    J'utilise un composant JFace CheckboxTreeViewer dans une fenêtre graphique afin d'afficher des données sous forme d'un arbre, avec possibilité de sélectionner certaines données grâce aux checkbox sur chaque élément de l'arbre.

    Ce que je souhaiterais faire, c'est "griser" certains éléments de l'arbre afin qu'ils soient visible mais ne puisse pas être sélectionnés, comme ce que l'on peut faire avec l'attribut "Enabled" d'un widget graphique normal (bouton, checkbox,etc.).

    Est-ce que quelqu'un connait un moyen de réaliser cette opération? J'ai regardé du côté du contentProvider et du labelProvider de mon arbre mais n'ai rien trouvé d'intéressant.

    Merci d'avance pour votre aide!

  2. #2
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    Je ne pense pas que se soit possible, tout simplement parce que le controle SWT encapsulé (Tree) est composé de TreeItem qui ne disposent pas de méthode setEnabled().

    Par contre il y a une méthode setGrayed() il me semble qui grise la case à cocher, et tu peux ajouter des écouteur de sélection et d'expension des éléments de l'arbre dans le but d'en empêcher l'action.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 15
    Par défaut
    C'est bien dommage si ce n'est pas possible.

    J'ai réussi à griser les composants en implémentant l'interface IColorProvider sur mon LabelProvider, mais je n'arrive pas à interdire la sélection du composant. Ce n'est pas super pratique.

    La méthode setGrayed(), contrairement à ce que son nom indique, ne permet pas de griser le composant mais d'indiquer que les composants fils de l'arbre ne sont pas tous sélectionnés (ça met un carré dans la case à cocher plutot qu'une coche).

    Bref si ce n'est pas possible, je sens que je vais laisser tomber...

Discussions similaires

  1. [C#] Surlignage d'un élement d'une ListView
    Par tontonplaisir dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/09/2004, 15h35
  2. Comment griser une ligne dans une TListBox ?
    Par SegmentationFault dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/06/2004, 09h15
  3. griser element menu
    Par scorbo dans le forum MFC
    Réponses: 4
    Dernier message: 14/06/2004, 14h23
  4. Griser le bouton "maximiser" d'une fenêtre
    Par kurkaine dans le forum C++Builder
    Réponses: 5
    Dernier message: 13/02/2004, 00h11
  5. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo