/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: true */ /* Title: Insere gráfico interativo Inclui gráficos em elementos indicados pelo usuário tendo como fonte a tabela de atributos de um tema. 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 Veja: Arquivo: i3geo/ferramentas/inseregrafico/index.js.php About: Licença 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.insereGrafico */ i3GEOF.insereGrafico = { /* 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.insereGrafico.iniciaDicionario(); }, /* 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.insereGrafico.dicionario) === 'undefined'){ i3GEO.util.scriptTag( i3GEO.configura.locaplic+"/ferramentas/inseregrafico/dicionario.js", "i3GEOF.insereGrafico.iniciaJanelaFlutuante()", "i3GEOF.insereGrafico.dicionario_script" ); } else{ i3GEOF.insereGrafico.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){ try{ $i(iddiv).innerHTML += i3GEOF.insereGrafico.html(); i3GEO.guias.mostraGuiaFerramenta("i3GEOinseregraficoguia1","i3GEOinseregraficoguia"); //eventos das guias $i("i3GEOinseregraficoguia1").onclick = function() {i3GEO.guias.mostraGuiaFerramenta("i3GEOinseregraficoguia1","i3GEOinseregraficoguia");}; $i("i3GEOinseregraficoguia2").onclick = function() {i3GEO.guias.mostraGuiaFerramenta("i3GEOinseregraficoguia2","i3GEOinseregraficoguia");}; new YAHOO.widget.Button( "i3GEOinseregraficobotao1", {onclick:{fn: i3GEOF.insereGrafico.legenda}} ); i3GEO.util.mensagemAjuda("i3GEOinseregraficomen1",$i("i3GEOinseregraficomen1").innerHTML); //i3GEO.php.listaItensTema(i3GEOF.graficoTema.montaListaItens,i3GEO.temaAtivo); i3GEOF.insereGrafico.ativaFoco(); } catch(erro){i3GEO.janela.tempoMsg(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 = ''; ins += '
'; ins += ' '; ins += '

'; ins += ' '; ins += ' '; ins += ' '; return ins; }, /* Function: iniciaJanelaFlutuante Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante: function(){ var minimiza,cabecalho,janela,divid,temp,titulo; //funcao que sera executada ao ser clicado no cabeçalho da janela cabecalho = function(){ i3GEOF.insereGrafico.ativaFoco(); }; minimiza = function(){ i3GEO.janela.minimiza("i3GEOF.insereGrafico"); }; //cria a janela flutuante titulo = $trad("t37")+"    "; janela = i3GEO.janela.cria( "400px", "320px", "", "", "", titulo, "i3GEOF.insereGrafico", false, "hd", cabecalho, minimiza ); divid = janela[2].id; $i("i3GEOF.insereGrafico_corpo").style.backgroundColor = "white"; i3GEOF.insereGrafico.aguarde = $i("i3GEOF.insereGrafico_imagemCabecalho").style; if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEOF.insereGrafico.insere()") < 0) {i3GEO.eventos.MOUSECLIQUE.push("i3GEOF.insereGrafico.insere()");} i3GEO.eventos.cliquePerm.desativa(); temp = function(){ i3GEO.eventos.MOUSECLIQUE.remove("i3GEOF.insereGrafico.insere()"); i3GEO.eventos.cliquePerm.ativa(); //if(i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search("i3GEOF.insereGrafico.comboTemas()") > 0) //{i3GEO.eventos.ATUALIZAARVORECAMADAS.remove("i3GEOF.insereGrafico.comboTemas()");} }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); //if(i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search("i3GEOF.insereGrafico.comboTemas()") < 0) //{i3GEO.eventos.ATUALIZAARVORECAMADAS.push("i3GEOF.insereGrafico.comboTemas()");} i3GEOF.insereGrafico.inicia(divid); }, /* Function: ativaFoco Refaz a interface da ferramenta quando a janela flutuante tem seu foco ativado */ ativaFoco: function(){ i3GEO.eventos.cliquePerm.desativa(); if(g_tipoacao !== 'inseregrafico'){ i3GEO.barraDeBotoes.ativaIcone("inseregrafico"); g_tipoacao='inseregrafico'; g_operacao='inseregrafico'; temp = Math.random() + "a"; temp = temp.split("."); g_nomepin = "pin"+temp[1]; i3GEOF.insereGrafico.comboTemas(); $i("i3GEOinseregraficolistai").innerHTML = ""; var i = $i("i3GEOF.insereGrafico_c").style; i3GEO.janela.ULTIMOZINDEX++; i.zIndex = 21000 + i3GEO.janela.ULTIMOZINDEX; } }, /* Function: insere Insere um grafico no mapa na posição clicada O ponto é obtidos do objeto objposicaocursor e os demais parāmetros da janela interna aberta no iframe "wdocai" Veja: */ insere: function(){ if (g_tipoacao === "inseregrafico"){ var tema = $i("i3GEOinseregraficotemasLigados").value, width = $i("i3GEOinseregraficow").value, inclinacao = $i("i3GEOinseregraficoinclinacao").value, shadow_height = $i("i3GEOinseregraficosombra").value, itens, temp; if (tema === ""){i3GEO.janela.tempoMsg($trad(8,i3GEOF.insereGrafico.dicionario));} else{ itens = i3GEOF.insereGrafico.pegaItensMarcados(); if (itens === "") {i3GEO.janela.tempoMsg($trad(9,i3GEOF.insereGrafico.dicionario));} else{ temp = function(){ i3GEOF.insereGrafico.aguarde.visibility = "hidden"; i3GEO.atualiza(); }; i3GEOF.insereGrafico.aguarde.visibility = "visible"; //i3GEO.contadorAtualiza++; i3GEO.php.insereSHPgrafico(temp,tema,objposicaocursor.ddx,objposicaocursor.ddy,itens,shadow_height,width,inclinacao); } } } }, /* Function: comboTemas Cria o combo com os temas disponíveis (temas ligados) para adição dos gráficos. Veja: */ comboTemas: function(){ i3GEO.util.comboTemas( "i3GEOinseregraficotemasLigados", function(retorno){ $i("i3GEOinseregraficotemasi").innerHTML = retorno.dados; if ($i("i3GEOinseregraficotemasLigados")){ $i("i3GEOinseregraficotemasLigados").onchange = function(){ $i("i3GEOinseregraficolistai").innerHTML = "

"+$trad(3,i3GEOF.insereGrafico.dicionario)+"...
"; i3GEO.php.listaItensTema(i3GEOF.insereGrafico.listaItens,$i("i3GEOinseregraficotemasLigados").value); i3GEO.mapa.ativaTema($i("i3GEOinseregraficotemasLigados").value); }; } if(i3GEO.temaAtivo !== ""){ $i("i3GEOinseregraficotemasLigados").value = i3GEO.temaAtivo; $i("i3GEOinseregraficotemasLigados").onchange.call(); } }, "i3GEOinseregraficotemasi", "", false, "ligados" ); }, /* Function: listaItens Monta a listagem de itens de um tema com a opção de seleção de cor Parametro: retorno {JSON} */ listaItens: function(retorno){ try{ var i, n, ins = []; n = retorno.data.valores.length; ins.push(""); for (i=0;i"); ins.push(""); ins.push(""); ins.push(""); } ins.push("
 "+retorno.data.valores[i].item+"  
"); $i("i3GEOinseregraficolistai").innerHTML = ins.join(""); } catch(e) {$i("i3GEOinseregraficolistai").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 parāmetro para a função de geração dos gráficos */ pegaItensMarcados: function(){ var listadeitens = [], inputs = $i("i3GEOinseregraficolistai").getElementsByTagName("input"), i, it, c, n; n = inputs.length; for (i=0;i= 0) { do { t = temp[i]; t = t.split(","); par += "  "+t[0]+""; } while(i--); } par += ""; w = i3GEO.janela.cria(200,200,"","center","center","Legenda","FlegendaGr"); w = w[2].id; $i(w).innerHTML = par; } catch(e){i3GEO.janela.tempoMsg("Erro. legendaGrafico"+e);} } };