Suite

Utiliser les cases à cocher dans l'arborescence des couches de GeoExt ?

Utiliser les cases à cocher dans l'arborescence des couches de GeoExt ?


J'essaie de générer une arborescence de couches personnalisée à l'aide de GeoExt 2.0.2 Mon code est le suivant :

var store = Ext.create('Ext.data.TreeStore', { modèle : 'GeoExt.data.LayerTreeModel', racine : { étendu : vrai, enfants : [ { plugins : ['gx_baselayercontainer'], étendu : vrai, texte : "Mappe di base" },{ expand: true, text: 'Dati amministrativi', leaf: false, children: [ { text: "Area progetto", layer: "area_progetto", nodeType: "gx_layer", iconCls: ' area_progetto', coché : true }, { text : "Comuni italiani", layer : "comuni_italia", nodeType : "gx_layer", iconCls : 'comuni_italia', vérifié : true } ] },{ expand : true, text : 'Percorso Via Regina', feuille : false, enfants : [ { text : "Tratte", couche : "via_regina_tratte", nodeType : "gx_layer", iconCls : 'via_regina_tratte', cochée : true } ] } ] } }); tree = Ext.create('GeoExt.tree.Panel', { border: true, region: "west", title: "Layers", width: 250, split: true, collapsible: true, collapseMode: "mini", autoScroll : true, rootVisible : false, lignes : false, store : store });

Mon objectif ici est de créer plusieurs dossiers avec les calques que je sélectionne et je souhaite attribuer différentes icônes à chaque calque. Ce code a créé des sous-nœuds comme je le souhaite et je peux attribuer une icône différente à chaque couche de l'arborescence, mais les cases à cocher ne fonctionnent pas. Avez-vous des idées ou des suggestions sur les raisons pour lesquelles ils ne fonctionnent pas et comment je peux les faire fonctionner ?

REMARQUE : les boutons radio des couches de base fonctionnent

REMARQUE2 : définir le « magasin » comme suit fonctionne en fait pour les couches superposées, mais dans ce cas, un grand dossier est créé contenant chaque couche, à l'exception des cartes de base, et je ne peux pas créer différents dossiers et attribuer différentes icônes pour chaque couche.

var store = Ext.create('Ext.data.TreeStore', { modèle : 'GeoExt.data.LayerTreeModel', racine : { étendu : vrai, enfants : [ { plugins : ['gx_baselayercontainer'], étendu : vrai, texte : "Base Maps" },{ plugins : [{ ptype : 'gx_overlaylayercontainer' }], développé : true, text : 'Overlay Layers' } ] } });

Pour quelqu'un qui pourrait avoir besoin de la réponse à l'avenir, j'ai résolu le problème en modifiant légèrement la définition du nœud :

{ plugins : ['gx_layer'], texte : "Area progetto", couche : area_progetto, iconCls : 'area_progetto', onCheckChange : true }

Voir la vidéo: 27 Insérer des cases à cocher