Hola muchachos:
es la primera vez que entro a este foro y desde hace poco que uso dojo.
mi consulta es la siguiente: como bien dice el titulo es sobre la creacion de Arboles con datos, he buscado en cuanta pagina se me ha presentado y solo me ha mostrado una forma de subir datos, que es atraves de un archivo JSON:
{
identifier: 'id',
label: 'name',
items: [
{ id: '0', name: 'Fruits', top: true, children: [ {_reference: 1}, {_reference: 4} ] },
{ id: '1', name: 'Citrus', items: [ {_reference: 2}, {_reference: 3} ] },
{ id: '2', name: 'Orange'},
{ id: '3', name: 'Lemon'},
{ id: '4', name: 'Tomato'},
{ id: '5', name: 'Vegetables', top: true, children: [ {_reference: 4} ] },
{ id: '6', name: 'Lettuce'},
]
}
no es lo que necesito, yo lo que quiero en realidad es hacer lo mismo pero a traves de 2 Arrays, uno como en el ejemplo con los tipos de frutas y en cada tipo de fruta otra lista enlazada con sus objetos pertenecientes.
he intentado por todas las formas pasarle la lista y que me genere el arbol pero no hay caso.
alguien pudo hacer algo parecido, o alguna estructura, o sino con que objetos tengo que interactuar para poder pasarlos los datos de las listas.
el codigo es el siguiente
Código:
dojo.provide("owgep.TreeController");
dojo.require("dijit.Tree");
dojo.require("dojo.data.ItemFileWriteStore");
dojo.require("owgep.CheckBoxTree");
dojo.require("owgep.TreeData");
dojo.require("owgep.NodeItem");
dojo.declare("owgep.TreeController", null, {
treeDomNode : null,
treeData : null,
store : null,
model : null,
preamble : function() {
console.log(this.declaredClass + ":preamble", arguments);
},
/**
* Constructor de instancias
*/
constructor : function(/* DOM Node */aTreeDomNode) {
console.log(this.declaredClass + ":constructor", arguments);
this.treeDomNode = aTreeDomNode;
var store = new dojo.data.ItemFileWriteStore( {
data : this._createTreeData()
});
var model = new owgep.CheckBoxStoreModel( {
store : store,
rootLabel : 'Territorios',
// checkboxAll : true,
// checkboxRoot : false,
// checkboxState : true
labelAttr : 'name',
typeAttr : 'type',
children: ["children"]
});
var tree = new owgep.CheckBoxTree( {
model : model,
id : "MenuTree"
});
tree.placeAt(this.treeDomNode);
dojo.connect(tree, "onNodeChecked", function(storeItem, nodeWidget) {
alert(storeItem.name + " got checked..");
});
},
postscript : function() {
console.log(this.declaredClass + ":postscript", arguments);
},
/**
* Crea un treeData como ejemplo de configuracion del arbol de territorios.
*
* @returns {owgep.TreeData}
*/
_createTreeData : function() {
var treeData = new owgep.TreeData('id','name');
var nodo = new owgep.NodeItem('Argentina','tipo',true,true);
var nodo1 =new owgep.NodeItem('Bsas','tipo',true,true)
nodo.push(nodo1);
treeData.push(nodo);
treeData.push(new owgep.NodeItem('Brasil','tipo',true,true));
treeData.push(new owgep.NodeItem('Ecuador','tipo', true,true));
treeData.push(new owgep.NodeItem('Ururguay','tipo',true,true));
treeData.push(new owgep.NodeItem('Chile','tipo',true,true));
return treeData
});
esto es la clase controlador donde hago todo en realidad, despues en el html lo instancio y listo.
desde ya muchas gracias.
espero aprender.
Saludos