From 4ca08c4ca891ec1c91848fb056505b423037de56 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 16 Feb 2011 18:17:31 +0000 Subject: [PATCH] Nova ferramenta que permite filtrar os temas da árvore de camadas --- classesjs/classe_arvoredecamadas.js | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------ classesjs/dicionario.js | 9 ++++++++- classesjs/dicionario_ajuda.js | 9 +++++++++ css/botoes2.css | 14 +++++++++++--- ferramentas/filtroarvore/index.js.php | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ imagens/visual/default/sprite.png | Bin 33643 -> 0 bytes imagens/visual/default/sprite2.png | Bin 16126 -> 0 bytes 7 files changed, 255 insertions(+), 28 deletions(-) create mode 100644 ferramentas/filtroarvore/index.js.php diff --git a/classesjs/classe_arvoredecamadas.js b/classesjs/classe_arvoredecamadas.js index b569018..f5c6b93 100644 --- a/classesjs/classe_arvoredecamadas.js +++ b/classesjs/classe_arvoredecamadas.js @@ -47,6 +47,18 @@ Exemplos: */ i3GEO.arvoreDeCamadas = { /* + Propriedade: FILTRO + + Filtro que será aplicado para restringir os tipos de camadas mostradas na árvore + + Default: + {""} + + Type: + {string} - ligados|desligados|selecionados|download|wms|raster|toponimia + */ + FILTRO: "", + /* Propriedade: VERIFICAABRANGENCIATEMAS Verifica ou não se um tema da árvore está dentro da abrangência do mapa atual @@ -133,6 +145,18 @@ i3GEO.arvoreDeCamadas = { */ LIGARDESLIGARTODOS: true, /* + Propriedade: FILTRAR + + Mostra o ícone para filtrar as camadas. + + Default: + {true} + + Type: + {boolean} + */ + FILTRAR: true, + /* Propriedade: EXPANDIDA Indica se a árvore será montada de forma expandida ou não. Se true, os nós do primeiro nível serão abertos na inicialização da árvore. @@ -370,21 +394,27 @@ i3GEO.arvoreDeCamadas = { Parametro: temas {JSON} - Objeto com a lista de camadas e propriedades (veja CAMADAS). Se não existir, a árvore é redesenhada + + forca {boolean} - força a atualização da árvore, sem verificar automaticamente se a atualização deve ou não ser feita */ - atualiza: function(temas){ + atualiza: function(temas,forca){ if(typeof(console) !== 'undefined'){console.info("i3GEO.arvoreDeCamadas.atualiza()");} if(arguments.length === 0){ temas = i3GEO.arvoreDeCamadas.CAMADAS; i3GEO.arvoreDeCamadas.CAMADAS = ""; + forca = false; } var estilo,temp,currentIconMode,newVal,root,tempNode,titulo,d,c,ltema,temaNode,grupoNode,i,j,n,nk,k, incluidos=[], - grupoLayers = i3GEO.configura.grupoLayers; + grupoLayers = i3GEO.configura.grupoLayers, + textoTema = ""; // //essa verificacao é necessaria quando a arvore é criada fora dos padrões normais // temp = $i(i3GEO.arvoreDeCamadas.IDHTML); if(temp){ + if(forca === true) + {temp.innerHTML = "";} if(temp.innerHTML !== ""){ if(i3GEO.arvoreDeCamadas.comparaTemas(temas,i3GEO.arvoreDeCamadas.CAMADAS)){ if(typeof(console) !== 'undefined'){console.info("Nao é necessario atualizar arvoreDeCamadas - return");} @@ -413,6 +443,8 @@ i3GEO.arvoreDeCamadas = { titulo = "
"+$trad("a7")+""; if(this.ARRASTARLIXEIRA === true) {titulo += "";} + if(this.FILTRAR === true) + {titulo += "";} if(this.LIGARDESLIGARTODOS === true){ titulo += " "; titulo += " "; @@ -434,15 +466,18 @@ i3GEO.arvoreDeCamadas = { ltema = temas[i]; try{ if(ltema.escondido !== "sim"){ - temaNode = new YAHOO.widget.HTMLNode( - {expanded:this.EXPANDIDA,html:i3GEO.arvoreDeCamadas.montaTextoTema(ltema),id:ltema.name,tipo:"tema",enableHighlight:false}, - tempNode - ); - if(this.PERMITEEXPANDIRTEMAS === true){ - if(this.EXPANDESOLEGENDA === false) - {temaNode.setDynamicLoad(i3GEO.arvoreDeCamadas.montaOpcoes, currentIconMode);} - else - {temaNode.setDynamicLoad(i3GEO.arvoreDeCamadas.mostraLegenda, 1);} + textoTema = i3GEO.arvoreDeCamadas.montaTextoTema(ltema); + if(textoTema !== ""){ + temaNode = new YAHOO.widget.HTMLNode( + {expanded:this.EXPANDIDA,html:textoTema,id:ltema.name,tipo:"tema",enableHighlight:false}, + tempNode + ); + if(this.PERMITEEXPANDIRTEMAS === true){ + if(this.EXPANDESOLEGENDA === false) + {temaNode.setDynamicLoad(i3GEO.arvoreDeCamadas.montaOpcoes, 1);} + else + {temaNode.setDynamicLoad(i3GEO.arvoreDeCamadas.mostraLegenda, 1);} + } } } } @@ -472,13 +507,16 @@ i3GEO.arvoreDeCamadas = { for(k=0;k +/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: true */ +/* +Title: Filtro da árvore de camadas + +Veja: + + + +Arquivo: + +i3geo/ferramentas/filtroarvore/index.js.php + +Licenca: + +GPL2 + +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet + +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br + +Este programa é software livre; você pode redistribuí-lo +e/ou modificá-lo sob os termos da Licença Pública Geral +GNU conforme publicada pela Free Software Foundation; + +Este programa é distribuído na expectativa de que seja útil, +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. +Consulte a Licença Pública Geral do GNU para mais detalhes. +Você deve ter recebido uma cópia da Licença Pública Geral do +GNU junto com este programa; se não, escreva para a +Free Software Foundation, Inc., no endereço +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. +*/ +if(typeof(i3GEOF) === 'undefined'){ + i3GEOF = []; +} +/* +Classe: i3GEOF.filtroarvore + +*/ +i3GEOF.filtroarvore = { + /* + Variavel: aguarde + + Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. + */ + aguarde: "", + /* + Function: inicia + + Inicia a ferramenta. É chamado por criaJanelaFlutuante + + Parametro: + + iddiv {String} - id do div que receberá o conteudo HTML da ferramenta + */ + inicia: function(iddiv){ + var box; + try{ + $i(iddiv).innerHTML += i3GEOF.filtroarvore.html(); + } + catch(erro){alert(erro);} + }, + /* + Function: html + + Gera o código html para apresentação das opções da ferramenta + + Retorno: + + String com o código html + */ + html:function(){ + var ins = '

Escolha o tipo de filtro ou "nenhum" para não filtrar

' + + '"; + }, + /* + Function: criaJanelaFlutuante + + Cria a janela flutuante para controle da ferramenta. + */ + criaJanelaFlutuante: function(){ + var janela,divid,temp,titulo,cabecalho,minimiza; + cabecalho = function(){}; + minimiza = function(){ + i3GEO.janela.minimiza("i3GEOF.filtroarvore"); + }; + //cria a janela flutuante + titulo = "Filtro    "; + janela = i3GEO.janela.cria( + "220px", + "90px", + "", + "", + "", + titulo, + "i3GEOF.filtroarvore", + false, + "hd", + cabecalho, + minimiza + ); + divid = janela[2].id; + $i("i3GEOF.filtroarvore_corpo").style.backgroundColor = "white"; + $i("i3GEOF.filtroarvore_corpo").style.textAlign = "left"; + i3GEOF.filtroarvore.aguarde = $i("i3GEOF.filtroarvore_imagemCabecalho").style; + i3GEOF.filtroarvore.inicia(divid); + }, + /* + Function: executa + + Altera o tamanho do mapa + + Veja: + + + */ + executa: function(){ + } +}; + \ No newline at end of file diff --git a/imagens/visual/default/sprite.png b/imagens/visual/default/sprite.png index a55fd2b..567faeb 100644 Binary files a/imagens/visual/default/sprite.png and b/imagens/visual/default/sprite.png differ diff --git a/imagens/visual/default/sprite2.png b/imagens/visual/default/sprite2.png index 4f94a2d..e44fc26 100644 Binary files a/imagens/visual/default/sprite2.png and b/imagens/visual/default/sprite2.png differ -- libgit2 0.21.2