From adeb30ea38fc8c7c81cb06251072c8cec650f012 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 6 Dec 2010 14:18:35 +0000 Subject: [PATCH] Opção para mudar cor da legenda diretamente na lista de classes da ferramenta de edição da legenda --- admin/admin.db | Bin 70656 -> 0 bytes classesjs/classe_arvoredecamadas.js | 4 +++- classesjs/classe_barradebotoes.js | 2 -- classesjs/classe_guias.js | 2 +- classesjs/classe_i3geo.js | 2 ++ classesjs/dicionario.js | 7 +++++++ classesphp/classe_alteraclasse.php | 26 +++++++++++++++++++++++++- classesphp/classe_selecao.php | 49 ++++++++++++++++++++++++++++++++++++++++++------- classesphp/mapa_controle.php | 2 ++ classesphp/pega_variaveis.php | 10 +++++----- ferramentas/colorpicker/index.htm | 4 ++++ ferramentas/legenda/index.js.php | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- ferramentas/selecao/index.js.php | 5 +++-- 13 files changed, 144 insertions(+), 28 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 29e64fb..1d8f8d3 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/classesjs/classe_arvoredecamadas.js b/classesjs/classe_arvoredecamadas.js index a636e8a..b49775d 100644 --- a/classesjs/classe_arvoredecamadas.js +++ b/classesjs/classe_arvoredecamadas.js @@ -775,11 +775,13 @@ i3GEO.arvoreDeCamadas = { i3GEO.arvoreDeCamadas.adicionaOpcaoTema($trad("t37"),$trad("t37"),'i3GEO.tema.dialogo.graficotema(\"'+ltema.name+'\")',node); } } + //essas opções foram migradas para o editor de legenda + /* temp = $trad("p18"); if(ltema.classe.toLowerCase() == "nao") {temp = $trad("p17");} i3GEO.arvoreDeCamadas.adicionaOpcaoTema($trad("p19"),temp,'i3GEO.tema.invertestatuslegenda(\"'+ltema.name+'\")',node); - + */ if (ltema.type < 4){ i3GEO.arvoreDeCamadas.adicionaOpcaoTema($trad("t32"),$trad("t33"),'i3GEO.tema.dialogo.editaLegenda(\"'+ltema.name+'\")',node); } diff --git a/classesjs/classe_barradebotoes.js b/classesjs/classe_barradebotoes.js index bfac776..7e711c1 100644 --- a/classesjs/classe_barradebotoes.js +++ b/classesjs/classe_barradebotoes.js @@ -510,8 +510,6 @@ i3GEO.barraDeBotoes = { */ inicializaBarra:function(idconteudo,idconteudonovo,barraZoom,x,y,onde){ if(typeof(console) !== 'undefined'){console.info("i3GEO.barraDeBotoes.inicializaBarra()");} - if(i3GEO.util.pegaCookie("botoesAjuda") == "nao") - {i3GEO.barraDeBotoes.AJUDA = false;} if(i3GEO.barraDeBotoes.TEMPLATEBOTAO === "") {i3GEO.barraDeBotoes.TEMPLATEBOTAO = "

 

";} var tipo,mostra,numerobotoes = 0,i,temp,elementos,nelementos = 0,e,wj,recuo,novoel,alturadisponivel,n,chaves,re,estilo; diff --git a/classesjs/classe_guias.js b/classesjs/classe_guias.js index b55694e..6fc5bd4 100644 --- a/classesjs/classe_guias.js +++ b/classesjs/classe_guias.js @@ -90,7 +90,7 @@ i3GEO.guias = { click:"" }, "adiciona":{ - titulo:"+"+$trad("g1"), + titulo:$trad("g1a"), id:"guia2", idconteudo:"guia2obj", click: function(){ diff --git a/classesjs/classe_i3geo.js b/classesjs/classe_i3geo.js index 965b7e9..c1e25bd 100644 --- a/classesjs/classe_i3geo.js +++ b/classesjs/classe_i3geo.js @@ -300,6 +300,8 @@ i3GEO = { // if(document.getElementById("ajuda")) //para efeitos de compatibilidade com as versões anteriores a 4.1 {i3GEO.ajuda.DIVAJUDA = "ajuda";} + if(i3GEO.util.pegaCookie("botoesAjuda") == "nao") + {i3GEO.barraDeBotoes.AJUDA = false;} abreJM = "sim"; if(i3GEO.util.pegaCookie("g_janelaMen")){ abreJM = i3GEO.util.pegaCookie("g_janelaMen"); diff --git a/classesjs/dicionario.js b/classesjs/dicionario.js index 02fbae5..12dfaf1 100644 --- a/classesjs/dicionario.js +++ b/classesjs/dicionario.js @@ -889,6 +889,13 @@ en:"Layer", es:"Temas", it:"Temi" }], +"g1a":[ +{ +pt:"Catálogo", +en:"Catalog", +es:"Catalogo", +it:"Catalog" +}], "g2":[ { pt:"Adiciona", diff --git a/classesphp/classe_alteraclasse.php b/classesphp/classe_alteraclasse.php index d919468..666a3a1 100644 --- a/classesphp/classe_alteraclasse.php +++ b/classesphp/classe_alteraclasse.php @@ -9,7 +9,7 @@ Licenca: GPL2 -I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet +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@mma.gov.br @@ -456,6 +456,30 @@ Adiciona opacidade variável de 0 a 100 conforme o número de classes return("ok"); } /* +function: alteracor + +Aplica uma nova cor aos estilos de uma classe + +*/ + function alteracor($idclasse,$cor) + { + error_reporting(E_ALL); + if(!$this->layer){return "erro";} + $numclasses = $this->layer->numclasses; + $cor = str_replace(" ",",",$cor); + $cor = explode(",",$cor); + $classe = $this->layer->getclass($idclasse); + $numestilos = $classe->numstyles; + for($j=0;$j<$numestilos;++$j) + { + $estilo = $classe->getstyle($j); + $ncor = $estilo->color; + $ncor->setrgb($cor[0],$cor[1],$cor[2]); + } + $this->layer->setMetaData("cache",""); + return("ok"); + } +/* function: alterageometria Altera a geometria de representação de todos os estilos de todas as classes de um layer diff --git a/classesphp/classe_selecao.php b/classesphp/classe_selecao.php index 9c1cdbf..a364f97 100644 --- a/classesphp/classe_selecao.php +++ b/classesphp/classe_selecao.php @@ -124,7 +124,7 @@ Seleciona os elementos de um tema baseado em um conjunto de pontos que formarão parameters: -$tipo - Tipo de operação adiciona|retira|inverte|limpa +$tipo - Tipo de operação adiciona|retira|inverte|limpa|novo $xs - lista de coordenadas x separadas por virgula @@ -134,6 +134,11 @@ $ys - lista de coordenadas y separadas por virgula { if(!$this->layer){return "erro";} $this->layer->set("tolerance",0); + if ($tipo == "novo") + { + $this->selecaoLimpa(); + $tipo = "adiciona" + } if ($tipo == "limpa") {return($this->selecaoLimpa());} if ($tipo == "inverte") @@ -190,12 +195,17 @@ parameters: $temao - Tema que será processado. -$tipo - Tipo de operação adiciona|retira|inverte|limpa +$tipo - Tipo de operação adiciona|retira|inverte|limpa|novo */ function selecaoTema($temao,$tipo) { if(!$this->layer){return "erro";} $this->layer->set("tolerance",0); + if ($tipo == "novo") + { + $this->selecaoLimpa(); + $tipo = "adiciona" + } if ($tipo == "limpa") {return($this->selecaoLimpa());} if ($tipo == "inverte") @@ -353,7 +363,7 @@ deve estar no padrão utilizado pelo mapserver. parameters: -$tipo - Tipo de operação adiciona|retira|inverte|limpa +$tipo - Tipo de operação adiciona|retira|inverte|limpa|novo $item - Item que será consultado. @@ -363,6 +373,11 @@ $valor - Valor. */ function selecaoAtributos($tipo,$item,$operador,$valor) { + if ($tipo == "novo") + { + $this->selecaoLimpa(); + $tipo = "adiciona" + } if ($tipo == "limpa") {return($this->selecaoLimpa());} if ($tipo == "inverte") @@ -435,10 +450,15 @@ $valor - Valor. $filtro - Expressão de seleção - $tipo - Tipo de operação adiciona|retira|inverte|limpa + $tipo - Tipo de operação adiciona|retira|inverte|limpa|novo */ function selecaoAtributos2($filtro,$tipo) { + if ($tipo == "novo") + { + $this->selecaoLimpa(); + $tipo = "adiciona" + } if ($tipo == "limpa") {return($this->selecaoLimpa());} if ($tipo == "inverte") @@ -497,10 +517,15 @@ parameters: $xy - X e Y separados por vírgula. -$tipo - Tipo de operação adiciona|retira|inverte|limpa +$tipo - Tipo de operação adiciona|retira|inverte|limpa|novo */ function selecaoPT($xy,$tipo,$tolerancia) { + if ($tipo == "novo") + { + $this->selecaoLimpa(); + $tipo = "adiciona" + } if ($tipo == "limpa") {return ($this->selecaoLimpa());} if ($tipo == "inverte") @@ -762,10 +787,15 @@ Seleciona por extensão geográfica. parameters: -$tipo - Tipo de operação adiciona|retira|inverte|limpa +$tipo - Tipo de operação adiciona|retira|inverte|limpa|novo */ function selecaoEXT($tipo) { + if ($tipo == "novo") + { + $this->selecaoLimpa(); + $tipo = "adiciona" + } if(!$this->layer){return "erro";} $this->layer->set("tolerance",0); if ($tipo == "limpa") @@ -814,12 +844,17 @@ Seleciona por retângulo. parameters: -$tipo - Tipo de operação adiciona|retira|inverte|limpa +$tipo - Tipo de operação adiciona|retira|inverte|limpa|novo $ext - coordenadas separadas por espaços no estilo xmin ymin xmax ymax */ function selecaoBOX($tipo,$ext) { + if ($tipo == "novo") + { + $this->selecaoLimpa(); + $tipo = "adiciona" + } if(!$this->layer){return "erro";} $this->layer->set("tolerance",0); if ($tipo == "limpa") diff --git a/classesphp/mapa_controle.php b/classesphp/mapa_controle.php index ea0e4d5..0aaf8b8 100644 --- a/classesphp/mapa_controle.php +++ b/classesphp/mapa_controle.php @@ -1414,6 +1414,8 @@ Altera uma classe de um tema, aplicando uma nova classificação ou modificando pa $projMapa = $m->mapa->getProjection(); $m->mapa->setProjection("init=epsg:4291"); } + if ($opcao == "alteracor") + {$retorno = $m->alteracor($idclasse,$cor);} if ($opcao == "adicionaopacidade") {$retorno = $m->adicionaopacidade();} if ($opcao == "alterageometria") diff --git a/classesphp/pega_variaveis.php b/classesphp/pega_variaveis.php index b370eb2..4b70f64 100644 --- a/classesphp/pega_variaveis.php +++ b/classesphp/pega_variaveis.php @@ -73,24 +73,24 @@ if (isset($_POST)) { foreach($_POST["cpaint_argument"] as $argumento_) { + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {$argumento_ = str_replace("\\\"","",$argumento_);} else {$argumento_ = str_replace("\"","",$argumento_);} + $argumento_ = explode('"',$argumento_); + $argumento_ = implode("&",$argumento_); $parametros_ = explode("&",$argumento_); foreach($parametros_ as $parametro_) { - //echo $parametro_; $p_ = explode("=",$parametro_); $parametro = $p_[0]; $p_ = array_slice($p_, 1, count($p_));; $valor = implode("=",$p_); - //echo $valor."
"; if($parametro != "") - eval("\$".$parametro."='".(strip_tags($valor))."';"); + eval("\$".$parametro."='".(strip_tags($valor))."';"); } - } - + } } } } diff --git a/ferramentas/colorpicker/index.htm b/ferramentas/colorpicker/index.htm index 263e61c..2581811 100644 --- a/ferramentas/colorpicker/index.htm +++ b/ferramentas/colorpicker/index.htm @@ -99,6 +99,10 @@ function aplicarCor() else {var ncor = "#"+document.getElementById("yui-picker-hex").value;} doc.getElementById(elemento).value = ncor; + try{ + doc.getElementById(elemento).onChange.call(); + } + catch(e){} window.parent.YAHOO.janelaCor.xp.panel.destroy(); } diff --git a/ferramentas/legenda/index.js.php b/ferramentas/legenda/index.js.php index 91f89a3..14c49b5 100644 --- a/ferramentas/legenda/index.js.php +++ b/ferramentas/legenda/index.js.php @@ -179,6 +179,9 @@ i3GEOF.legenda = { }, "i3GEOlegendaitens" ); + if(i3GEO.arvoreDeCamadas.pegaTema(i3GEOF.legenda.tema).classe.toLowerCase() == "nao") + {$i("i3GEOFlegendamostra").checked = false;} + $i("i3GEOFlegendamostra").onclick = function(){i3GEO.tema.invertestatuslegenda(i3GEOF.legenda.tema);}; } catch(erro){alert(erro);} }, @@ -199,25 +202,26 @@ i3GEOF.legenda = { '
  • Classes
  • '+ '
  • Editor
  • '+ '
  • Gráficos
  • '+ - '
  • Aplicar/exportar
  • '+ + '
  • Importar/exportar SLD
  • '+ ' '+ '
    '+ '
    '+ + '

    Mostra na legenda do mapa' + '

    '+ - ' ' + - ' ' + - '

    ' + + ' ' + + ' ' + + '

    ' + ' ' + ' ' + - ' ' + + ' ' + ' ' + ' ' + ' ' + ' ' + @@ -363,12 +367,14 @@ i3GEOF.legenda = { re, exp; if (retorno.data[0].proc === ""){ - ins.push("
    de:' + $inputText("","","i3GEOlegendaacori","",12,"0,0,0") + ' aquarela.gif ' + ' até:'+ - $inputText("","","i3GEOlegendaacorf","",12,"0,0,0") + + $inputText("","","i3GEOlegendaacorf","",12,"255,255,255") + ' aquarela.gif ' + '
    "); + ins.push("
    nomeexpressão
    "); for (i=0;i"); + ins.push(""); + ins.push("
    nomeexpressão
    "); + ins.push("
    "); ins.push($inputText("","","i3GEOlegendaid_"+id,"digite o novo nome",30,retorno.data[i].nomeclasse,"nome")); ins.push(""); ins.push($inputText("","","i3GEOlegendaid_"+id,"digite a nova expressão",30,exp,"expressao")); @@ -424,6 +430,41 @@ i3GEOF.legenda = { corj: function(obj) {i3GEO.util.abreCor("",obj);}, /* + Function: modificaCor + + Modifica a cor de uma classe + */ + modificaCor: function(id){ + if(!$i("tempCor")){ + var obj = document.createElement("input"); + obj.id = "tempCor"; + obj.style.display = "none"; + obj.type = "text"; + obj.value = ""; + document.body.appendChild(obj); + } + $i("tempCor").onChange = function(){ + eval('i3GEOF.legenda.aplicaNovaCor("'+id+'");'); + } + i3GEO.util.abreCor("","tempCor"); + }, + aplicaNovaCor: function(id){ + if(i3GEOF.legenda.aguarde.visibility === "visible") + {return;} + i3GEOF.legenda.aguarde.visibility = "visible"; + var retorna = function(){ + i3GEO.atualiza(); + i3GEO.Interface.atualizaTema("",i3GEOF.legenda.tema); + i3GEO.arvoreDeCamadas.atualizaLegenda(i3GEOF.legenda.tema); + i3GEOF.legenda.aguarde.visibility = "hidden"; + i3GEOF.legenda.mostralegenda(); + }; + var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=alteraclasse&opcao=alteracor&tema="+i3GEOF.legenda.tema+"&idclasse="+id+"&cor="+$i("tempCor").value, + cp = new cpaint(); + cp.set_response_type("JSON"); + cp.call(p,"",retorna); + }, + /* Function: mudaLegenda Altera a legenda conforme os valores existentes na tabela de propriedades (expressão e nome da classe) @@ -481,7 +522,7 @@ i3GEOF.legenda = { cp = new cpaint(); cp.set_transfer_mode('POST'); cp.set_response_type("JSON"); - cp.call(p,"alteraclassesPost",temp,"ids="+ids,"nomes="+nomes,"exps="+exps); + cp.call(p,"alteraclassesPost",temp,"ids="+ids+"&nomes="+nomes+"&exps="+exps); } catch(e){alert("Erro: "+ e);i3GEOF.legenda.aguarde.visibility = "hidden";} }, diff --git a/ferramentas/selecao/index.js.php b/ferramentas/selecao/index.js.php index d32f08f..88d5d6c 100644 --- a/ferramentas/selecao/index.js.php +++ b/ferramentas/selecao/index.js.php @@ -144,8 +144,9 @@ i3GEOF.selecao = { ' ' + ' ' + '  

    ' + '

    Temas:

    ' + '

    Distância utilizada ao selecionar por ponto (em metros):' + -- libgit2 0.21.2