Commit fd96777ce677df307b23d177b8feb52609e680e0

Authored by Edmar Moretti
1 parent 48c1aee0

Inclusão de mecanismo para agrupamento de temas na árvore de camadas #208

aplicmap/geral.htm
@@ -331,6 +331,13 @@ i3geoLog.show(); @@ -331,6 +331,13 @@ i3geoLog.show();
331 //i3GEO.guias.ATUAL = "legenda" 331 //i3GEO.guias.ATUAL = "legenda"
332 //i3GEO.idioma.alteraDicionario("t18a","teste"); 332 //i3GEO.idioma.alteraDicionario("t18a","teste");
333 333
  334 +/*
  335 +i3GEO.configura.grupoLayers = [
  336 + {nome:"Grupo 1",layers:["zee","estadosl"]},
  337 + {nome:"Grupo 2",layers:["mundo"]}
  338 +]
  339 +*/
  340 +
334 i3GEO.barraDeBotoes.AUTOALTURA = true 341 i3GEO.barraDeBotoes.AUTOALTURA = true
335 i3GEO.barraDeBotoes.ATIVAMENUCONTEXTO = true 342 i3GEO.barraDeBotoes.ATIVAMENUCONTEXTO = true
336 i3GEO.barraDeBotoes.PERMITEFECHAR = false 343 i3GEO.barraDeBotoes.PERMITEFECHAR = false
@@ -339,6 +346,7 @@ i3GEO.barraDeBotoes.COMPORTAMENTO = "laranja" @@ -339,6 +346,7 @@ i3GEO.barraDeBotoes.COMPORTAMENTO = "laranja"
339 346
340 i3GEO.idioma.IDSELETOR = "seletorIdiomas" 347 i3GEO.idioma.IDSELETOR = "seletorIdiomas"
341 i3GEO.interface.ATIVAMENUCONTEXTO = true; 348 i3GEO.interface.ATIVAMENUCONTEXTO = true;
  349 +
342 i3GEO.inicia(); 350 i3GEO.inicia();
343 /* 351 /*
344 var temp = function(){alert("oi");i3GEO.atualiza();} 352 var temp = function(){alert("oi");i3GEO.atualiza();}
classesjs/classe_arvoredecamadas.js
@@ -278,7 +278,7 @@ i3GEO.arvoreDeCamadas = { @@ -278,7 +278,7 @@ i3GEO.arvoreDeCamadas = {
278 */ 278 */
279 atualiza: function(temas){ 279 atualiza: function(temas){
280 if(this.comparaTemas(temas,this.CAMADAS)){return;} 280 if(this.comparaTemas(temas,this.CAMADAS)){return;}
281 - var currentIconMode,newVal,root,tempNode,titulo,d,c,ltema,temaNode,i,j; 281 + var currentIconMode,newVal,root,tempNode,titulo,d,c,ltema,temaNode,i,j,n,nk,k,incluidos=[];
282 if(!document.getElementById(i3GEO.arvoreDeCamadas.IDHTML)){return;} 282 if(!document.getElementById(i3GEO.arvoreDeCamadas.IDHTML)){return;}
283 document.getElementById(i3GEO.arvoreDeCamadas.IDHTML).innerHTML = ""; 283 document.getElementById(i3GEO.arvoreDeCamadas.IDHTML).innerHTML = "";
284 this.CAMADAS = temas; 284 this.CAMADAS = temas;
@@ -306,21 +306,76 @@ i3GEO.arvoreDeCamadas = { @@ -306,21 +306,76 @@ i3GEO.arvoreDeCamadas = {
306 d = {html:titulo}; 306 d = {html:titulo};
307 tempNode = new YAHOO.widget.HTMLNode(d, root, true,true); 307 tempNode = new YAHOO.widget.HTMLNode(d, root, true,true);
308 tempNode.enableHighlight = false; 308 tempNode.enableHighlight = false;
309 - c = temas.length;  
310 - for (i=0, j=c; i<j; i++){  
311 - ltema = temas[i];  
312 - d = {html:i3GEO.arvoreDeCamadas.montaTextoTema(ltema),id:temas[i].name,tipo:"tema"};  
313 - temaNode = new YAHOO.widget.HTMLNode(d, tempNode, i3GEO.arvoreDeCamadas.EXPANDIDA,true);  
314 - temaNode.setDynamicLoad(i3GEO.arvoreDeCamadas.montaOpcoes, currentIconMode); 309 + //
  310 + //monta a árvore.
  311 + //se i3GEO.configura.grupoLayers estiver definido
  312 + //o processo é diferenciado
  313 + //
  314 + if (i3GEO.configura.grupoLayers === ""){
  315 + c = temas.length;
  316 + for (i=0, j=c; i<j; i++){
  317 + ltema = temas[i];
  318 + d = {html:i3GEO.arvoreDeCamadas.montaTextoTema(ltema),id:ltema.name,tipo:"tema"};
  319 + temaNode = new YAHOO.widget.HTMLNode(d, tempNode, i3GEO.arvoreDeCamadas.EXPANDIDA,true);
  320 + temaNode.setDynamicLoad(i3GEO.arvoreDeCamadas.montaOpcoes, currentIconMode);
  321 + temaNode.expanded = false;
  322 + temaNode.enableHighlight = false;
  323 + }
  324 + }
  325 + else{
  326 + nk = temas.length;
  327 + c = i3GEO.configura.grupoLayers.length;
  328 + //grupos
  329 + for(i=0;i<c; i++){
  330 + d = {html:"<b>"+i3GEO.configura.grupoLayers[i].nome+"</b>"};
  331 + temaNode = new YAHOO.widget.HTMLNode(d, tempNode, false,true);
  332 + temaNode.expanded = false;
  333 + temaNode.enableHighlight = false;
  334 + n = i3GEO.configura.grupoLayers[i].layers.length;
  335 + //layers de um grupo
  336 + for(j=0;j<n; j++){
  337 + //busca na lista de temas
  338 + for(k=0;k<nk; k++){
  339 + ltema = temas[k];
  340 + if(ltema.name === i3GEO.configura.grupoLayers[i].layers[j]){
  341 + d = {html:i3GEO.arvoreDeCamadas.montaTextoTema(ltema),id:ltema.name,tipo:"tema"};
  342 + temaNode = new YAHOO.widget.HTMLNode(d, tempNode, i3GEO.arvoreDeCamadas.EXPANDIDA,true);
  343 + temaNode.setDynamicLoad(i3GEO.arvoreDeCamadas.montaOpcoes, currentIconMode);
  344 + temaNode.expanded = false;
  345 + temaNode.enableHighlight = false;
  346 + incluidos.push(ltema.name);
  347 + }
  348 + }
  349 + }
  350 + }
  351 + //inclui os temas não agrupados
  352 + d = {html:"<b>Outros</b>"};
  353 + temaNode = new YAHOO.widget.HTMLNode(d, tempNode, false,true);
315 temaNode.expanded = false; 354 temaNode.expanded = false;
316 temaNode.enableHighlight = false; 355 temaNode.enableHighlight = false;
  356 + c = incluidos.length;
  357 + for(k=0;k<nk; k++){
  358 + ltema = temas[k];
  359 + n = false;
  360 + for(j=0;j<c; j++){
  361 + if(incluidos[j] === ltema.name)
  362 + {n = true;}
  363 + }
  364 + if (n === false){
  365 + d = {html:i3GEO.arvoreDeCamadas.montaTextoTema(ltema),id:ltema.name,tipo:"tema"};
  366 + temaNode = new YAHOO.widget.HTMLNode(d, tempNode, i3GEO.arvoreDeCamadas.EXPANDIDA,true);
  367 + temaNode.setDynamicLoad(i3GEO.arvoreDeCamadas.montaOpcoes, currentIconMode);
  368 + temaNode.expanded = false;
  369 + temaNode.enableHighlight = false;
  370 + }
  371 + }
317 } 372 }
318 document.getElementById(i3GEO.arvoreDeCamadas.IDHTML).style.textAlign="left"; 373 document.getElementById(i3GEO.arvoreDeCamadas.IDHTML).style.textAlign="left";
319 i3GEO.arvoreDeCamadas.ARVORE.draw(); 374 i3GEO.arvoreDeCamadas.ARVORE.draw();
320 if(i3GEO.arvoreDeCamadas.ARRASTARORDEM === true || i3GEO.arvoreDeCamadas.ARRASTARLIXEIRA === true) 375 if(i3GEO.arvoreDeCamadas.ARRASTARORDEM === true || i3GEO.arvoreDeCamadas.ARRASTARLIXEIRA === true)
321 {this.ativaDragDrop();} 376 {this.ativaDragDrop();}
322 // 377 //
323 - //verifica se a janela a ferramenta identifica está ativa para atualizar a lista de temas 378 + //verifica se a ferramenta identifica está ativa para atualizar a lista de temas
324 // 379 //
325 try{ 380 try{
326 if($i("i3GEOidentificalistaTemas")){ 381 if($i("i3GEOidentificalistaTemas")){
classesjs/classe_configura.js
@@ -52,6 +52,26 @@ alert(i3GEO.configura.locaplic) @@ -52,6 +52,26 @@ alert(i3GEO.configura.locaplic)
52 */ 52 */
53 i3GEO.configura = { 53 i3GEO.configura = {
54 /* 54 /*
  55 + Propriedade: grupoLayers
  56 +
  57 + Lista de grupos e seus respectivos layers, para montagem da árvore de camadas.
  58 +
  59 + Se essa propriedade estiver definida, as camadas serão agrupadas na árvore de camadas conforme os grupos definidos.
  60 +
  61 + Por exemplo
  62 + i3GEO.configura.grupoLayers = [
  63 + {nome:"Grupo 1",layers:["zee","estadosl"]},
  64 + {nome:"Grupo 2",layers:["mundo"]}
  65 + ]
  66 +
  67 + Type:
  68 + {JASON}
  69 +
  70 + Default:
  71 + ""
  72 + */
  73 + grupoLayers: "",
  74 + /*
55 Propriedade: oMenuData 75 Propriedade: oMenuData
56 76
57 Itens incluídos no menu suspenso. Define os parâmetros para o gadget menu suspenso 77 Itens incluídos no menu suspenso. Define os parâmetros para o gadget menu suspenso
menutemas/admin.db
No preview for this file type