/* Title: Etiqueta Ativa um determinado campo na tabela de atributos para ser utilizado na ferramenta de identificação do tipo "balão". Arquivo: i3geo/ferramentas/etiqueta/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.etiqueta */ i3GEOF.etiqueta = { tema : i3GEO.temaAtivo, /* Variavel: aguarde Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ aguarde: "", /** * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php */ MUSTACHE : "", MUSTACHELISTA : "", /** * Susbtitutos para o template */ mustacheHash : function() { var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.etiqueta.dicionario); dicionario["aplica"] = $trad("p14"); return dicionario; }, /* Function: inicia Inicia a ferramenta. É chamado por criaJanelaFlutuante Parametro: iddiv {String} - id do div que receberá o conteudo HTML da ferramenta */ inicia: function(iddiv){ if(i3GEOF.etiqueta.MUSTACHE == ""){ var t1 = i3GEO.configura.locaplic + "/ferramentas/etiqueta/template_mst.html", t2 = i3GEO.configura.locaplic + "/ferramentas/etiqueta/templateLista_mst.html"; $.when( $.get(t1),$.get(t2) ).done(function(r1,r2) { i3GEOF.etiqueta.MUSTACHE = r1[0]; i3GEOF.etiqueta.MUSTACHELISTA = r2[0]; i3GEOF.etiqueta.inicia(iddiv); }).fail(function() { i3GEO.janela.closeMsg($trad("erroTpl")); return; }); return; } if(i3GEOF.etiqueta.tema === ""){ $i(iddiv).innerHTML = ""; return; } try{ $i(iddiv).innerHTML = i3GEOF.etiqueta.html(); if (!$i("i3GEOFetiquetaComboCabecaSel")) { i3GEO.janela.comboCabecalhoTemasBs("i3GEOFetiquetaComboCabeca","i3GEOFetiquetaComboCabecaSel","etiqueta","ligadosComTabela",function(evt){ var botao = evt.target; if (botao) { if (botao.value != "") { i3GEO.mapa.ativaTema(botao.value); i3GEOF.etiqueta.tema = botao.value; $i(iddiv).innerHTML = ""; i3GEOF.etiqueta.inicia(iddiv); } else { //$i(iddiv).innerHTML = ""; } } }); } i3GEOF.etiqueta.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 = Mustache.render(i3GEOF.etiqueta.MUSTACHE, i3GEOF.etiqueta.mustacheHash()); return ins; }, /* Function: iniciaJanelaFlutuante Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante: function(){ var minimiza,cabecalho,janela,divid,temp,titulo; if($i("i3GEOF.etiqueta")){ i3GEOF.etiqueta.inicia("i3GEOF.etiqueta_corpo"); return; } cabecalho = function(){ i3GEOF.etiqueta.ativaFoco(); }; minimiza = function(){ i3GEO.janela.minimiza("i3GEOF.etiqueta"); }; //cria a janela flutuante titulo = ""+$trad("d7at")+""; janela = i3GEO.janela.cria( "600px", "400px", "", "", "", titulo, "i3GEOF.etiqueta", false, "hd", cabecalho, minimiza, "", true, "", "", "", "", "37" ); divid = janela[2].id; i3GEOF.etiqueta.aguarde = $i("i3GEOF.etiqueta_imagemCabecalho").style; $i("i3GEOF.etiqueta_corpo").style.backgroundColor = "white"; i3GEOF.etiqueta.inicia(divid); }, /* Function: ativaFoco Refaz a interface da ferramenta quando a janela flutuante tem seu foco ativado */ ativaFoco: function(){ if(i3GEO.temaAtivo != ""){ i3GEO.php.listaItensTema(i3GEOF.etiqueta.montaListaItens,i3GEOF.etiqueta.tema); } }, pegaDadosEtiquetas: function(funcao){ var cp = new cpaint(), p; p = i3GEO.configura.locaplic+"/ferramentas/etiqueta/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=pegaDadosEtiquetas&tema="+i3GEOF.etiqueta.tema; cp.set_response_type("JSON"); cp.call(p,"etiqueta",funcao); }, /* Function: montaListaItens Monta a lista de itens que poderão ser escolhidos para compor o mapa. A lista é inserida no elemento html com id "i3GEOetiquetalistai" @TODO verificar quando um item ja esta na lista e marca-lo no checkbox */ montaListaItens: function(retorno){ var funcao = function(dadosItens){ var mustache = [], ins,i,n,itensatuais,item, ck = '',lista, temp; lista = dadosItens.data; try{ itensatuais = i3GEO.arvoreDeCamadas.pegaTema(i3GEO.temaAtivo); itensatuais = itensatuais.etiquetas.split(","); n = retorno.data.valores.length; for (i=0;i */ ativa: function(){ try{ if(i3GEOF.etiqueta.aguarde.visibility === "visible") {return;} var lista = i3GEOF.etiqueta.pegaItensMarcados(), cp = new cpaint(), temp, p; i3GEOF.etiqueta.aguarde.visibility = "visible"; temp = function(retorno){ i3GEOF.etiqueta.aguarde.visibility = "hidden"; i3GEO.atualiza(retorno); i3GEO.php.listaItensTema(i3GEOF.etiqueta.montaListaItens,i3GEO.temaAtivo); }; p = i3GEO.configura.locaplic+"/ferramentas/etiqueta/exec.php?g_sid=" + i3GEO.configura.sid + "&funcao=ativaEtiquetas&tema=" + i3GEOF.etiqueta.tema + "&tips="+lista[0].toString(",") + "&itens="+lista[1].toString(",") //+ "&itensdesc="+i3GEO.util.base64encode(lista[2].toString(",")) //+ "&itenslink="+i3GEO.util.base64encode(lista[3].toString(",")) + "&itensdesc="+lista[2].toString(",") + "&itenslink="+lista[3].toString(",") + "&itembuscarapida="+lista[4] + "&utfdata="+lista[5]; cp.set_response_type("JSON"); cp.set_transfer_mode('POST'); cp.call(p,"etiqueta",temp); }catch(e){i3GEO.janela.tempoMsg("Erro: "+e);i3GEOF.etiqueta.aguarde.visibility = "hidden";} }, /* Function: desativa Desativa as etiqueta do tema ativo Veja: */ desativa: function(){ try{ if(i3GEOF.etiqueta.aguarde.visibility === "visible") {return;} var cp = new cpaint(), temp, p; i3GEOF.etiqueta.aguarde.visibility = "visible"; temp = function(retorno){ i3GEOF.etiqueta.aguarde.visibility = "hidden"; i3GEO.atualiza(retorno); }; p = i3GEO.configura.locaplic+"/ferramentas/etiqueta/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=removeEtiquetas&tema="+i3GEOF.etiqueta.tema; cp.set_response_type("JSON"); cp.call(p,"etiqueta",temp); }catch(e){i3GEO.janela.tempoMsg("Erro: "+e);i3GEOF.etiqueta.aguarde.visibility = "hidden";} } };