Commit 6433c01e62bf4d104fe3480f6bb4a3a9221924f1

Authored by Edmar Moretti
1 parent 8cb770a1

adaptação da ferramenta agrupaelementos para uso de script tag #133

classesjs/classe_analise.js
@@ -158,8 +158,12 @@ i3GEO.analise = { @@ -158,8 +158,12 @@ i3GEO.analise = {
158 158
159 Abre a janela que gera um tema poligonal agrupando elementos de um tema. 159 Abre a janela que gera um tema poligonal agrupando elementos de um tema.
160 */ 160 */
161 - agrupaElementos: function()  
162 - {i3GEO.janela.cria("400px","230px",i3GEO.configura.locaplic+"/ferramentas/agrupaelementos/index.htm","","","Agrupa <a class=ajuda_usuario target=_blank href='"+i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=25' >&nbsp;&nbsp;&nbsp;</a>");} 161 + agrupaElementos: function(){
  162 + if(typeof(i3GEOF.agrupaElementos) === 'undefined'){
  163 + var js = i3GEO.configura.locaplic+"/ferramentas/agrupaelementos/index.js.php";
  164 + i3GEO.util.scriptTag(js,"i3GEOF.agrupaElementos.criaJanelaFlutuante()","i3GEOF.agrupaElementos_script");
  165 + }
  166 + }
163 }, 167 },
164 /* 168 /*
165 Classe: i3GEO.analise.medeDistancia 169 Classe: i3GEO.analise.medeDistancia
classesjs/classe_util.js
@@ -1207,7 +1207,7 @@ i3GEO.util = { @@ -1207,7 +1207,7 @@ i3GEO.util = {
1207 /* 1207 /*
1208 Function: comboTemas 1208 Function: comboTemas
1209 1209
1210 - Cria um combo (caixa de seleção) com a lista de temas que estão visíveis no mapa 1210 + Cria um combo (caixa de seleção) com a lista de temas existentes no mapa e de determinado tipo
1211 1211
1212 Parametros: 1212 Parametros:
1213 1213
@@ -1292,6 +1292,55 @@ i3GEO.util = { @@ -1292,6 +1292,55 @@ i3GEO.util = {
1292 } 1292 }
1293 }, 1293 },
1294 /* 1294 /*
  1295 + Function: comboItens
  1296 +
  1297 + Cria um combo (caixa de seleção) com a lista de itens de um layer
  1298 +
  1299 + Parametros:
  1300 +
  1301 + id {String} - id do elemento select que será criado
  1302 +
  1303 + tema {String} - código do tema (layer)
  1304 +
  1305 + funcao {Function} - função que será executada ao terminar a montagem do combo. Essa função receberá
  1306 + como parâmetros um Array associativo contendo os dados em HTML gerados e o tipo de resultado. P.ex.:
  1307 + {dados:comboTemas,tipo:"dados"}
  1308 + tipo será uma string que pode ser "dados"|"mensagem"|"erro" indicando o tipo de retorno.
  1309 +
  1310 + onde {String} - id do elemento HTML que receberá o combo. É utilizado apenas para inserir uma mensagem de aguarde.
  1311 +
  1312 + nome {String} - valor que será incluido no parametro "name" do elemento "select".
  1313 + */
  1314 + comboItens: function(id,tema,funcao,onde,nome){
  1315 + if (arguments.length > 3)
  1316 + {$i(onde).innerHTML="<span style=color:red;font-size:10px; >buscando itens...</span>";}
  1317 + if (arguments.length != 5)
  1318 + {nome = "";}
  1319 +
  1320 + var monta = function(retorno)
  1321 + {
  1322 + var ins,temp,i;
  1323 + if (retorno.data != undefined){
  1324 + ins = [];
  1325 + ins.push("<select id='"+id+"' name='"+nome+"'>");
  1326 + ins.push("<option value='' >---</option>");
  1327 + temp = retorno.data.valores.length;
  1328 + for (i=0;i<temp; i++){
  1329 + if (retorno.data.valores[i].tema == tema)
  1330 + {ins.push("<option value='"+retorno.data.valores[i].item+"' >"+retorno.data.valores[i].item+"</option>");}
  1331 + }
  1332 + ins.push("</select>");
  1333 + ins = ins.join('');
  1334 + temp = {dados:ins,tipo:"dados"};
  1335 + }
  1336 + else{
  1337 + temp = {dados:'<div class=erro >Ocorreu um erro</div>',tipo:"erro"};
  1338 + }
  1339 + eval("funcao(temp)");
  1340 + }
  1341 + i3GEO.php.listaItensTema(monta,tema);
  1342 + },
  1343 + /*
1295 Function: proximoAnterior 1344 Function: proximoAnterior
1296 1345
1297 Cria uma sequência de opções com botão de anterior e próximo. É utilizado principalmente pelas 1346 Cria uma sequência de opções com botão de anterior e próximo. É utilizado principalmente pelas
ferramentas/agrupaelementos/index.htm
@@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
1 -<html>  
2 -<head>  
3 -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">  
4 -<link rel="stylesheet" type="text/css" href="../../css/i3geo_ferramentas.css">  
5 -<style type="text/css" >.yuibutton button{padding-left:2em;background:url(../../imagens/tic.png) 5% 50% no-repeat;}</style>  
6 -<title></title>  
7 -</head>  
8 -<body name="ancora" class="yui-skin-sam">  
9 -<div style="top:0px;left:0px;display:block;width:95%;" id='resultado' >  
10 -</div>  
11 -<div style="top:10px;left:0px;display:block;width:95%;color:red" id='fim' >  
12 -</div>  
13 -<script src="../i3geo_tudo_compacto.js.php" type="text/javascript"></script>  
14 -<script language="JavaScript" type="text/javascript" src="index.js"></script>  
15 -</body>  
16 -</html>  
17 \ No newline at end of file 0 \ No newline at end of file
ferramentas/agrupaelementos/index.js
@@ -1,93 +0,0 @@ @@ -1,93 +0,0 @@
1 -/*  
2 -About: Licença  
3 -  
4 -I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet  
5 -  
6 -Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil  
7 -Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br  
8 -  
9 -Este programa é software livre; você pode redistribuí-lo  
10 -e/ou modificá-lo sob os termos da Licença Pública Geral  
11 -GNU conforme publicada pela Free Software Foundation;  
12 -tanto a versão 2 da Licença.  
13 -Este programa é distribuído na expectativa de que seja útil,  
14 -porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita  
15 -de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.  
16 -Consulte a Licença Pública Geral do GNU para mais detalhes.  
17 -Você deve ter recebido uma cópia da Licença Pública Geral do  
18 -GNU junto com este programa; se não, escreva para a  
19 -Free Software Foundation, Inc., no endereço  
20 -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.  
21 -*/  
22 -//inicializa  
23 -parametrosURL()  
24 -ins = ""  
25 -tema = ""  
26 -comboTemasSel("temasComSel",function(retorno){comboTemas = retorno.dados})  
27 -t0()  
28 -  
29 -function t0()  
30 -{  
31 - ins = "<p>Essa ferramenta transforma v&aacute;rios elementos selecionados de um tema em um s&oacute; criando pol&iacute;gonos agrupados."  
32 - ins += "Para definir quais elementos devem ser unidos uns com os outros &eacute; preciso escolher um item da tabela de atributos do tema."  
33 - ins += "Os elementos que possu&iacute;rem o mesmo valor ser&atilde;o considerados no mesmo grupo e suas divisas eliminadas. Caso n&atilde; tenha sido escolhido nenhum item, todas os elementos ser&atilde;o agrupados em um s&oacute;"  
34 - ins += "<p>O resultado final ser&aacute; um novo tema com pol&iacute;gonos diferentes dos originais e cuja tabela de atributos conter&aacute; apenas o item escolhido."  
35 - mostraOpcao("","t1()",ins,"t0")  
36 -}  
37 -function t1()  
38 -{  
39 - ins = "Tema que cont&eacute;m os elementos (pelo menos um elemento deve estar selecionado):<br>"  
40 - ins += comboTemas  
41 - mostraOpcao("t0()","t2()",ins,"t1")  
42 -}  
43 -function t2()  
44 -{  
45 - ins = "Escolha o item da tabela de atributos do tema que ser&aacute; utilizado para agregar. (opcional)"  
46 - var tema = $i("temasComSel").value  
47 - comboitens("selItem",tema,function(retorno)  
48 - {  
49 - var combo = retorno.dados  
50 - if(retorno.tipo == "erro")  
51 - {ins += "<br><br><span style='color:red'>erro ao ler os itens do tema de origem</span><br><br>";}  
52 - else  
53 - {  
54 - ins += "<br><br>"+combo;  
55 - mostraOpcao("t1()","t4()",ins,"t3")  
56 - }  
57 - })  
58 -}  
59 -function t4()  
60 -{  
61 - ins = "O tema com os pol&iacute;gonos novos ser&aacute; adicionado ao mapa atual."  
62 - ins += "<br><br><div onclick='calcula()' style='text-align:left;left:0px'><input id=botao1 size=18 class=executar type='buttom' value='Continuar' /></div>"  
63 - mostraOpcao("t3()","",ins,"t4")  
64 - YAHOO.example.init = function ()  
65 - {  
66 - function onPushButtonsMarkupReady()  
67 - {new YAHOO.widget.Button("botao1");}  
68 - YAHOO.util.Event.onContentReady("botao1", onPushButtonsMarkupReady);  
69 - }()  
70 -}  
71 -function calcula()  
72 -{  
73 - $i("fim").innerHTML ="";  
74 - var tema = $i("temasComSel").value  
75 - var item = $i("selItem").value  
76 - if(tema == ""){alert("Escolha um tema.");return;}  
77 - //if(item == ""){alert("Escolha um item.");return;}  
78 - aguarde("block")  
79 - var fim = function(retorno)  
80 - {  
81 - aguarde("none");  
82 - if (retorno.data==undefined )  
83 - {$i("fim").innerHTML = "Erro. A operação demorou muito.";}  
84 - else  
85 - {window.parent.i3GEO.atualiza("");}  
86 - }  
87 - var p = g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=agrupaElementos&tema="+tema+"&item="+item  
88 - var cp = new cpaint();  
89 - //cp.set_debug(2);  
90 - cp.set_response_type("JSON");  
91 - //cp.set_persistent_connection(true);  
92 - cp.call(p,"agrupaElementos",fim);  
93 -}  
ferramentas/agrupaelementos/index.js.php 0 → 100644
@@ -0,0 +1,224 @@ @@ -0,0 +1,224 @@
  1 +<?php if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header("Content-type: text/javascript"); ?>
  2 +/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: true */
  3 +
  4 +/*
  5 +About: Licença
  6 +
  7 +I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  8 +
  9 +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
  10 +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
  11 +
  12 +Este programa é software livre; você pode redistribuí-lo
  13 +e/ou modificá-lo sob os termos da Licença Pública Geral
  14 +GNU conforme publicada pela Free Software Foundation;
  15 +tanto a versão 2 da Licença.
  16 +Este programa é distribuído na expectativa de que seja útil,
  17 +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
  18 +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
  19 +Consulte a Licença Pública Geral do GNU para mais detalhes.
  20 +Você deve ter recebido uma cópia da Licença Pública Geral do
  21 +GNU junto com este programa; se não, escreva para a
  22 +Free Software Foundation, Inc., no endereço
  23 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  24 +*/
  25 +if(typeof(i3GEOF) === 'undefined'){
  26 + i3GEOF = [];
  27 +}
  28 +/*
  29 +Class: i3GEOF.agrupaElementos
  30 +
  31 +Agrupa elementos selecionados de um tema e gera um novo tema.
  32 +*/
  33 +i3GEOF.agrupaElementos = {
  34 + /*
  35 + Variavel: aguarde
  36 +
  37 + Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela.
  38 + */
  39 + aguarde: "",
  40 + /*
  41 + Function: inicia
  42 +
  43 + Inicia a ferramenta. É chamado por criaJanelaFlutuante
  44 +
  45 + Parametro:
  46 +
  47 + iddiv {String} - id do div que receberá o conteudo HTML da ferramenta
  48 + */
  49 + inicia: function(iddiv){
  50 + try{
  51 + $i(iddiv).innerHTML += i3GEOF.agrupaElementos.html();
  52 + i3GEOF.agrupaElementos.t0();
  53 + }
  54 + catch(erro){alert(erro);}
  55 + },
  56 + /*
  57 + Function: html
  58 +
  59 + Gera o código html para apresentação das opções da ferramenta
  60 +
  61 + Retorno:
  62 +
  63 + String com o código html
  64 + */
  65 + html:function(){
  66 + var ins = '';
  67 + ins += '<div style="top:0px;left:0px;display:block;width:98%;" id="i3GEOagrupaelementosresultado" >';
  68 + ins += '</div>';
  69 + ins += '<div style="top:10px;left:0px;display:block;width:98%;color:red" id="i3GEOagrupaelementosfim" >';
  70 + ins += '</div>';
  71 + return ins;
  72 + },
  73 + /*
  74 + Function: criaJanelaFlutuante
  75 +
  76 + Cria a janela flutuante para controle da ferramenta.
  77 + */
  78 + criaJanelaFlutuante: function(){
  79 + var minimiza,cabecalho,janela,divid,temp,titulo;
  80 + //cria a janela flutuante
  81 + titulo = "Agrupa <a class=ajuda_usuario target=_blank href='" + i3GEO.configura.locaplic + "/ajuda_usuario.php?idcategoria=3&idajuda=25' >&nbsp;&nbsp;&nbsp;</a>";
  82 + cabecalho = function(){};
  83 + minimiza = function(){
  84 + var temp = $i("i3GEOF.agrupaElementos_corpo");
  85 + if(temp){
  86 + if(temp.style.display === "block")
  87 + {temp.style.display = "none";}
  88 + else
  89 + {temp.style.display = "block";}
  90 + }
  91 + };
  92 + janela = i3GEO.janela.cria(
  93 + "400px",
  94 + "240px",
  95 + "",
  96 + "",
  97 + "",
  98 + titulo,
  99 + "i3GEOF.agrupaElementos",
  100 + false,
  101 + "hd",
  102 + cabecalho,
  103 + minimiza
  104 + );
  105 + divid = janela[2].id;
  106 + i3GEOF.agrupaElementos.aguarde = $i("i3GEOF.agrupaElementos_imagemCabecalho").style;
  107 + i3GEOF.agrupaElementos.inicia(divid);
  108 + },
  109 + t0: function()
  110 + {
  111 + var ins = "<p class='paragrafo' >Essa ferramenta transforma v&aacute;rios elementos selecionados de um tema em um s&oacute; gerando um pol&iacute;gono para cada grupo.";
  112 + ins += "<p class='paragrafo' >Para definir quais elementos devem ser unidos uns com os outros &eacute; preciso escolher um item da tabela de atributos do tema.";
  113 + ins += "Os elementos que possu&iacute;rem o mesmo valor ser&atilde;o considerados no mesmo grupo. Caso n&atilde; tenha sido escolhido nenhum item, todas os elementos ser&atilde;o agrupados em um s&oacute;";
  114 + ins += "<p class='paragrafo' >O resultado final ser&aacute; um novo tema com elementos diferentes dos originais e cuja tabela de atributos conter&aacute; apenas o item escolhido.";
  115 + i3GEO.util.proximoAnterior("","i3GEOF.agrupaElementos.t1()",ins,"i3GEOFgradeDePontost0","i3GEOagrupaelementosresultado");
  116 + },
  117 + t1: function(){
  118 + var ins = "<p class='paragrafo' >Tema que cont&eacute;m os elementos (pelo menos um elemento deve estar selecionado):<br>";
  119 + ins += "<div id='i3GEOagrupaelementosSelTemas' style='text-align:left;font-size:11px'></div>";
  120 + i3GEO.util.proximoAnterior("i3GEOF.agrupaElementos.t0()","i3GEOF.agrupaElementos.t2()",ins,"i3GEOF.agrupaElementos.t1","i3GEOagrupaelementosresultado");
  121 + i3GEOF.agrupaElementos.comboTemasSel();
  122 + },
  123 + t2: function(){
  124 + var ins = "<p class='paragrafo' >Escolha o item da tabela de atributos que ser&aacute; utilizado para agregar. (opcional)";
  125 + ins += "<div id='i3GEOagrupaelementosSelItens' style='text-align:left;font-size:11px;'></div>";
  126 + i3GEO.util.proximoAnterior("i3GEOF.agrupaElementos.t1()","i3GEOF.agrupaElementos.t3()",ins,"i3GEOF.agrupaElementos.t2","i3GEOagrupaelementosresultado");
  127 + $i("i3GEOagrupaelementosSelItens").style.display = "block";
  128 + i3GEOF.agrupaElementos.comboItensSel();
  129 + },
  130 + t3: function(){
  131 + var ins = "<p class='paragrafo'>O tema com o agrupamento ser&aacute; adicionado ao mapa atual.";
  132 + ins += "<br><br><input id=i3GEOagrupaelementosbotao1 type='buttom' value='Criar agrupamento' />";
  133 + i3GEO.util.proximoAnterior("i3GEOF.agrupaElementos.t2()","",ins,"i3GEOF.agrupaElementos.t3","i3GEOagrupaelementosresultado");
  134 + new YAHOO.widget.Button(
  135 + "i3GEOagrupaelementosbotao1",
  136 + {onclick:{fn: i3GEOF.agrupaElementos.criaAgrupamento}}
  137 + );
  138 + },
  139 + /*
  140 + Function: criaBuffer
  141 +
  142 + Cria a grade e adiciona um novo tema ao mapa
  143 + */
  144 + criaAgrupamento: function(){
  145 + try{
  146 + if(i3GEOF.agrupaElementos.aguarde.visibility === "visible")
  147 + {return;}
  148 + var item = $i("i3GEOagrupaelementosselItem").value,
  149 + tema = $i("i3GEOagrupaelementostemasComSel").value,
  150 + p,
  151 + fim,
  152 + cp;
  153 + if (tema !== "")
  154 + {
  155 + i3GEOF.agrupaElementos.aguarde.visibility = "visible";
  156 + fim = function(retorno){
  157 + i3GEOF.agrupaElementos.aguarde.visibility = "hidden";
  158 + if (retorno.data === undefined )
  159 + {$i("i3GEOagrupaelementosfim").innerHTML = "Erro. A operação demorou muito.";}
  160 + else
  161 + {i3GEO.atualiza();}
  162 + };
  163 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=agrupaElementos&tema="+tema+"&item="+item;
  164 + cp = new cpaint();
  165 + cp.set_response_type("JSON");
  166 + cp.call(p,"agrupaElementos",fim);
  167 + }
  168 + else
  169 + {alert("Tema invalido");}
  170 + }
  171 + catch(e){$i("i3GEOagrupaelementosfim").innerHTML = "<p class='paragrafo' >Erro. "+e;i3GEO.janela.fechaAguarde();i3GEOF.agrupaElementos.aguarde.visibility = "hidden";}
  172 + },
  173 + /*
  174 + Function: comboTemasSel
  175 +
  176 + Cria um combo com a lista de temas com elementos selecionados
  177 + */
  178 + comboTemasSel: function(){
  179 + i3GEO.util.comboTemas(
  180 + "i3GEOagrupaelementostemasComSel",
  181 + function(retorno){
  182 + $i("i3GEOagrupaelementosSelTemas").innerHTML = retorno.dados;
  183 + $i("i3GEOagrupaelementosSelTemas").style.display = "block";
  184 + if ($i("i3GEOagrupaelementostemasComSel")){
  185 + $i("i3GEOagrupaelementostemasComSel").onchange = function(){
  186 + i3GEO.temaAtivo = $i("i3GEOagrupaelementostemasComSel").value;
  187 + };
  188 + }
  189 + if(i3GEO.temaAtivo !== ""){
  190 + $i("i3GEOagrupaelementostemasComSel").value = i3GEO.temaAtivo;
  191 + $i("i3GEOagrupaelementostemasComSel").onchange.call();
  192 + }
  193 + },
  194 + "i3GEOagrupaelementosSelTemas",
  195 + "",
  196 + false,
  197 + "selecionados"
  198 + );
  199 + },
  200 + /*
  201 + Function: comboItensSel
  202 +
  203 + Cria um combo para selecionar os itens do tema escolhido
  204 + */
  205 + comboItensSel: function(){
  206 + var tema = $i("i3GEOagrupaelementostemasComSel").value;
  207 + i3GEO.util.comboItens(
  208 + "i3GEOagrupaelementosselItem",
  209 + tema,
  210 + function(retorno){
  211 + var combo = retorno.dados;
  212 + if(retorno.tipo === "erro"){
  213 + $i("i3GEOagrupaelementosSelItens").innerHTML = "<br><br><span style='color:red'>erro ao ler os itens do tema de origem</span><br><br>";
  214 + }
  215 + else{
  216 + $i("i3GEOagrupaelementosSelItens").innerHTML = retorno.dados;
  217 + }
  218 + },
  219 + "i3GEOagrupaelementosSelItens",
  220 + ""
  221 + );
  222 + }
  223 +};
  224 +<?php if(extension_loaded('zlib')){ob_end_flush();}?>
0 \ No newline at end of file 225 \ No newline at end of file
ferramentas/buffer/index.js.php
@@ -181,7 +181,7 @@ i3GEOF.buffer = { @@ -181,7 +181,7 @@ i3GEOF.buffer = {
181 $i("i3GEObufferSelTemas").style.display = "block"; 181 $i("i3GEObufferSelTemas").style.display = "block";
182 if ($i("i3GEObuffertemasComSel")){ 182 if ($i("i3GEObuffertemasComSel")){
183 $i("i3GEObuffertemasComSel").onchange = function(){ 183 $i("i3GEObuffertemasComSel").onchange = function(){
184 - i3GEO.temaAtivo = $i("i3GEOanalisageometriastemasLigados").value; 184 + i3GEO.temaAtivo = $i("i3GEObuffertemasComSel").value;
185 }; 185 };
186 } 186 }
187 if(i3GEO.temaAtivo !== ""){ 187 if(i3GEO.temaAtivo !== ""){
ferramentas/funcoes.js
@@ -243,6 +243,7 @@ function combocor(id,def,s) @@ -243,6 +243,7 @@ function combocor(id,def,s)
243 } 243 }
244 // 244 //
245 //monta combo com os itens de um unico tema 245 //monta combo com os itens de um unico tema
  246 +//i3GEO.util.comboItens
246 // 247 //
247 function comboitens(id,tema,funcao,onde,nome) 248 function comboitens(id,tema,funcao,onde,nome)
248 { 249 {
menutemas/admin.db
No preview for this file type