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 :

[jface]TreeViewer "non décoré"?


Sujet :

SWT/JFace Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Points : 89
    Points
    89
    Par défaut [jface]TreeViewer "non décoré"?
    Bonjour,

    Est-il possible d'obtenir un treeviewer jface mais dans lequel les lignes pointillées "reliant" les différents éléments et mettant en évidence la hiérarchie (à la manière du outline de l'explorateur windows) n'apparaissent pas afin que les différents niveaux hiérarchiques ne soient marqués que par l'indentation des éléments?
    Je n'ai pas trouvé de moyen de le faire en tout cas...

    Merci

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Août 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 218
    Points : 305
    Points
    305
    Par défaut
    Bonjour,

    Le treeViewer s'appuie sur un objet SWT Tree, qui lui-même s'appuie sur un objet natif du système d'exploitation... Et comme l'objet TREE n'a pas la même tête sur tous les OS, il n'y a pas de méthode pour ne pas afficher les pointillés...

    Mais si tu fonctionnes sous Windows, tu peux utiliser une fonction native qui va cacher les pointillés pour un arbre donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    OS.SetWindowLong(tree.handle, OS.GWL_STYLE, OS.GetWindowLong(tree.handle, OS.GWL_STYLE) ^ OS.TVS_HASLINES);
    Par exemple en SWT:
    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
    40
    41
    42
    43
    44
    45
    46
     
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.internal.win32.OS;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Tree;
    import org.eclipse.swt.widgets.TreeItem;
     
    public class Snippet {
     
        public static void main(String[] args) {
            Display display = new Display();
            Shell shell = new Shell(display);
            shell.setLayout(new FillLayout());
            final Tree tree = new Tree(shell, SWT.BORDER);
     
            // N'affiche pas les lignes pointillées
            OS.SetWindowLong(tree.handle, OS.GWL_STYLE, OS.GetWindowLong(tree.handle, OS.GWL_STYLE) ^ OS.TVS_HASLINES);
     
            for (int i = 0; i < 4; i++) {
                TreeItem iItem = new TreeItem(tree, 0);
                iItem.setText("TreeItem (0) -" + i);
                for (int j = 0; j < 4; j++) {
                    TreeItem jItem = new TreeItem(iItem, 0);
                    jItem.setText("TreeItem (1) -" + j);
                    for (int k = 0; k < 4; k++) {
                        TreeItem kItem = new TreeItem(jItem, 0);
                        kItem.setText("TreeItem (2) -" + k);
                        for (int l = 0; l < 4; l++) {
                            TreeItem lItem = new TreeItem(kItem, 0);
                            lItem.setText("TreeItem (3) -" + l);
                        }
                    }
                }
            }
            shell.setSize(200, 200);
            shell.open();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch())
                    display.sleep();
            }
            display.dispose();
        }
     
    }
    En jface, tu récupères l'objet SWT Tree de ton treeViewer avec la méthode getTree().

    Ca te convient ?

    Laurent

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Points : 89
    Points
    89
    Par défaut
    Salut Laurent...

    ta réponse à l'air convaincante :-) ...mais je pars en vacances dans l'après-midi et je n'aurai probablement plus le temps de tester ceci aujourd'hui.
    Je donne un feedback dès mon retour !

    Merci pour ta réponse rapide et complète en tout cas.
    Kev

  4. #4
    Membre confirmé Avatar de desert
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 414
    Points : 479
    Points
    479
    Par défaut
    Sous Windows, tu peux aussi affecté l'attribut SWT.FULL_SELECTION à ton Treeviewer lors de sa création pour que les traits disparaissent.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] quote non ouverte ou non fermée
    Par guitz dans le forum Langage
    Réponses: 0
    Dernier message: 15/07/2012, 14h19
  2. Réponses: 3
    Dernier message: 20/01/2007, 21h36

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