2010-06-06 6 views
2

Cette question peut sembler anodine, mais je suis aux prises avec le problème, alors, s'il vous plaît, aidez-nous si vous le pouvez. Donc, le voici: j'utilise un CheckboxTreeViewer pour de bonnes raisons. J'ai google-it pour certains usages de classe, et je suis actuellement en mesure de cocher/décocher tous les enfants d'un nœud sélectionné, et de conserver la sélection après une recherche en direct avec une implémentation personnalisée du fournisseur StyledCellLabelProvider. Tout va bien jusqu'ici. Cependant, jusqu'à présent, je suis incapable de sélectionner par programme un ou plusieurs éléments de l'arborescence après avoir affiché le widget et appeler la méthode setInput() de la visionneuse. Donc, supposons par exemple que l'arbre aura 10 nœuds principaux, et 5 feuilles sur le nœud 6. Ma question est comment puis-je définir l'état vérifié de la 3ème feuille?CheckboxTreeViewer de Jface comment régler la sélection initiale

Merci beaucoup.

Répondre

0

Jetez un oeil à ceci: http://akravets.blogspot.com/2009/08/disabling-nodes-in-checkboxtreeviewer.html, pourrait être d'un peu d'aide. Il pourrait ne pas être 100% solution à ce que vous cherchez, mais je vous explique comment sauter certains nœuds.

+0

Merci pour la réponse. Malheureusement, comme l'a confirmé le code fondé sur le lien spécifié, l'utilisation d'un checkboxtreeviewer est bien trop compliquée et floue à mon goût. Au lieu de cela, j'ai adapté un treeviewer régulier pour permettre divers modes de sélection et j'ai créé une zone de texte pour activer la recherche dans cet arbre. La recherche est effectuée sur le modèle du spectateur et les modes de sélection sont améliorés sur le contrôle du spectateur, l'arbre normal. Problème résolu alors, et un fort sentiment est aussi avec moi, de ne plus utiliser checkboxtreeviewer: D. À votre santé. – hypercube

3

Vous devez utiliser ICheckedStateProvider pour l'arborescence. Par exemple:

checkboxTreeViewer.setCheckStateProvider(new TreeCheckedStatedProvider()); 

private class TreeCheckedStatedProvider implements ICheckStateProvider { 

    @Override 
    public boolean isChecked(Object element) { 
     return false; 
    } 

    @Override 
    public boolean isGrayed(Object element) { 
     return false; 
    } 

}