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 158  
159 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 169 Classe: i3GEO.analise.medeDistancia
... ...
classesjs/classe_util.js
... ... @@ -1207,7 +1207,7 @@ i3GEO.util = {
1207 1207 /*
1208 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 1212 Parametros:
1213 1213  
... ... @@ -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 1344 Function: proximoAnterior
1296 1345  
1297 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   -<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 0 \ No newline at end of file
ferramentas/agrupaelementos/index.js
... ... @@ -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 @@
  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 225 \ No newline at end of file
... ...
ferramentas/buffer/index.js.php
... ... @@ -181,7 +181,7 @@ i3GEOF.buffer = {
181 181 $i("i3GEObufferSelTemas").style.display = "block";
182 182 if ($i("i3GEObuffertemasComSel")){
183 183 $i("i3GEObuffertemasComSel").onchange = function(){
184   - i3GEO.temaAtivo = $i("i3GEOanalisageometriastemasLigados").value;
  184 + i3GEO.temaAtivo = $i("i3GEObuffertemasComSel").value;
185 185 };
186 186 }
187 187 if(i3GEO.temaAtivo !== ""){
... ...
ferramentas/funcoes.js
... ... @@ -243,6 +243,7 @@ function combocor(id,def,s)
243 243 }
244 244 //
245 245 //monta combo com os itens de um unico tema
  246 +//i3GEO.util.comboItens
246 247 //
247 248 function comboitens(id,tema,funcao,onde,nome)
248 249 {
... ...
menutemas/admin.db
No preview for this file type