Salut ( à tous les courageux qui ne sont pas sur la plage )
Dans une phase précédente, j'ai affiché une arborescence dans un Tree qui avait pour model un TreeStoreModel lui-même alimenté par un query sur un jsonStore :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
var jsonRepertoire = new dojo.data.ItemFileReadStore({
    url: 'javascript/jsonreps.json'
});
Le store avait une structure classique ( description descendante parent -> enfants ); cette structure n'étant pas la plus simple à générer, je me suis orienté vers la structure inverse ( description ascendante parent <- enfant ), ce qui me donne un fichier jsonreps.json de type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
{ label: 'name',
  identifier: 'id',
 'items':[
    {'id': 'root','name': 'RootFiles','type': 'directory'},
        {'name': 'visuelTotal','parent': 'RootFiles','type': 'file'},
        {'id': 'node1','name': 'visuelsBHV','parent': 'RootFiles','type': 'directory'},
            {'name': 'visuelBHV1','parent': 'visuelsBHV','type': 'file'},
            {'name': 'visuelBHV2','parent': 'visuelsBHV','type': 'file'},
            {'name': 'visuelBHV3','parent': 'visuelsBHV','type': 'file'},
        {'id': 'node2','name': 'visuelsDecathlon','parent': 'RootFiles','type': 'directory'},
            ......
Mais la je butte sur la réalisation de mon model :
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
    var myModel = new dijit.tree.TreeStoreModel({
       store: jsonRepertoire,
       query: {parent: ..... }
       });
 
    var arbo = new dijit.Tree({
                model: myModel,
                onClick: stockitem,
                rowSelector: '20px'
            });
 
    var contenu = new dijit.layout.ContentPane({
                content: arbo,
                splitter: false,
                region: 'leading'
            }, document.createElement('div'));
 
    dojo.byId("affichageRepertoire").appendChild(contenu.domNode);
    contenu.startup();
D'après mes recherches, il faudrait redéfinir la méthode getChildren(), mais je ne vois pas trop comment? C'est vrai qu'au début, j'avais squizzé le modèle et pluggé directement le Tree sur le store ( avec un beau message deprecated en prime ) ; mais bon , quand il s'agit de valider un principe, on n'est pas très regardant. Ensuite il faut affiner et s'appuyer sur des choses cohérentes ( informatiquement parlant ), et c'est là que les difficultés commencent .