Commit fd96777ce677df307b23d177b8feb52609e680e0
1 parent
48c1aee0
Exists in
master
and in
7 other branches
Inclusão de mecanismo para agrupamento de temas na árvore de camadas #208
Showing
4 changed files
with
91 additions
and
8 deletions
Show diff stats
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