Commit 34b6f21576e3dede30c1de84b696c04776269610

Authored by Edmar Moretti
1 parent 5175d38d

Menu único

Showing 2 changed files with 140 additions and 85 deletions   Show diff stats
classesjs/classe_gadgets.js
... ... @@ -15,18 +15,18 @@
15 15 */
16 16  
17 17 /**
18   - *
  18 + *
19 19 * Licença
20   - *
  20 + *
21 21 * GPL2
22   - *
  22 + *
23 23 * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
24   - *
  24 + *
25 25 * Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
26   - *
  26 + *
27 27 * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença
28 28 * Pública Geral GNU conforme publicada pela Free Software Foundation;
29   - *
  29 + *
30 30 * Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA GARANTIA; nem mesmo a
31 31 * garantia implícita de COMERCIABILIDADE OU ADEQUACAtilde;O A UMA FINALIDADE ESPECÍFICA. Consulte a Licença
32 32 * Pública Geral do GNU para mais detalhes. Você deve ter recebido uma cópia da Licença Pública Geral do
... ... @@ -40,35 +40,35 @@ i3GEO.gadgets =
40 40 {
41 41 /**
42 42 * Propriedade: PARAMETROS
43   - *
  43 + *
44 44 * Parâmetros de inicialização dos gadgets.
45   - *
  45 + *
46 46 * Essa variável define os parametros individuais de cada gadget e o ID do elemento HTML onde o gadget será
47 47 * incluído (parametro "idhtml").
48   - *
  48 + *
49 49 * Cada tipo de gadget pode ter parametros específicos, descritos a seguir.
50   - *
  50 + *
51 51 * Você pode acessar os parâmetros da seguinte forma:
52   - *
  52 + *
53 53 * i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.deslocaEsquerda = 400;
54   - *
  54 + *
55 55 * Para evitar o funcionamento de um gadget experimente utilizar
56   - *
  56 + *
57 57 * Exemplo:
58   - *
  58 + *
59 59 * i3GEO.gadgets.PARAMETROS.mostraInserirKml.idhtml = "";
60   - *
  60 + *
61 61 * Default:
62   - *
  62 + *
63 63 * (start code)
64   - *
  64 + *
65 65 * i3GEO.gadgets.PARAMETROS = { "mostraInserirKml" : { idhtml : "inserirKml" }, "mostraEscalaNumerica" : { idhtml : "escala" },
66 66 * "mostraEscalaGrafica" : { idhtml : "escalaGrafica" }, "mostraBuscaRapida" : { idhtml : "buscaRapida", servicosexternos : true,
67 67 * temasmapa : false, google : true }, "mostraVisual" : { idhtml : "" }, "mostraHistoricoZoom" : { idhtml : "historicozoom" },
68 68 * "mostraMenuSuspenso" : { permiteLogin : true, marcadores : true, idhtml : "menus", deslocaEsquerda : 0, parametrosYUI : { iframe :
69 69 * false, autosubmenudisplay : false, showdelay : 200, hidedelay : 500, lazyload : false } }, "mostraMenuLista" : { idhtml :
70 70 * "menuLista" }, "mostraVersao" : { idhtml : "versaoi3geo" }, "mostraEmail" : { idhtml : "emailInstituicao" } };
71   - *
  71 + *
72 72 * (end)
73 73 */
74 74 PARAMETROS : {
... ... @@ -118,11 +118,11 @@ i3GEO.gadgets =
118 118 },
119 119 /**
120 120 * Function: mostraEmail
121   - *
  121 + *
122 122 * Mostra o e-mail armazenado na variável i3GEO.parametros.emailInstituicao
123   - *
  123 + *
124 124 * Parametro:
125   - *
  125 + *
126 126 * {String} - id do elemento HTML que receberá o resultado. Esse id por default é obtido de i3GEO.gadgets.PARAMETROS
127 127 */
128 128 mostraEmail : function(id) {
... ... @@ -138,11 +138,11 @@ i3GEO.gadgets =
138 138 },
139 139 /**
140 140 * Function: mostraVersao
141   - *
  141 + *
142 142 * Mostra a versão atual do i3Geo armazenada na variável i3GEO.parametros.mensageminicial
143   - *
  143 + *
144 144 * Parametro:
145   - *
  145 + *
146 146 * {String} - id do elemento HTML que receberá o resultado. Esse id por default é obtido de i3GEO.gadgets.PARAMETROS
147 147 */
148 148 mostraVersao : function(id) {
... ... @@ -158,16 +158,16 @@ i3GEO.gadgets =
158 158 },
159 159 /**
160 160 * Function: mostraInserirKml
161   - *
  161 + *
162 162 * Mostra no mapa a a opção para inserir kml.
163   - *
  163 + *
164 164 * Essa opção só funciona com a API do Google carregada
165   - *
  165 + *
166 166 * Se você não quer essa função no mapa, elimine o elemento HTML existente no mapa que contenha o id
167 167 * definido em i3GEO.gadgets.PARAMETROS.mostraInserirKml.idhtml
168   - *
  168 + *
169 169 * Parametro:
170   - *
  170 + *
171 171 * {String} - id do elemento HTML que receberá o resultado. Esse id por default é obtido de
172 172 * i3GEO.gadgets.PARAMETROS.mostraInserirKml.idhtml
173 173 */
... ... @@ -196,16 +196,16 @@ i3GEO.gadgets =
196 196 },
197 197 /**
198 198 * Function: mostraEscalaNumerica
199   - *
  199 + *
200 200 * Mostra no mapa a escala numérica.
201   - *
  201 + *
202 202 * A escala numérica pode ser alterada pelo usuário digitando-se a nova escala.
203   - *
  203 + *
204 204 * Se você não quer essa função no mapa, elimine o elemento HTML existente no mapa que contenha o id
205 205 * definido em i3GEO.gadgets.PARAMETROS
206   - *
  206 + *
207 207 * Parametro:
208   - *
  208 + *
209 209 * {String} - id do elemento HTML que receberá o resultado. Esse id por default é obtido de i3GEO.gadgets.PARAMETROS
210 210 */
211 211 mostraEscalaNumerica : function(id) {
... ... @@ -224,8 +224,7 @@ i3GEO.gadgets =
224 224 if (!$i("i3geo_escalanum")) {
225 225 i =
226 226 "<form id='i3GEOescalanumForm' >" + $inputText(id, "100", "i3geo_escalanum", $trad("d10"), "10", parseInt(
227   - i3GEO.parametros.mapscale,
228   - 10))
  227 + i3GEO.parametros.mapscale, 10))
229 228 + "</form>";
230 229 ins = "<table style='width:120px;'><tr><td>" + i;
231 230 temp = 'var nova = document.getElementById("i3geo_escalanum").value;';
... ... @@ -265,14 +264,14 @@ i3GEO.gadgets =
265 264  
266 265 /**
267 266 * Function: mostraEscalaGrafica
268   - *
  267 + *
269 268 * Mostra no mapa a escala grafica como um elemento fora do mapa.
270   - *
  269 + *
271 270 * Se voc&ecirc; n&atilde;o quer essa fun&ccedil;&atilde;o no mapa, elimine o elemento HTML existente no mapa que contenha o id
272 271 * definido em i3GEO.gadgets.PARAMETROS(escala)
273   - *
  272 + *
274 273 * Parametro:
275   - *
  274 + *
276 275 * {String} - id do elemento HTML que receber&aacute; o resultado. Esse id por default &eacute; obtido de i3GEO.gadgets.PARAMETROS
277 276 */
278 277 mostraEscalaGrafica : function(id) {
... ... @@ -295,9 +294,9 @@ i3GEO.gadgets =
295 294 },
296 295 /**
297 296 * Function: atualizaEscalaGrafica
298   - *
  297 + *
299 298 * Atualiza a escala gr&aacute;fica
300   - *
  299 + *
301 300 */
302 301 atualizaEscalaGrafica : function() {
303 302 var e = $i("imagemEscalaGrafica");
... ... @@ -315,20 +314,20 @@ i3GEO.gadgets =
315 314 },
316 315 /**
317 316 * Function: mostraBuscaRapida
318   - *
  317 + *
319 318 * Mostra a op&ccedil;&atilde;o de busca r&aacute;pida de lugares por palavra digitada.
320   - *
  319 + *
321 320 * Se voc&ecirc; n&atilde;o quer essa fun&ccedil;&atilde;o no mapa, elimine o elemento HTML existente no mapa que contenha o id
322 321 * definido em i3GEO.gadgets.PARAMETROS (buscaRapida)
323   - *
  322 + *
324 323 * Onde a busca ser&aacute; feita &eacute; controlado pela vari&aacute;vel i3GEO.gadgets.PARAMETROS.mostraBuscaRapida
325   - *
  324 + *
326 325 * Parametro:
327   - *
  326 + *
328 327 * {String} - id do elemento HTML que receber&aacute; o resultado. Esse id por default &eacute; obtido de i3GEO.gadgets.PARAMETROS
329 328 */
330 329 mostraBuscaRapida : function(id) {
331   - //TODO implementar a separacao do template mustache em arquivos em disco
  330 + // TODO implementar a separacao do template mustache em arquivos em disco
332 331 if (typeof (console) !== 'undefined')
333 332 console.info("i3GEO.gadgets.mostraBuscaRapida()");
334 333  
... ... @@ -378,12 +377,7 @@ i3GEO.gadgets =
378 377 return;
379 378 }
380 379 // janela com a rotina e o resultado da busca
381   - i3GEO.janela.cria(
382   - "300px",
383   - "280px",
384   - i3GEO.configura.locaplic + "/ferramentas/buscarapida/index.htm",
385   - "",
386   - "",
  380 + i3GEO.janela.cria("300px", "280px", i3GEO.configura.locaplic + "/ferramentas/buscarapida/index.htm", "", "",
387 381 $trad("o2"));
388 382 return false;
389 383 };
... ... @@ -433,20 +427,20 @@ i3GEO.gadgets =
433 427 + "{{/googlemaps}}"
434 428 + "</table><br><p class=paragrafo >{{ajuda}}</p>";
435 429  
436   - ins =i3GEO.util.parseMustache(templateMustache, hashMustache);
  430 + ins = i3GEO.util.parseMustache(templateMustache, hashMustache);
437 431 janela = i3GEO.janela.cria("300px", "150px", "", "", "", $trad("s5"), "i3GEOpropriedadesBuscaRapida" + id);
438   - janela[0].setBody("<div>"+ins+"</div>");
  432 + janela[0].setBody("<div>" + ins + "</div>");
439 433 };
440 434 }
441 435 },
442 436 /**
443 437 * Function: mostraHistoricoZoom
444   - *
  438 + *
445 439 * Mostra na barra de zoom os &iacute;cones que controlam a visualiza&ccedil;&atilde;o do hist&oacute;rico da
446 440 * navega&ccedil;&atilde;o sobre o mapa
447   - *
  441 + *
448 442 * Parametro:
449   - *
  443 + *
450 444 * {String} - id do elemento HTML que receber&aacute; o resultado. Esse id por default &eacute; obtido de i3GEO.gadgets.PARAMETROS
451 445 */
452 446 mostraHistoricoZoom : function(id) {
... ... @@ -479,24 +473,24 @@ i3GEO.gadgets =
479 473 },
480 474 /**
481 475 * i3GEO.gadgets.visual (depreciado)
482   - *
  476 + *
483 477 * Gera os &iacute;cones e controla as op&ccedil;&otilde;es de modifica&ccedil;&atilde;o do visual do mapa.
484   - *
  478 + *
485 479 * O visual consiste na defini&ccedil;&atilde;o dos &iacute;cones utilizados no mapa. O visual pode ser modificado na
486 480 * inicializa&ccedil;&atilde;o ou ent&atilde;o escolhido pelo usu&aacute;rio.
487   - *
  481 + *
488 482 * Os visuais dispon&iacute;veis s&atilde;o definidos no servidor e consistem em diret&oacute;rios localizados em
489 483 * i3geo/imagens/visual. A lista de visuais dispon&iacute;veis &eacute; obtida na inicializa&ccedil;&atilde;o do i3geo.
490   - *
  484 + *
491 485 * Os &iacute;cones para mudan&ccedil;a do visual s&atilde;o inclu&iacute;dos no elemento HTML definido em
492 486 * i3geo.gadgets.PARAMETROS.visual
493 487 */
494 488 visual : {
495 489 /**
496 490 * Constr&oacute;i os &iacute;cones de escolha do visual.
497   - *
  491 + *
498 492 * Parametro:
499   - *
  493 + *
500 494 * id {String} - id do elemento que receber&aacute; os &iacute;cones (opcional)
501 495 */
502 496 inicia : function(id) {
... ... @@ -504,9 +498,9 @@ i3GEO.gadgets =
504 498 },
505 499 /**
506 500 * Troca o visual atual. A lista de visuais dispon&iacute;veis &eacute; obtida em i3GEO.parametros.listavisual
507   - *
  501 + *
508 502 * Parametro:
509   - *
  503 + *
510 504 * visual {String} - nome do visual que ser&aacute; utilizado.
511 505 */
512 506 troca : function(visual) {
... ... @@ -515,43 +509,43 @@ i3GEO.gadgets =
515 509 },
516 510 /**
517 511 * Function: mostraMenuSuspenso
518   - *
  512 + *
519 513 * Mostra o menu suspenso com op&ccedil;&otilde;es extras de an&aacute;lise, ajuda, etc
520   - *
  514 + *
521 515 * Paradefinir os &iacute;cones existentes nos elementos principais do menu, edite o arquivo i3geo/css/botoes2.css e acrescente o
522 516 * estilo desejado. Utilize # para se referenciar ao elemento, cujo identificador &eacute; composto por "menu"+chave, exemplo
523 517 * #menuinterface ou #menuajuda
524   - *
  518 + *
525 519 * O objeto YAHOO.widget.MenuBar resultante pode ser obtido na vari&aacute;vel i3GEOoMenuBar
526   - *
  520 + *
527 521 * i3GEOoMenuBar pode ser manipulado com os m&eacute;todos da biblioteca YUI
528   - *
  522 + *
529 523 * Exemplo:
530   - *
  524 + *
531 525 * (start code) i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("text", "zzzzzz");
532   - *
  526 + *
533 527 * i3GEOoMenuBar.getMenuItem("omenudataInterface1").destroy(); (end)
534   - *
  528 + *
535 529 * Para executar uma opera&ccedil;&atilde;o ap&oacute;s o menu ser montado, utilize a propriedade
536 530 * i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.finaliza, por exemplo (a string &eacute; executada por meio da fun&ccedil;&atilde;o
537 531 * eval do javascript)
538   - *
  532 + *
539 533 * Exemplo:
540   - *
  534 + *
541 535 * (start code) i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.finaliza =
542 536 * 'i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("text", "");'; (end)
543   - *
  537 + *
544 538 * O conte&uacute;do do menu &eacute; baseado na vari&aacute;vel i3GEO.configura.oMenuData
545   - *
  539 + *
546 540 * Parametro:
547   - *
  541 + *
548 542 * {String} - id do elemento HTML que receber&aacute; o resultado. Esse id por default &eacute; obtido de i3GEO.gadgets.PARAMETROS
549 543 */
550 544 mostraMenuSuspenso : function(id) {
551 545 if (typeof (console) !== 'undefined')
552 546 console.info("i3GEO.gadgets.mostraMenuSuspenso()");
553 547  
554   - var objid, n, i, estilo, t, onMenuBarBeforeRender, temp, i3GEOoMenuBarLocal, ms = i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso, confm =
  548 + var menuUnico, objid, i, estilo, t, onMenuBarBeforeRender, temp, i3GEOoMenuBarLocal, ms = i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso, confm =
555 549 i3GEO.configura.oMenuData, ins = "", alinhamento = "";
556 550  
557 551 if (arguments.length === 0) {
... ... @@ -580,6 +574,61 @@ i3GEO.gadgets =
580 574 }
581 575 } catch (e) {
582 576 }
  577 + // monta um menu unico
  578 + menuUnico = function(){
  579 + var menu = i3GEO.configura.oMenuData.menu,
  580 + submenus = i3GEO.configura.oMenuData.submenus,
  581 + menuUnico = {},
  582 + n = 0, s, tempMenu, m = 0, idts, idt;
  583 + menuUnico["menu"] = [
  584 + {
  585 + nome : "Menu",
  586 + id : "menuUnico"
  587 + }
  588 + ];
  589 + menuUnico["submenus"] = {
  590 + "menuUnico" : []
  591 + };
  592 + for (n in menu) {
  593 + if (menu[n].id) {
  594 + s = submenus[menu[n].id];
  595 + tempMenu = [];
  596 + for (m in s) {
  597 + if (s[m].url) {
  598 + tempMenu.push(s[m]);
  599 + }
  600 + else{
  601 + if (s[m].submenu && s[m].submenu.itemdata) {
  602 + idts = s[m].submenu.itemdata[0];
  603 + tempMenu.push({
  604 + text: s[m].text
  605 + });
  606 + for (idt = 0; idt < idts.length; idt++) {
  607 + tempMenu.push(idts[idt]);
  608 + }
  609 + }
  610 + }
  611 + }
  612 + if(tempMenu.length > 0){
  613 + menuUnico["submenus"]["menuUnico"].push({
  614 + id : menu[n].id + "Menu",
  615 + text : menu[n].nome,
  616 + submenu : {
  617 + id : menu[n].id + "Sub",
  618 + itemdata : [
  619 + tempMenu
  620 + ]
  621 + }
  622 + });
  623 + }
  624 + }
  625 + }
  626 + i3GEO.configura.oMenuData = menuUnico;
  627 + confm = i3GEO.configura.oMenuData;
  628 + };
  629 + if(i3GEO.parametros.w < 600){
  630 + menuUnico();
  631 + }
583 632 i3GEOoMenuBar = YAHOO.widget.MenuManager;
584 633 if (objid) {
585 634 objid.className = "yuimenubar";
... ... @@ -757,13 +806,13 @@ i3GEO.gadgets =
757 806 },
758 807 /**
759 808 * Function: mostraMenuLista
760   - *
  809 + *
761 810 * Mostra as op&ccedil;&otilde;es existentes no menu suspenso por&eacute;m na forma de uma lista de op&ccedil;&otilde;es
762   - *
  811 + *
763 812 * O conte&uacute;do do menu &eacute; baseado na vari&aacute;vel i3GEO.configura.oMenuData
764   - *
  813 + *
765 814 * Parametro:
766   - *
  815 + *
767 816 * {String} - id do elemento HTML que receber&aacute; o resultado. Esse id por default &eacute; obtido de i3GEO.gadgets.PARAMETROS
768 817 */
769 818 mostraMenuLista : function(id) {
... ...
css/botoes2.css
... ... @@ -386,6 +386,12 @@
386 386 height: 15px;
387 387 width: 57px;
388 388 }
  389 +
  390 +#menumenuUnico {
  391 + background-image: url("../imagens/oxygen/16x16/format-list-unordered.png");
  392 + background-repeat: no-repeat;
  393 + margin-left: 5px;
  394 +}
389 395 /*bandeira do brasil*/
390 396 #brasil {
391 397 background-image: URL('../imagens/sprite.png');
... ...