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 331 //i3GEO.guias.ATUAL = "legenda"
332 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 341 i3GEO.barraDeBotoes.AUTOALTURA = true
335 342 i3GEO.barraDeBotoes.ATIVAMENUCONTEXTO = true
336 343 i3GEO.barraDeBotoes.PERMITEFECHAR = false
... ... @@ -339,6 +346,7 @@ i3GEO.barraDeBotoes.COMPORTAMENTO = "laranja"
339 346  
340 347 i3GEO.idioma.IDSELETOR = "seletorIdiomas"
341 348 i3GEO.interface.ATIVAMENUCONTEXTO = true;
  349 +
342 350 i3GEO.inicia();
343 351 /*
344 352 var temp = function(){alert("oi");i3GEO.atualiza();}
... ...
classesjs/classe_arvoredecamadas.js
... ... @@ -278,7 +278,7 @@ i3GEO.arvoreDeCamadas = {
278 278 */
279 279 atualiza: function(temas){
280 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 282 if(!document.getElementById(i3GEO.arvoreDeCamadas.IDHTML)){return;}
283 283 document.getElementById(i3GEO.arvoreDeCamadas.IDHTML).innerHTML = "";
284 284 this.CAMADAS = temas;
... ... @@ -306,21 +306,76 @@ i3GEO.arvoreDeCamadas = {
306 306 d = {html:titulo};
307 307 tempNode = new YAHOO.widget.HTMLNode(d, root, true,true);
308 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 354 temaNode.expanded = false;
316 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 373 document.getElementById(i3GEO.arvoreDeCamadas.IDHTML).style.textAlign="left";
319 374 i3GEO.arvoreDeCamadas.ARVORE.draw();
320 375 if(i3GEO.arvoreDeCamadas.ARRASTARORDEM === true || i3GEO.arvoreDeCamadas.ARRASTARLIXEIRA === true)
321 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 380 try{
326 381 if($i("i3GEOidentificalistaTemas")){
... ...
classesjs/classe_configura.js
... ... @@ -52,6 +52,26 @@ alert(i3GEO.configura.locaplic)
52 52 */
53 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 75 Propriedade: oMenuData
56 76  
57 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