Commit f96cb3d78eabfb46fafae492d956b33298616caf

Authored by Edmar Moretti
1 parent 9a8a23aa

Complementação da documentação e correção na opção de ativação de temas na árvor…

…e de menus. temas fora dos grupos/subgrupos não estavam sendo ativados corretamente
Showing 2 changed files with 138 additions and 24 deletions   Show diff stats
classesjs/configura.js
... ... @@ -576,9 +576,9 @@ es:"gráfico"
576 576 //guia adiciona
577 577 "a1":[
578 578 {
579   -pt:"procurar:",
580   -en:"search:",
581   -es:"Buscar:"
  579 +pt:"procurar tema no menu:",
  580 +en:"search layer:",
  581 +es:"Buscar datos:"
582 582 }],
583 583 "a2":[
584 584 {
... ...
classesjs/funcoes.js
... ... @@ -27,6 +27,8 @@ Free Software Foundation, Inc., no endereço
27 27 */
28 28 //
29 29 //verifica se $i existe, se não cria.
  30 +//isso é necessário nos casos em que funcoes.js é utilizado separadamente
  31 +//
30 32 try
31 33 {
32 34 $i("i3geo");
... ... @@ -39,7 +41,7 @@ catch(e)
39 41 /*
40 42 Function: $im
41 43  
42   -Retorna o caminho correto de uma imagem.
  44 +Retorna o caminho correto de uma imagem incluindo o endereço da aplicação e do visual em uso.
43 45  
44 46 Exemplo: $im("imagem.png")
45 47  
... ... @@ -56,7 +58,7 @@ $im = function(g)
56 58 /*
57 59 Function $inputText
58 60  
59   -Cria um elemento html do tipo input text
  61 +Cria um elemento html do tipo input text com formatação especial.
60 62  
61 63 Parameters:
62 64  
... ... @@ -131,7 +133,7 @@ $left = function(id,valor)
131 133 /*
132 134 Function: trataErro
133 135  
134   -Trata o erro de um try cacth.
  136 +Fecha o objeto aguarde quando ocorre um erro.
135 137 */
136 138 function trataErro()
137 139 {
... ... @@ -176,6 +178,13 @@ function pCookie(nome)
176 178 /*
177 179 Section: interface
178 180 */
  181 +/*
  182 +Function: sobeferramentas
  183 +
  184 +Sobe a pilha de ícones na barra de ferramentas.
  185 +
  186 +Utilizado na barra de ferramentas 2.
  187 +*/
179 188 function sobeferramentas()
180 189 {
181 190 if($i("maisBotoes2"))
... ... @@ -217,8 +226,14 @@ function sobeferramentas()
217 226 mostra.style.display="none";
218 227 }
219 228 }
220   -
221 229 }
  230 +/*
  231 +Function: desceferramentas
  232 +
  233 +Desce a pilha de ícones na barra de ferramentas.
  234 +
  235 +Utilizado na barra de ferramentas 2.
  236 +*/
222 237 function desceferramentas()
223 238 {
224 239 var tipo = "inline";
... ... @@ -261,13 +276,17 @@ function desceferramentas()
261 276 }
262 277 }
263 278 /*
264   -Function: trocallingua
  279 +Function: trocalingua
265 280  
266 281 Troca a linguagem atual.
267 282  
  283 +O código atual da linguagem é armazenado em um Cookie. Essa função troca o valor do Cookie e redesenha o mapa.
  284 +
  285 +A troca de linguagem é ativada pelo clique nas bandeiras inseridas na parte superior do menu suspenso.
  286 +
268 287 Parameters:
269 288  
270   -lingua
  289 +l - código da lingua
271 290 */
272 291 function trocalingua(l)
273 292 {
... ... @@ -282,6 +301,10 @@ function trocalingua(l)
282 301 Function: criaContainerRichdraw
283 302  
284 303 Cria os elementos dom necessários ao uso das funções de desenho sobre o mapa.
  304 +
  305 +Richdraw é uma biblioteca utilizada pelo i3geo para abstrair as diferenças entre as linguagens svg e vml.
  306 +
  307 +Essa abstração é necessária devido às diferenças entre os navegadores.
285 308 */
286 309 function criaContainerRichdraw()
287 310 {
... ... @@ -291,12 +314,19 @@ function criaContainerRichdraw()
291 314 //cria o container para uso da função de desenho usando
292 315 //svg ou vml
293 316 //esse container é sobreposto exatamente sobre o mapa
  317 + //O id do containner é divGeometriasTemp
294 318 //
295 319 if (!$i("divGeometriasTemp"))
296 320 {
  321 + //
  322 + //pega a posição da imagem do mapa para posicionar corretamente o container
  323 + //
297 324 var pos = [0,0];
298 325 if($i("img"))
299 326 var pos = pegaPosicaoObjeto($i("img"));
  327 + //
  328 + //cria o container
  329 + //
300 330 var novoel = document.createElement("div");
301 331 novoel.id = "divGeometriasTemp";
302 332 var ne = novoel.style;
... ... @@ -311,6 +341,9 @@ function criaContainerRichdraw()
311 341 ne.left=pos[0];
312 342 document.body.appendChild(novoel);
313 343 }
  344 + //
  345 + //como o container já poderia ter sido criado antes é necessário esvaziá-lo
  346 + //
314 347 var divgeo = $i("divGeometriasTemp");
315 348 divgeo.innerHTML = "";
316 349 var renderer;
... ... @@ -318,12 +351,8 @@ function criaContainerRichdraw()
318 351 //cria o objeto renderer conforme o browser em uso
319 352 //esse objeto será utilizado nas funções de desenho
320 353 //mais detalhes, veja em pacotes/richdraw
  354 + //Conforme a resposta do navegador, utiliza-se a criação VML ou SVG
321 355 //
322   - /*
323   - if(navm){renderer = new VMLRenderer();}
324   - else {renderer = new SVGRenderer();}
325   - richdraw = new RichDrawEditor(divgeo, renderer);
326   - */
327 356 try
328 357 {
329 358 renderer = new VMLRenderer();
... ... @@ -334,6 +363,9 @@ function criaContainerRichdraw()
334 363 renderer = new SVGRenderer();
335 364 richdraw = new RichDrawEditor(divgeo, renderer);
336 365 }
  366 + //
  367 + //definição dos símbolos default para os elementos gráficos
  368 + //
337 369 richdraw.editCommand('fillcolor', 'red');
338 370 richdraw.editCommand('linecolor', 'gray');
339 371 richdraw.editCommand('linewidth', '1px');
... ... @@ -352,7 +384,15 @@ function criaContainerRichdraw()
352 384 /*
353 385 Function: mudaVisual
354 386  
355   -Muda o visual do mapa atual
  387 +Muda o visual do mapa atual.
  388 +
  389 +Busca as imagens existentes na interface aberta e substituí pelas imagens existentes no diretório
  390 +correspondente ao visual selecionado.
  391 +
  392 +As imagens existentes no mapa são comparadas com as existentes no diretório i3geo/imagens/visual/<visual>
  393 +caso ocorra correspondência são então substituídas.
  394 +
  395 +A lista de visuais disponíveis é obtida na inicialização do i3geo e corresponde à lista de diretórios existentes em i3geo/imagens/visual
356 396  
357 397 Parameters:
358 398  
... ... @@ -360,11 +400,17 @@ visual - nome do novo visual. Obtido na inicialização do I3Geo e armazenado na v
360 400 */
361 401 function mudaVisual(visual)
362 402 {
  403 + //
  404 + //refaz o layout conforme os parâmetros obtidos da chamada ajax
  405 + //
363 406 var monta = function(retorno)
364 407 {
365 408 try
366 409 {
367 410 objaguarde.fecha("ajaxredesenha");
  411 + //
  412 + //pega todas as imagens da interface
  413 + //
368 414 var imgstemp = retorno.data.arquivos;
369 415 var imgs = new Array();
370 416 var i = imgstemp.length-1;
... ... @@ -435,6 +481,9 @@ function mudaVisual(visual)
435 481 }
436 482 catch(e){alert("Ocorreu um erro. mudaVisual"+e);objaguarde.fecha("ajaxredesenha");}
437 483 };
  484 + //
  485 + //pega a lista de imagens no diretório do i3geo correspondente ao visual selecionado
  486 + //
438 487 objaguarde.abre("ajaxredesenha",$trad("o1"));
439 488 var p = g_locaplic+"/classesphp/mapa_controle.php?funcao=listaArquivos&g_sid="+g_sid+"&diretorio=imagens/visual/"+visual;
440 489 cpObj.call(p,"mudaQS",monta);
... ... @@ -444,11 +493,17 @@ Function: initJanelaMen
444 493  
445 494 Abre a janela com as mensagens de ajuda ao usuário
446 495  
  496 +Quando essa janela estiver aberta, o resultado da função de etiquetas e de ajuda é mostrado nessa janela.
  497 +
  498 +Se o usuário fechar a janela de mensagens, é definido um cookie para controlar a abertura da janela ou não na próxima vez que oi3geo for utilizado.
447 499 */
448 500 function initJanelaMen()
449 501 {
450 502 try
451 503 {
  504 + //
  505 + //cria a janela flutuante caso não exista
  506 + //
452 507 if (!$i("janelaMen"))
453 508 {
454 509 var novoel = document.createElement("div");
... ... @@ -475,6 +530,9 @@ function initJanelaMen()
475 530 YAHOO.util.Event.addListener(YAHOO.janelaMen.xp.panel.close, "click", escondeMen);
476 531 iCookie("g_janelaMen","sim");
477 532 }
  533 + //
  534 + //abre a janela
  535 + //
478 536 YAHOO.janelaMen.xp.panel.show();
479 537 var pos = pegaPosicaoObjeto($i("img"));
480 538 YAHOO.janelaMen.xp.panel.moveTo(pos[0] - 267 ,objmapa.h - 70);
... ... @@ -484,7 +542,7 @@ function initJanelaMen()
484 542 /*
485 543 Function: docaguias
486 544  
487   -Coloca as guias de navegação em uma janela interna do mapa e altera o tamanho do mapa para ajustar o novo tamanho.
  545 +Coloca as guias de navegação em uma janela interna do mapa e altera o tamanho do mapa para ajustá-lo à nova situação.
488 546 */
489 547 function docaguias()
490 548 {
... ... @@ -544,7 +602,6 @@ function docaguias()
544 602 }
545 603 }
546 604 calcposf();
547   -
548 605 var temp = function()
549 606 {
550 607 //carrega janela
... ... @@ -591,6 +648,14 @@ Function: ativaGuias
591 648  
592 649 Ativa as guias principais do mapa, definindo as funções que serão executadas quando a guia é escolhida.
593 650  
  651 +Quando o usuário clica em uma guia, todas as guias são escondidas e a guia clicada é ativada.
  652 +
  653 +Algumas guias só são preenchidas quando o usuário clica nelas pela primeira vez.
  654 +
  655 +O preenchimento sob demanda dessas guias torna necessário a definição da função que será executada.
  656 +
  657 +Essas funções são definidas por default nas guias principais.
  658 +
594 659 As guias principais são definidas nos objetos
595 660  
596 661 objmapa.guiaTemas
... ... @@ -604,18 +669,26 @@ objmapa.guiaListaMapas
604 669 */
605 670 function ativaGuias()
606 671 {
607   - //ajusta as guias da versão antiga do YUI
608   - //pega o elemento onde estão os tabs
  672 + //ajusta as guias da versão antiga do YUI para a nova
  673 + //
  674 + //pega o elemento onde as guias serão colocadas
  675 + //
609 676 for(var g=0;g<12;g++)
610 677 {
611 678 if ($i("guia"+g))
612 679 var gpai = $i("guia"+g).parentNode;
613 680 }
  681 + //
  682 + //monta as guias
  683 + //
614 684 if(gpai)
615 685 {
616 686 gpai.id = "guiasYUI";
617 687 gpai.className = "yui-navset";
618 688 var ins = '<ul class="yui-nav" style="border-width:0pt 0pt 2px;border-color:rgb(240,240,240)">';
  689 + //
  690 + //define os títulos das guias padrão
  691 + //
619 692 if($i(objmapa.guiaTemas))
620 693 {$i(objmapa.guiaTemas).innerHTML = $trad("g1");}
621 694 if($i(objmapa.guiaMenu))
... ... @@ -624,17 +697,32 @@ function ativaGuias()
624 697 {$i(objmapa.guiaLegenda).innerHTML = $trad("g3");}
625 698 if($i(objmapa.guiaListaMapas))
626 699 {$i(objmapa.guiaListaMapas).innerHTML = $trad("g4");}
  700 + //
  701 + //
627 702 for(var g=0;g<12;g++)
628 703 {
629 704 if ($i("guia"+g))
630 705 {
  706 + //
  707 + //pega os títulos das guias, inclusive as que não são padrão
  708 + //
631 709 var tituloguia = $i("guia"+g).innerHTML;
  710 + //
  711 + //remove os espaços em branco
  712 + //necessário para manter compatibilidade com versões antigas do i3geo
  713 + //
632 714 var re = new RegExp("&nbsp;", "g");
633 715 var tituloguia = tituloguia.replace(re,'');
  716 + //
  717 + //monta o título das guias
  718 + //
634 719 ins += '<li><a href="#"><em><div id="guia'+g+'" >'+tituloguia+'</div></em></a></li>';
635 720 }
636 721 }
637 722 ins += "</ul>";
  723 + //
  724 + //insere as guias em gpai
  725 + //
638 726 gpai.innerHTML = ins;
639 727 for(var g=0;g<12;g++)
640 728 {
... ... @@ -649,7 +737,9 @@ function ativaGuias()
649 737 }
650 738 }
651 739 }
652   - //guias
  740 + //
  741 + //define a função que será executada quando o usuário clica em uma guia padrão
  742 + //
653 743 if ($i(objmapa.guiaTemas))
654 744 {
655 745 $i(objmapa.guiaTemas).onclick = function()
... ... @@ -699,9 +789,15 @@ Function: pegalistademenus
699 789 Pega a lista de menus que deverão compor a árvore de adição de temas e cria/adiciona os elementos da árvore
700 790  
701 791 A lista de menus é definida em ms_configura.php
  792 +
  793 +Para cada menu é montada uma árvore com os grupos e sub-grupos de temas.
702 794 */
703 795 function pegalistademenus(retorno)
704 796 {
  797 + //
  798 + //quando retorno for vazio, significa que será usado o menu default(menutemas.xml) e será mostrado sempre aberto
  799 + //essa verificação é necessária para efeitos de compatibilidade com versões antigas do i3geo que não permitiam mais de um menu
  800 + //
705 801 if (retorno.data == "")
706 802 {pegaListaDeGrupos("","sim","aberto");}
707 803 else
... ... @@ -712,6 +808,13 @@ function pegalistademenus(retorno)
712 808 {
713 809 do
714 810 {
  811 + //
  812 + //o parâmetro status define se a árvre será montada aberta ou fechada
  813 + //esse parâmetro foi adicionado na versão 4.0 do i3geo
  814 + //por isso a verificação é necessária
  815 + //se o parâmetro não existir na variável $menutemas definida em ms_configura.php,
  816 + //será utilizado aberto
  817 + //
715 818 var status = "aberto";
716 819 if(retorno.data[i].status)
717 820 {var status = retorno.data[i].status;}
... ... @@ -768,7 +871,9 @@ function mensagemf(m)
768 871 /*
769 872 Function: wdocaf
770 873  
771   -Abre a janela docável para executar algum programa.
  874 +Abre a janela flutuante para executar algum programa.
  875 +
  876 +A janela flutuante contém um iframa onde o programa, definido no parâmetro wsrc, será carregado.
772 877  
773 878 Parameters:
774 879  
... ... @@ -788,10 +893,14 @@ function wdocaf(wlargura,waltura,wsrc,nx,ny,texto)
788 893 {
789 894 try
790 895 {
  896 + //
  897 + //esconde o box de zoom e outros objetos temporários se estiverem visíveis
  898 + //
791 899 if($i("boxg"))
792 900 {$i("boxg").style.display = "none";}
793 901 if($i("boxpin"))
794 902 {$i("boxpin").style.display = "none";}
  903 +
795 904 var wlargura_ = parseInt(wlargura)+0+"px";
796 905 YAHOO.namespace("janelaDoca.xp");
797 906 if ($i("wdoca"))
... ... @@ -2695,7 +2804,7 @@ function expandeGrupo(itemID)
2695 2804 if ( lk != " ")
2696 2805 {var lk = "<a href="+lk+" target='blank'>&nbsp;fonte</a>";}
2697 2806 var tid = no.tid;
2698   - var inp = "<input style='text-align:left;cursor:pointer;' onclick='mudaboxnf(\"adiciona\")' class='inputsb' style='cursor:pointer' type=\"checkbox\" value="+tid+" onmouseover=\"javascript:mostradicasf(this,'"+$trad("a8")+"','ligadesliga')\" onmouseout=\"javascript:mostradicasf(this,'')\" />";
  2807 + var inp = "<input style='text-align:left;cursor:pointer;' onclick='mudaboxnf(\"adiciona\",this)' class='inputsb' style='cursor:pointer' type=\"checkbox\" value="+tid+" onmouseover=\"javascript:mostradicasf(this,'"+$trad("a8")+"','ligadesliga')\" onmouseout=\"javascript:mostradicasf(this,'')\" />";
2699 2808 if(navm)
2700 2809 nomeTema = "&nbsp;"+inp+nome+lk;
2701 2810 else
... ... @@ -2763,7 +2872,7 @@ function pegaListaDeGrupos(idmenu,listasistemas,status)
2763 2872 {
2764 2873 var insp = "<div style='text-align:left;'><table cellspacing='0' cellpadding='0' ><tr><td style='text-align:left;font-size:10px;'>";
2765 2874 insp = insp + "<img src='"+g_locaplic+"/imagens/branco.gif' height=0 />";
2766   - insp = insp + "<p>&nbsp;"+$trad("a1")+"<input class='digitar' type='text' id='buscatema' size='15' value='' /><img class='tic' title='"+$trad("a1")+"' src='"+$im("branco.gif")+"' onclick='procurartemas()' style='cursor:pointer;top:2px;position:relative;'/></td></tr></table><br>";
  2875 + insp = insp + "<p><br>&nbsp;"+$trad("a1")+"<input class='digitar' type='text' id='buscatema' size='15' value='' /><img class='tic' title='"+$trad("a1")+"' src='"+$im("branco.gif")+"' onclick='procurartemas()' style='cursor:pointer;top:2px;position:relative;'/></td></tr></table><br>";
2767 2876 $i(ondeArvore).innerHTML = insp+"<div style='text-align:left;font-size:10px;' id='achados' ></div></div>";
2768 2877 }
2769 2878 else
... ... @@ -2854,7 +2963,7 @@ function pegaListaDeGrupos(idmenu,listasistemas,status)
2854 2963 if ( lk != " ")
2855 2964 {var lk = "<a href="+lk+" target='blank'>&nbsp;fonte</a>";}
2856 2965 var tid = no.tid;
2857   - var inp = "<input style='text-align:left;cursor:pointer;' onclick='mudaboxnf(\"adiciona\")' class='inputsb' style='cursor:pointer' type='checkbox' value="+tid+" onmouseover=\"javascript:mostradicasf(this,'"+$trad("a8")+"','ligadesliga')\" onmouseout=\"javascript:mostradicasf(this,'')\" />";
  2966 + var inp = "<input style='text-align:left;cursor:pointer;' onclick='mudaboxnf(\"adiciona\",this)' class='inputsb' style='cursor:pointer' type='checkbox' value="+tid+" onmouseover=\"javascript:mostradicasf(this,'"+$trad("a8")+"','ligadesliga')\" onmouseout=\"javascript:mostradicasf(this,'')\" />";
2858 2967 if(navm)
2859 2968 nomeTema = "&nbsp;"+inp+nome+lk;
2860 2969 else
... ... @@ -3197,6 +3306,9 @@ Chama a função que verifica na lista de temas adicionais.
3197 3306 */
3198 3307 function remapaf()
3199 3308 {
  3309 + //
  3310 + //zera o contador de tempo
  3311 + //
3200 3312 clearTimeout(objmapa.tempo);
3201 3313 objmapa.tempo = "";
3202 3314 objmapa.temaAtivo = "";
... ... @@ -3225,6 +3337,8 @@ function remapaf()
3225 3337 if ($i("buscatema"))
3226 3338 {
3227 3339 var g = $i(objmapa.guiaMenu+"obj");
  3340 + if($i("arvoreAdicionaTema"))
  3341 + {var g = $i("arvoreAdicionaTema");}
3228 3342 var iguias = g.getElementsByTagName("input");
3229 3343 var ta = new Array();
3230 3344 var i = iguias.length-1;
... ...