Bonjour à tous,
je travaille sous netbeans 7.4 et je suis débutant avec netbeans platform.
J'ai créer un objet ExplorerManager sur lequel je veux mettre en place un arbre permettant de parcourir les données de ma base.
Pour ce fait, j'ai utilisé deux classes. La première hérite de ChildFactory et prend en paramètre une table de ma base et doit permettre de créer la liste d'objet devant servir à créer les sous-noeud du noeud racine.
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
public class SiteChildFactory extends ChildFactory<Site>{
private List<Site> resultList;
Site site = new Site();
    public SiteChildFactory(List<Site> resultList){
        this.resultList = resultList;       
    }
 
    public SiteChildFactory(){  
    }
 
    public SiteChildFactory(Site s){
        this.site = s;
    }
 
@Override
protected boolean createKeys(List toPopulate) {
        for(Site Site:resultList){
            toPopulate.add(Site);            
        }
return true;
}
 
@Override
protected Node createNodeForKey(Site key) {  
    return new SiteNode(key);
}
La deuxième hérite de Abstractnode et doit permettre de créer le sous-noeud correspondant à chaque objet de la liste générée par la première classe grace à la méthode createNodeForKey de cette dernière.
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
 
public class SiteNode extends AbstractNode{
 
    public SiteNode(List<Site> resultList) {
       super (Children.create(new SiteChildFactory(resultList), true), Lookups.singleton(resultList)); 
       setDisplayName ("SITES");
    }
 
    public SiteNode(Site s) {
       super (Children.create(new SiteChildFactory(), true), Lookups.singleton(s));     
        setDisplayName ("SITES");
    }   
 
    public SiteNode() {
       super (Children.create(new SiteChildFactory(), true)); 
        setDisplayName ("SITES");
    }
}
Ensuite, je crée une instance de cette classe sur l'explorermanager comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
em.setRootContext(new SiteNode());
Jusque là il crée bien la racine de l'arbre ("SITES") et ses enfants qui ne sont que les enregistrements de la table SITE de ma base.
Mon problème est que je n'arrive pas à ajouter des sous-noeuds à ces enfants, ce qui dépend maintenant de chaque enfant et pour lequel il me faut attaquer une autre table de ma base. Même si je peux récupérer un noeud enfant grace à "noeudracine.getChildren().getNodeAt(int i)", je ne trouve pas une méthode du genre add() pouvant me permettre d'ajouter des enfants à ce dernier.
Merci d'avance à tous ceux qui m'aideront à trouver une solution et pouvoir avancer vu que ça fait pratiquement deux semaines que je cherche sans succès.