/* Title: Guias i3GEO.guias Cria e controla os blocos de opções ativados por meio de guias ou botões Para configurar as guias do mapa principal utilize i3GEO.guias.configura = ... Arquivo: i3geo/classesjs/classe_guias.js Licença: 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@gmail.com 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(i3GEO) === 'undefined'){ var i3GEO = {}; } i3GEO.guias = { /* Variavel: ATUAL Guia que está ativa ou que será ativada ao iniciar o mapa O nome da guia é a definida na variável i3GEO.guias.CONFIGURA Tipo: {string} Default: {"temas"} */ ATUAL: "temas", /* Propriedade: ALTURACORPOGUIAS Altura em pixels que será aplicado em cada guia Por default, a altura é calculada automaticamente, mas em alguns casos, pode ser necessário especificar o valor para permitir um melhor ajuste do layout do mapa Mantenha como 0 para que o cálculo seja automático Tipo: {numeric} Default: 0 */ ALTURACORPOGUIAS: 0, /* Propriedade: CONFIGURA Define os parâmetros de cada guia que será mostrada no mapa, como título, conteúdo, etc. Você pode modificar o nome de uma guia como no exemplo i3GEO.guias.CONFIGURA.legenda.titulo = "nome diferente"; Por padrão são definidas as guias legenda, temas, adiciona e mapas (links) Exemplo i3GEO.guias.CONFIGURA.legenda = { titulo:"Legenda do mapa", id:"guia4", idconteudo:"guia4obj",//id do elemento HTML que contém o conteúdo da guia click: function(){ i3GEO.guias.mostra("legenda");//mostra a guia i3GEO.mapa.legendaHTML.cria("guia4obj"); } } Tipo: {JSON} */ CONFIGURA: { "temas":{ icone:"imagens/gisicons/show-layers.png", titulo:$trad("g4a"), id:"guia1", idconteudo:"guia1obj", click:"" }, "adiciona":{ icone:"imagens/gisicons/show-catalog.png", titulo:$trad("g1a"), id:"guia2", idconteudo:"guia2obj", click: function(){ var ondeArvore; i3GEO.guias.mostra("adiciona"); if(!$i("arvoreAdicionaTema")) { try{ondeArvore = objmapa.guiaMenu+"obj";} catch(e){ondeArvore = "guia2obj";} } else {ondeArvore = "arvoreAdicionaTema";} //para efeitos de compatibilidade if(document.getElementById("outrasOpcoesAdiciona")){ i3GEO.arvoreDeTemas.OPCOESADICIONAIS.idonde = "outrasOpcoesAdiciona"; i3GEO.arvoreDeTemas.OPCOESADICIONAIS.incluiArvore = false; } i3GEO.arvoreDeTemas.cria(i3GEO.configura.sid,i3GEO.configura.locaplic,ondeArvore); } }, "legenda":{ icone:"imagens/gisicons/show-legend.png", titulo:$trad("g3"), id:"guia4", idconteudo:"guia4obj", click: function(){ i3GEO.guias.mostra("legenda"); i3GEO.mapa.legendaHTML.cria("guia4obj"); } }, "mapas":{ icone:"imagens/gisicons/show-links.png", titulo:"Links", id:"guia5", idconteudo:"guia5obj", mostraLink: function(id,url){ $i("i3geoMapasLink_"+id).innerHTML = ""+url+""; }, click: function(onde){ if(!onde){ onde = i3GEO.guias.CONFIGURA.mapas.idconteudo; } var pegaMapas = function(retorno){ var ins,mapa,ig1lt,ig1,nome,lkd,link,temp,combo,urlinterface; ins = "
" + ""+$trad("x89")+"

"; mapa = retorno.data.mapas; ig1lt = mapa.length; ig1=0; urlinterface = window.location.origin+window.location.pathname; if(ig1lt > 0){ do{ temp = mapa[ig1]; nome = temp.NOME; if(temp.PUBLICADO){ if(temp.PUBLICADO.toLowerCase() === "nao") {nome = ""+nome+"";} } lkd = temp.LINK; link = i3GEO.configura.locaplic+"/ms_criamapa.php?temasa="+temp.TEMAS+"&layers="+temp.LIGADOS; if (temp.EXTENSAO !== "") {link += "&mapext="+temp.EXTENSAO;} if (temp.OUTROS !== "") {link += "&"+temp.OUTROS;} if (lkd !== "") {link = lkd;} ins += "
"; if(temp.IMAGEM && temp.IMAGEM != ""){ ins += "
" + "

"; } //verifica se o mapfile esta salvo no banco diretamente if(temp.CONTEMMAPFILE == "nao"){ ins += "

" + ""+nome+" ("+temp.ID_MAPA+")

"; } else{ //combo de opcoes para abrir os mapas salvos como mapfiles combo = ""; ins += "
" + "

" + "

" + ""+nome+" ("+temp.ID_MAPA+")" + //"
Preview" + "
"+combo + "

" + "

"; } ins += "

"; ig1++; } while(ig1"; }; if($i(i3GEO.guias.CONFIGURA.mapas.idconteudo)){ $i(i3GEO.guias.CONFIGURA.mapas.idconteudo).innerHTML = "Aguarde..."; } i3GEO.guias.mostra("mapas"); i3GEO.php.pegaMapas(pegaMapas); } } }, /* Propriedade: ORDEM Ordem de inclusão das guias no mapa. Essa opção é mais útil no caso do tipo sanfona, pois nesse caso, a primeira guia é sempre a que fica ativa. Se esse par�metro for uma string vazia, a ordem utilizada será a ordem existente em i3GEO.guias.CONFIGURA. Ao ser definida, apenas as guias indicadas no array serão incluídas Exemplo: i3GEO.guias.ORDEM = ["temas","adiciona","legenda"]; Tipo: {array} Default: {""} */ ORDEM: "", /* Propriedade: TIPO Tipo de guia Quando TIPO = "movel", a inicialização da guia é feita em i3GEO.inicia Isso é ne cessário pq a guia móvel só pode ser criada após o posicionamento do corpo do mapa Tipo: {string} Default: {"guia"} Values: guia|sanfona|tablet|movel */ TIPO: "guia", /* Propriedade: idguias ID do elemento DOM, criado pelo YUI, onde serão inseridas as guias Tipo: {String} Default: {"guiasYUI"} */ IDGUIAS: "guiasYUI", /* Function: cria Cria as guias com base na variável i3GEO.guias.CONFIGURA As guias podem ser definidas no HTML do mapa, sem necessariamente estarem na variável configura. As guias, nesse caso, devem ter como ID "guia'n'", por exemplo id="guia6". Para cada uma dessas guias deve haver um DIV com o conteúdo. Esse DIV deve ter como ID "guia'n'obj", por exemplo id="guia6obj". No caso de ser utilizado a guia móvel, com i3GEO.guias.TIPO = "movel" , "guia'n" não é necessário, uma vez que são utilizados os ícones definidos em i3GEO.guias.CONFIGURA Parametro: onde {String} - id do elemento que conterá as guias */ cria: function(onde){ if(typeof(console) !== 'undefined'){console.info("i3GEO.guias.cria()");} // //obtém outras guias que podem existir no mapa // var nguiasreal = 0,guiaconteudo,id,guia,g,re,ng,tituloguia,i,ins,altura,temp, CONFIGURA = i3GEO.guias.CONFIGURA, guias = i3GEO.util.listaChaves(CONFIGURA), nguias = guias.length; // //no caso de TIPO === "movel", as guias não são construídas de imediato, apenas é criado um objeto //com os parâmetros necessários para a criação das guias // if(i3GEO.guias.TIPO === "movel"){ i3GEO.guias.IDGUIAS = "i3GEOguiaMovelConteudo"; for(ng=0;ng'+i3GEO.guias.CONFIGURA[guias[ng]].titulo+'
';} } } //adiciona uma guia que permite esconder todas as outras guias se for do tipo tablet ins += ""; onde.innerHTML = ins; } if(i3GEO.guias.TIPO === "sanfona"){ ins = '
'; //verifica a quantidade certa de guias if(i3GEO.guias.ORDEM === ""){ for(ng=0;ng' + '
'+i3GEO.guias.CONFIGURA[guias[ng]].titulo+'
' + '
' + '
' + '
'+guiaconteudo+'
'; } } } ins += "
"; onde.innerHTML = ins; onde.style.height = altura+"px"; YAHOO.lutsr.accordion.init(true,5,false,"sanfona"+onde.id,altura); i3GEO.guias.ALTURACORPOGUIAS = altura; } for(g=0;g
'; temp = $i("i3geo") ? $i("i3geo").appendChild(novoel) : document.body.appendChild(novoel); janela = new YAHOO.widget.Panel("janelaguias", {width:"270px", fixedcenter: true, constraintoviewport: false, underlay:"none", close:false, visible:true, draggable:true, modal:false,iframe:true } ); YAHOO.i3GEO.janela.manager.register(janela); janela.render(); janela.show(); janela.cfg.setProperty("y", 0); i = $i(i3GEO.guias.IDGUIAS); $i("conteudojanelaguias_corpo").appendChild(i); i.style.borderLeft="1px solid black"; i.style.borderRight="1px solid black"; guias = i3GEO.util.listaChaves(i3GEO.guias.CONFIGURA); nguias = guias.length; for(g=0;g";} } $i("i3GEOguiaMovelIcones").innerHTML = ins; i3GEO.guias.guiaMovel.desativaIcones(); if($i(i3GEO.guias.CONFIGURA[i3GEO.guias.ATUAL].id)){ $i(i3GEO.guias.CONFIGURA[i3GEO.guias.ATUAL].id).parentNode.style.backgroundColor = "#cedff2"; $i(i3GEO.guias.CONFIGURA[i3GEO.guias.ATUAL].id).parentNode.style.boxShadow = "none"; } }, /* Altera a cor do fundo dos ícones, voltando ao original */ desativaIcones:function(){ var ims = $i("i3GEOguiaMovelIcones").getElementsByTagName("button"), n = ims.length, i; for(i=0;i