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 :

Initialiser une arborescence CheckboxTreeViewer


Sujet :

SWT/JFace Java

  1. #1
    Membre confirm�
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par d�faut Initialiser une arborescence CheckboxTreeViewer
    Bonjour,

    J'essaie de cr�er un arbre ayant des checkbox int�gr�es, c'est pourquoi j'utilise la classe CheckboxTreeViewer.

    Mais j'ai quelques difficult�s avec les donn�es que je lui donne en entr�e.

    Je ne lui donne en entr�e qu'un Element contenant une liste de sous-Element. Et j'aimerais dans l'arbre final avoir :
    Element
    |Sous-Element
    |Sous-Element
    |Sous-Element
    ...
    Or j'obtiens quelque chose comme :
    Element
    |Element
    |Element
    ....
    En modifiant l�g�rement la m�thode getElements du ContentProvider associ� j'obtiens :
    Sous-Element
    Sous-Element
    Sous-Element
    Voici le code dans la premi�re version :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
        @Override
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof DimComp)
                return new DimComp[] {(DimComp) inputElement};
     
            return EMPTY_ARRAY;
        }
    Ainsi que le code de la seconde version:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
        @Override
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof DimComp)
                return ((DimComp)inputElement).getElements().toArray();
     
            return EMPTY_ARRAY;
        }
    Quelqu'un saurait-il m'indiquer commencer proc�der ?

    Merci d'avance pour votre aide.

  2. #2
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Salut,

    Le content provider doit impl�menter ITreeContentProvider :
    • La m�thode getElements(Object) doit retourn� la liste des �lements racines (obtenu � partir de la source pass� en argument de la m�thode setInput, qui est pass� en argument de getElements() ;
    • La m�thode getChildren(Object) retourne la liste des fils de l'�l�ment pass� en argument ;
    • La m�thode hasChildren(Object) retourne true si l'�l�ment pass� en argument a des fils, false sinon ;
    • La m�thode getParent(Object) retourne le parent de l'�l�ment pass� en argument (si tu ne peux pas le d�terminer, retourne null, mais il vaut mieux retourner le bon parent, pour un fonctionnement complet du TreeViewer (l'ouverture (expand) de branches ne fonctionne pas sinon).


    Par exemple, pour t'inspirer, tu peux regarder (ou utiliser si tu veux) l'impl�mentation concr�te org.eclipse.jface.viewers.TreeNodeContentProvider qui se fonde sur la classe org.eclipse.jface.viewers.TreeNode (tr�s similaire fonctionnellement � l'interface javax.swing.tree.TreeNode) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    public class TreeNodeContentProvider implements ITreeContentProvider {
     
    	@Override
    	public void dispose() {
    		// Do nothing
    	}
     
    	@Override
    	public Object[] getChildren(final Object parentElement) {
    		final TreeNode node = (TreeNode) parentElement;
    		return node.getChildren();
    	}
     
    	@Override
    	public Object[] getElements(final Object inputElement) {
    		if (inputElement instanceof TreeNode[]) {
    			return (TreeNode[]) inputElement;
    		}
    		return new Object[0];
    	}
     
    	@Override
    	public Object getParent(final Object element) {
    		final TreeNode node = (TreeNode) element;
    		return node.getParent();
    	}
     
    	@Override
    	public boolean hasChildren(final Object element) {
    		final TreeNode node = (TreeNode) element;
    		return node.hasChildren();
    	}
     
    	@Override
    	public void inputChanged(final Viewer viewer, final Object oldInput,
    			final Object newInput) {
    		// Do nothing
    	}
    }
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

Discussions similaires

  1. Suppression d'item dans une arborescence
    Par jonzuzu dans le forum MFC
    R�ponses: 2
    Dernier message: 24/02/2004, 17h45
  2. R�ponses: 3
    Dernier message: 17/12/2003, 11h26
  3. Remonter une arborescence
    Par Gwipi dans le forum Requ�tes
    R�ponses: 4
    Dernier message: 26/11/2003, 18h04
  4. [VB6] parcourir une arborescence de repertoire
    Par pecheur dans le forum VB 6 et ant�rieur
    R�ponses: 8
    Dernier message: 30/04/2003, 17h33
  5. cr�er une arborescence windows sous forme d'arbre java
    Par chupachoc dans le forum Composants
    R�ponses: 3
    Dernier message: 01/10/2002, 16h48

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