/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: true */ /* Title: Insere textos Inclui um texto no mapa no ponto clicado pelo usuário Veja: Arquivo: i3geo/ferramentas/inseretxt/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.inseretxt */ i3GEOF.inseretxt = { /* Variavel: aguarde Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ aguarde: "", /* Variavel: contaPontos Conta quantos pontos o usuário clicou na adição de um conector */ contaPontos: 0, /* Variavel: pontoi Primeiro ponto do conector clicado no mapa em DD */ pontoi: "0,0", /* Variavel: parDefault Parāmetros padrão utilizados para formatar o texto */ parDefault: "&inserefeature&&position=MS_UR&partials=1&offsetx=0&offsety=0&minfeaturesize=auto&mindistance=auto&force=0&shadowsizex=1&shadowsizey=1&cor=0 0 0&sombray=1&sombrax=1&angulo=0&tamanho=8&fonte=bitmap&fundo=off&sombra=off&outlinecolor=off&shadowcolor=off&wrap=", /* Para efeitos de compatibilidade antes da versão 4.7 que não tinha dicionário */ criaJanelaFlutuante: function(){ i3GEOF.inseretxt.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.inseretxt.dicionario) === 'undefined'){ i3GEO.util.scriptTag( i3GEO.configura.locaplic+"/ferramentas/inseretxt/dicionario.js", "i3GEOF.inseretxt.iniciaJanelaFlutuante()", "i3GEOF.inseretxt.dicionario_script" ); } else{ i3GEOF.inseretxt.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.inseretxt.html(); i3GEO.guias.mostraGuiaFerramenta("i3GEOinseretxtguia1","i3GEOinseretxtguia"); //eventos das guias $i("i3GEOinseretxtguia1").onclick = function() {i3GEO.guias.mostraGuiaFerramenta("i3GEOinseretxtguia1","i3GEOinseretxtguia");}; $i("i3GEOinseretxtguia2").onclick = function(){ i3GEO.guias.mostraGuiaFerramenta("i3GEOinseretxtguia2","i3GEOinseretxtguia"); i3GEO.util.comboTemas( "i3GEOinseretxtComboTemas", function(retorno){ $i("i3GEOinseretxtDivComboTemas").innerHTML = retorno.dados; $i("i3GEOinseretxtDivComboTemas").style.display = "block"; if ($i("i3GEOinseretxtComboTemas")){ $i("i3GEOinseretxtComboTemas").onchange = function(){ $i("i3GEOinseretxtDivComboItens").innerHTML = "

"+$trad(1,i3GEOF.inseretxt.dicionario)+"...

"; i3GEO.mapa.ativaTema($i("i3GEOinseretxtComboTemas").value); //combodeitens i3GEO.util.comboItens( "i3GEOinseretxtComboItens", i3GEO.temaAtivo, function(retorno){ $i("i3GEOinseretxtDivComboItens").innerHTML = "

"+retorno.dados+"

"; } ); }; } if(i3GEO.temaAtivo !== ""){ $i("i3GEOinseretxtComboTemas").value = i3GEO.temaAtivo; $i("i3GEOinseretxtComboTemas").onchange.call(); } }, "i3GEOinseretxtDivComboTemas", "", false, "ligados" ); }; $i("i3GEOinseretxtguia3").onclick = function(){ //i3GEO.guias.mostraGuiaFerramenta("i3GEOinseretxtguia3","i3GEOinseretxtguia"); i3GEO.util.scriptTag( i3GEO.configura.locaplic+"/ferramentas/opcoes_label/index.js", "i3GEOF.proplabel.criaJanelaFlutuante(true)", "i3GEOFproplabel", false ); }; i3GEO.util.mensagemAjuda("i3GEOinseretxtmen1",$i("i3GEOinseretxtmen1").innerHTML); i3GEO.util.mensagemAjuda("i3GEOinseretxtmen2",$i("i3GEOinseretxtmen2").innerHTML); i3GEO.util.comboFontes("i3GEOinseretxtListaFonte","i3GEOinseretxtDivListaFonte"); i3GEOF.inseretxt.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 = '' + '
' + ' ' + '

' + ' ' + ' ' + ' ' + ' '; return ins; }, /* Function: iniciaJanelaFlutuante Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante: function(){ var minimiza,cabecalho,janela,divid,temp,titulo; //cria a janela flutuante cabecalho = function(){ i3GEOF.inseretxt.ativaFoco(); }; minimiza = function(){ i3GEO.janela.minimiza("i3GEOF.inseretxt"); }; titulo = $trad("d25t")+"    "; janela = i3GEO.janela.cria( "360px", "250px", "", "", "", titulo, "i3GEOF.inseretxt", false, "hd", cabecalho, minimiza ); divid = janela[2].id; i3GEOF.inseretxt.aguarde = $i("i3GEOF.inseretxt_imagemCabecalho").style; $i("i3GEOF.inseretxt_corpo").style.backgroundColor = "white"; i3GEOF.inseretxt.inicia(divid); if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEOF.inseretxt.cria()") < 0) {i3GEO.eventos.MOUSECLIQUE.push("i3GEOF.inseretxt.cria()");} i3GEO.eventos.cliquePerm.desativa(); temp = function(){ i3GEO.eventos.cliquePerm.ativa(); i3GEO.barraDeBotoes.ativaPadrao(); i3GEO.eventos.MOUSECLIQUE.remove("i3GEOF.inseretxt.cria()"); }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); }, /* Function: ativaFoco Refaz a interface da ferramenta quando a janela flutuante tem seu foco ativado */ ativaFoco: function(){ i3GEO.eventos.cliquePerm.desativa(); i3GEO.util.mudaCursor(i3GEO.configura.cursores,"crosshair",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic); i3GEO.barraDeBotoes.ativaIcone("textofid"); g_tipoacao=''; g_operacao=''; if($i("img")){ $i("img").style.cursor="pointer"; } }, /* Function: corj Abre a janela para o usuário selecionar uma cor interativamente */ corj: function(obj) {i3GEO.util.abreCor("",obj);}, /* Function: pegaPar Pega os parāmetros para montar a chamada ajax que cria ou testa a toponímia */ pegaPar: function(){ try{ var par = i3GEOF.proplabel.pegaPar(); i3GEOF.inseretxt.parDefault = par; } catch(e){ par = i3GEOF.inseretxt.parDefault; } return par; }, /* Function: cria Cria um tema e insere o texto Veja: */ cria: function(){ try{ if(i3GEOF.inseretxt.aguarde.visibility === "visible") {return;} if($i("i3GEOinseretxtguia3obj").style.display === "block"){ i3GEO.janela.tempoMsg($trad(40,i3GEOF.inseretxt.dicionario)); return; } i3GEOF.inseretxt.aguarde.visibility = "visible"; var temp,tema,item; // //de onde vem o texto // if($i("i3GEOinseretxtguia1obj").style.display === "block"){ i3GEOF.inseretxt.iniciaInsere(); } else{ temp = function(retorno){ if(retorno.data[0] == " "){ i3GEO.janela.tempoMsg($trad(41,i3GEOF.inseretxt.dicionario)); i3GEOF.inseretxt.aguarde.visibility = "hidden"; return; } $i("i3GEOinseretxttexto").value = retorno.data; i3GEOF.inseretxt.iniciaInsere(); }; tema = $i("i3GEOinseretxtComboTemas").value; item = $i("i3GEOinseretxtComboItens").value; if(i3GEOF.inseretxt.contaPontos == 0) {i3GEO.php.identificaunico(temp,objposicaocursor.ddx+","+objposicaocursor.ddy,tema,item);} else{ i3GEOF.inseretxt.iniciaInsere(); } } }catch(e){i3GEO.janela.tempoMsg("Erro: "+e);i3GEOF.inseretxt.aguarde.visibility = "hidden";} }, iniciaInsere: function(){ var texto = $i("i3GEOinseretxttexto").value; if(texto === ""){ i3GEOF.inseretxt.aguarde.visibility = "hidden"; return; } else{ if($i("i3GEOinseretxttextoconector").checked){ if(i3GEOF.inseretxt.contaPontos == 0){ i3GEOF.inseretxt.contaPontos = 1; i3GEOF.inseretxt.pontoi = objposicaocursor.ddx+" "+objposicaocursor.ddy; i3GEOF.inseretxt.aguarde.visibility = "hidden"; i3GEO.janela.tempoMsg($trad(42,i3GEOF.inseretxt.dicionario)); return; } if(i3GEOF.inseretxt.contaPontos == 1){ i3GEOF.inseretxt.insere(texto); i3GEOF.inseretxt.insereConector(i3GEOF.inseretxt.pontoi+" "+objposicaocursor.ddx+" "+objposicaocursor.ddy,texto); i3GEOF.inseretxt.contaPontos = 0; return; } } else {i3GEOF.inseretxt.insere(texto);} } }, /* Function: insere Insere um texto no mapa Veja: Parametro: texto {String} */ insere: function(texto){ var monta,par,p,nometema,temp,cp; monta = function(){ i3GEOF.inseretxt.aguarde.visibility = "hidden"; i3GEO.atualiza(); }; temp = Math.random() + "b"; temp = temp.split("."); nometema = "pin"+temp[1]; par = i3GEOF.inseretxt.pegaPar(); p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+ "&funcao=inserefeature&"+par+"&pin="+nometema+"&tipo=ANNOTATION&texto="+texto+"&xy="+objposicaocursor.ddx+" "+objposicaocursor.ddy; if(par === false){ i3GEOF.inseretxt.aguarde.visibility = "hidden"; return; } cp = new cpaint(); cp.set_response_type("JSON"); cp.call(p,"inserefeature",monta); }, /* Function: insereConector Insere um conector de textos Veja: Parametro: xy {string} - lista de pontos */ insereConector: function(xy,texto){ var monta,par,p,nometema,temp; monta = function(){ i3GEOF.inseretxt.aguarde.visibility = "hidden"; i3GEO.atualiza(); }; temp = Math.random() + "b"; temp = temp.split("."); nometema = "pin"+temp[1]; par = i3GEOF.inseretxt.pegaPar(); if($i("i3GEOproplabeltamanho_c")){ par += "&tamanho="+$i("i3GEOproplabeltamanho_c").value; par += "&cor="+$i("i3GEOproplabelfrente_c").value; } else{ par += "&tamanho=1"; par += "&cor=0 0 0"; } p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+ "&funcao=inserefeature&"+par+"&pin="+nometema+"&tipo=LINE&texto="+texto+" (conector)&xy="+xy; if(par === false){ i3GEOF.inseretxt.aguarde.visibility = "hidden"; return; } cp = new cpaint(); cp.set_response_type("JSON"); cp.call(p,"inserefeature",monta); } };