/* Title: Gráfico tema Inclui gráficos em cada elemento de um tema tendo como fonte a tabela de atributos. É criado um novo tema no mapa com os gráficos. Abre uma janela com várias opções e lista de itens para os gráficos. O tema que será utilizado é o que estiver armazenado na variável global i3GEO.temaAtivo Arquivo: i3geo/ferramentas/graficotema/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@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(i3GEOF) === 'undefined'){ var i3GEOF = {}; } /* Classe: i3GEOF.graficoTema */ i3GEOF.graficoTema = { propriedades : { mesmoTema : false }, tema : i3GEO.temaAtivo, /* Variavel: aguarde Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ aguarde: "", /* Para efeitos de compatibilidade antes da versão 4.7 que não tinha dicionário */ criaJanelaFlutuante: function(){ i3GEOF.graficoTema.iniciaDicionario(); }, /** * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php */ MUSTACHE : "", /** * Susbtitutos para o template */ mustacheHash : function() { var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.graficoTema.dicionario); return dicionario; }, /* Function: iniciaDicionario Carrega o dicionário e chama a função que inicia a ferramenta O Javascript é carregado com o id i3GEOF.nomedaferramenta.dicionario_script */ iniciaDicionario: function(){ if(typeof(i3GEOF.graficoTema.dicionario) === 'undefined'){ i3GEO.util.scriptTag( i3GEO.configura.locaplic+"/ferramentas/graficotema/dicionario.js", "i3GEOF.graficoTema.iniciaJanelaFlutuante()", "i3GEOF.graficoTema.dicionario_script" ); } else{ i3GEOF.graficoTema.iniciaJanelaFlutuante(); } }, /* Function: inicia Inicia a ferramenta. É chamado por criaJanelaFlutuante Parametro: iddiv {String} - id do div que receberá o conteudo HTML da ferramenta */ inicia: function(iddiv){ i3GEO.janela.comboCabecalhoTemas("i3GEOFgraficotemaComboCabeca","i3GEOFgraficotemaComboCabecaSel","graficoTema","ligadosComTabela"); if(i3GEOF.graficoTema.tema === ""){ $i(iddiv).innerHTML = "";//'

'+$trad("x33")+'

'; return; } try{ $i(iddiv).innerHTML += i3GEOF.graficoTema.html(); i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficotemaguia1","i3GEOgraficotemaguia"); //eventos das guias $i("i3GEOgraficotemaguia1").onclick = function() {i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficotemaguia1","i3GEOgraficotemaguia");}; $i("i3GEOgraficotemaguia2").onclick = function() {i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficotemaguia2","i3GEOgraficotemaguia");}; var b = new YAHOO.widget.Button( "i3GEOgraficotemabotao1", {onclick:{fn: i3GEOF.graficoTema.criaNovoTema}} ); b.addClass("rodar"); i3GEO.util.mensagemAjuda("i3GEOgraficotemamen1",$i("i3GEOgraficotemamen1").innerHTML); // //pega a lista de itens e chama a função de montagem das opções de escolha // i3GEO.php.listaItensTema(i3GEOF.graficoTema.montaListaItens,i3GEOF.graficoTema.tema); } catch(erro){i3GEO.janela.tempoMsg(erro);} i3GEO.util.aplicaAquarela("i3GEOgraficotemaguia2obj"); }, /* 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 = Mustache.render(i3GEOF.graficoTema.MUSTACHE, i3GEOF.graficoTema.mustacheHash()); return ins; }, /* Function: iniciaJanelaFlutuante Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante: function(propriedades){ if(propriedades){ i3GEOF.graficoTema.propriedades = propriedades; } var janela,divid,temp,titulo; if($i("i3GEOF.graficoTema")){ i3GEOF.graficoTema.inicia("i3GEOF.graficoTema_corpo"); return; } //cria a janela flutuante titulo = "" + "
------
"+$trad("t37a")+"
"; janela = i3GEO.janela.cria( "400px", "330px", "", "", "", titulo, "i3GEOF.graficoTema", true, "hd", "", "", "", true ); divid = janela[2].id; i3GEOF.graficoTema.aguarde = $i("i3GEOF.graficoTema_imagemCabecalho").style; $i("i3GEOF.graficoTema_corpo").style.backgroundColor = "white"; i3GEOF.graficoTema.inicia(divid); temp = function(){ i3GEO.eventos.removeEventos("ATUALIZAARVORECAMADAS",['i3GEO.janela.comboCabecalhoTemas("i3GEOFgraficotemaComboCabeca","i3GEOFgraficotemaComboCabecaSel","tabela","ligadosComTabela")']); }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); }, /* Function: montaListaItens Monta a lista de itens que poderão ser escolhidos para compor o mapa. A lista é inserida no elemento html com id "i3GEOgraficotemalistai" */ montaListaItens: function(retorno){ var ins,i,n; try{ ins = []; ins.push(""); n = retorno.data.valores.length; for (i=0;i"); ins.push(""); ins.push(""); } ins.push("
 "+retorno.data.valores[i].item+"
"); $i("i3GEOgraficotemalistai").innerHTML = ins.join(""); i3GEO.util.aplicaAquarela("i3GEOgraficotemalistai"); } catch(e) {$i("i3GEOgraficotemalistai").innerHTML = "

Erro
"+e;} }, /* Function: corj Abre a janela para o usuário selecionar uma cor interativamente */ corj: function(obj) {i3GEO.util.abreCor("",obj);}, /* Function: pegaItensMarcados Recupera os itens que foram marcados e monta uma lista para enviar como parametro para a função de geração dos gráficos */ pegaItensMarcados: function(){ var listadeitens = [], inputs = $i("i3GEOgraficotemalistai").getElementsByTagName("input"), i, it, c, n; n = inputs.length; for (i=0;i */ criaNovoTema: function(){ try{ if(i3GEOF.graficoTema.aguarde.visibility === "visible") {return;} var lista = i3GEOF.graficoTema.pegaItensMarcados(), nlista = lista.split("*").length, outlinecolor = $i("i3GEOgraficotemaoutlinecolor").value, offset = $i("i3GEOgraficotemaoffset").value, tipo = $i("i3GEOgraficotematipo").value, tamanho, temp, cp = new cpaint(), p; if(nlista < 2){ i3GEO.janela.tempoMsg($trad('msgSelecionaItens',i3GEOF.graficoTema.dicionario)); return; } if (tipo === "PIE"){tamanho = $i("i3GEOgraficotemalargura").value;} else {tamanho = $i("i3GEOgraficotemalargura").value+" "+$i("i3GEOgraficotemaaltura").value;} if(lista === "") {i3GEO.janela.tempoMsg("selecione um item");return;} i3GEOF.graficoTema.aguarde.visibility = "visible"; temp = function(retorno){ i3GEOF.graficoTema.aguarde.visibility = "hidden"; i3GEO.atualiza(retorno); if(i3GEOF.graficoTema.propriedades.mesmoTema === true){ i3GEO.Interface.atualizaTema(retorno,i3GEOF.graficoTema.tema); } }; p = i3GEO.configura.locaplic+"/ferramentas/graficotema/exec.php?" + "g_sid="+i3GEO.configura.sid + "&funcao=graficotema" + "&tema="+i3GEOF.graficoTema.tema + "&lista="+lista + "&tamanho="+tamanho + "&tipo="+tipo + "&outlinecolor="+outlinecolor + "&offset="+offset + "&mesmoTema="+i3GEOF.graficoTema.propriedades.mesmoTema; cp.set_response_type("JSON"); cp.call(p,"graficotema",temp); }catch(e){i3GEO.janela.tempoMsg("Erro: "+e);i3GEOF.graficoTema.aguarde.visibility = "hidden";} } };