From 262f8a1b8530c8faacf5c328b71a8cf19945cb1a Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sun, 12 Jun 2011 18:06:26 +0000 Subject: [PATCH] Novas opções para manipulação do menu suspenso --- classesjs/classe_arvoredecamadas.js | 9 +++++++-- classesjs/classe_configura.js | 2 +- classesjs/classe_gadgets.js | 44 ++++++++++++++++++++++++++++---------------- exemplos/menus1.htm | 8 ++++++++ interface/openlayers.htm | 8 +++++++- mashups/openlayers.js.php | 4 ++-- 6 files changed, 53 insertions(+), 22 deletions(-) diff --git a/classesjs/classe_arvoredecamadas.js b/classesjs/classe_arvoredecamadas.js index bfa5dbb..d3bf99f 100644 --- a/classesjs/classe_arvoredecamadas.js +++ b/classesjs/classe_arvoredecamadas.js @@ -255,9 +255,14 @@ i3GEO.arvoreDeCamadas = { */ ICONETEMA: true, /* - Propriedade: FUNCOESTEMA + Propriedade: FUNCOES - Indicação de quais funções serão incluídas em cada tema mostrado na árvore + Indicação de quais funções serão incluídas em cada tema mostrado na árvore quando o usuário aciona o item "opções" + + Além de definir o item como false ou true, algumas funções apenas são mostradas em conformidade com o tipo de camada. + No sistema de administração, pode-se também controlar algumas das funções, como por exemplo "sql", "wms" e "temporizador" + + Exemplo de como alterar um valor diretamente no javascript da interface do mapa i3GEO.arvoreDeCamadas.FUNCOES.excluir = false */ FUNCOES: { diff --git a/classesjs/classe_configura.js b/classesjs/classe_configura.js index 2a59b65..b9206aa 100644 --- a/classesjs/classe_configura.js +++ b/classesjs/classe_configura.js @@ -100,7 +100,7 @@ i3GEO.configura = { { text: $trad("u1"), url: "http://www.softwarepublico.gov.br/spb/ver-comunidade?community_id=1444332" }, - { text: $trad("u2"), url: "javascript:i3GEO.ajuda.abreDoc()" } + { text: $trad("u2"), url: "javascript:i3GEO.ajuda.abreDoc()", target: "_blank" } ] diff --git a/classesjs/classe_gadgets.js b/classesjs/classe_gadgets.js index 0a20ce9..5869a6a 100644 --- a/classesjs/classe_gadgets.js +++ b/classesjs/classe_gadgets.js @@ -89,7 +89,7 @@ i3GEO.gadgets = { "mostraMenuSuspenso": - {idhtml:"menus",deslocaEsquerda:0}, + {idhtml:"menus",deslocaEsquerda:0,finaliza:""}, "mostraMenuLista": @@ -763,6 +763,15 @@ i3GEO.gadgets = { Mostra o menu suspenso com opções extras de análise, ajuda, etc O objeto YAHOO.widget.MenuBar resultante pode ser obtido na variável i3GEOoMenuBar + + + i3GEOoMenuBar pode ser manipulado com os métodos da biblioteca YUI, por exemplo, + i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("text", " "); + + Para executar uma operação após o menu ser montado, utilize a propriedade + i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.finaliza, por exemplo (a string é executada por meio da função eval do javascript) + + i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.finaliza = 'i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("text", " ");' O conteúdo do menu é baseado na variável i3GEO.configura.oMenuData @@ -773,12 +782,12 @@ i3GEO.gadgets = { */ mostraMenuSuspenso: function(id){ if(typeof(console) !== 'undefined'){console.info("i3GEO.gadgets.mostraMenuSuspenso()");} - var objid,sobe,n,i,estilo,t,onMenuBarBeforeRender,temp,ifr, - MM = YAHOO.widget.MenuManager, + var objid,sobe,n,i,estilo,t,onMenuBarBeforeRender,temp,ifr,i3GEOoMenuBarLocal, ms = i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso, confm = i3GEO.configura.oMenuData, ins = "", alinhamento = ""; + i3GEOoMenuBar = YAHOO.widget.MenuManager; if(arguments.length === 0) {id = ms.idhtml;} else @@ -816,7 +825,7 @@ i3GEO.gadgets = { if($i("menu"+nomeMenu)){ nomeSub = subs[nomeMenu]; if(nomeSub !== ""){ - i3GEOoMenuBar.getItem(conta).cfg.setProperty( + i3GEOoMenuBarLocal.getItem(conta).cfg.setProperty( 'submenu', { id:nomeMenu, @@ -832,28 +841,28 @@ i3GEO.gadgets = { {ifr = true;} else {ifr = false;} - i3GEOoMenuBar=new YAHOO.widget.MenuBar(id,{iframe:ifr,autosubmenudisplay: true, showdelay: 100, hidedelay: 500, lazyload: false}); - MM.addMenu(i3GEOoMenuBar); - i3GEOoMenuBar.beforeRenderEvent.subscribe(onMenuBarBeforeRender); - i3GEOoMenuBar.render(); + i3GEOoMenuBarLocal = new YAHOO.widget.MenuBar(id,{iframe:ifr,autosubmenudisplay: true, showdelay: 100, hidedelay: 500, lazyload: false}); + i3GEOoMenuBar.addMenu(i3GEOoMenuBarLocal); + i3GEOoMenuBarLocal.beforeRenderEvent.subscribe(onMenuBarBeforeRender); + i3GEOoMenuBarLocal.render(); // //marca o tipo de interface em uso // try{ if(i3GEO.Interface.ATUAL === "padrao"){ - MM.getMenuItem("omenudataInterface1").cfg.setProperty("checked", true); + i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("checked", true); } if(i3GEO.Interface.ATUAL === "openlayers"){ - MM.getMenuItem("omenudataInterface2").cfg.setProperty("checked", true); + i3GEOoMenuBar.getMenuItem("omenudataInterface2").cfg.setProperty("checked", true); } if(i3GEO.Interface.ATUAL === "flamingo"){ - MM.getMenuItem("omenudataInterface3").cfg.setProperty("checked", true); + i3GEOoMenuBar.getMenuItem("omenudataInterface3").cfg.setProperty("checked", true); } if(i3GEO.Interface.ATUAL === "googlemaps"){ - MM.getMenuItem("omenudataInterface4").cfg.setProperty("checked", true); + i3GEOoMenuBar.getMenuItem("omenudataInterface4").cfg.setProperty("checked", true); } if(i3GEO.Interface.ATUAL === "googleearth"){ - MM.getMenuItem("omenudataInterface5").cfg.setProperty("checked", true); + i3GEOoMenuBar.getMenuItem("omenudataInterface5").cfg.setProperty("checked", true); } }catch(e){ if(typeof(console) !== 'undefined'){console.warning("i3GEO.gadgets.mostraMenuSuspenso() "+ e);} @@ -862,13 +871,13 @@ i3GEO.gadgets = { //desabilita opções em interfaces específicas // if(i3GEO.Interface.ATUAL !== "padrao" && $i("omenudataArquivos3")){ - MM.getMenuItem("omenudataArquivos3").cfg.setProperty("disabled", true); + i3GEOoMenuBar.getMenuItem("omenudataArquivos3").cfg.setProperty("disabled", true); } if(i3GEO.Interface.ATUAL === "googleearth" && $i("omenudataJanelas1")){ - MM.getMenuItem("omenudataJanelas1").cfg.setProperty("disabled", true); + i3GEOoMenuBar.getMenuItem("omenudataJanelas1").cfg.setProperty("disabled", true); } if(i3GEO.Interface.ATUAL !== "openlayers" && $i("omenudataJanelas3")){ - MM.getMenuItem("omenudataJanelas3").cfg.setProperty("disabled", true); + i3GEOoMenuBar.getMenuItem("omenudataJanelas3").cfg.setProperty("disabled", true); } // //corrige problemas de estilo @@ -881,6 +890,9 @@ i3GEO.gadgets = { {temp.border = "1px dotted white";} if(navm && i3GEO.Interface.ATUAL === "googlemaps") {temp.border = "2px dotted white";} + if(ms.finaliza && ms.finaliza != ""){ + eval(ms.finaliza); + } } }, /* diff --git a/exemplos/menus1.htm b/exemplos/menus1.htm index 6029166..c923049 100644 --- a/exemplos/menus1.htm +++ b/exemplos/menus1.htm @@ -223,6 +223,14 @@ i3GEO.configura.oMenuData.submenus.testeMenu = [ ] // +//vc pode usar também esse exemplo +//desabilita o aplicativo default do menu suspenso +// +//i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.finaliza = 'i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("text", " ");' + + + +// //inicia o mapa // i3GEO.inicia(); diff --git a/interface/openlayers.htm b/interface/openlayers.htm index 3c22115..28ac319 100644 --- a/interface/openlayers.htm +++ b/interface/openlayers.htm @@ -206,6 +206,13 @@ i3GEO.Interface.openlayers.GADGETS = { OverviewMap:false }; i3GEO.Interface.openlayers.TILES = true; + +// +//desabilita o aplicativo default do menu suspenso +// +i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.finaliza = 'i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("text", " ");' + + /* Após a criação, é criado o objeto i3geoOL que corresponde ao objeto map da API do OpenLayers. Vc pode usar i3geoOL para aplicar os métodos e verificar as propriedades da API do OpenLayers @@ -277,7 +284,6 @@ OpenLayers.ImgPath = "../pacotes/openlayers/img/"; // //inicia o mapa // - i3GEO.inicia(); diff --git a/mashups/openlayers.js.php b/mashups/openlayers.js.php index abb4c1e..4106f9f 100644 --- a/mashups/openlayers.js.php +++ b/mashups/openlayers.js.php @@ -568,8 +568,8 @@ i3GEO.editorOL = { displayClass: "editorOLidentifica", eventListeners: { getfeatureinfo: function(event) { - var lonlat = i3GEO.editorOL.mapa.getLonLatFromPixel(event.xy); - var lonlattexto = "
captura
"; + var lonlat = i3GEO.editorOL.mapa.getLonLatFromPixel(event.xy), + lonlattexto = "
captura
"; i3GEO.editorOL.mapa.addPopup(new OpenLayers.Popup.FramedCloud( "chicken", i3GEO.editorOL.mapa.getLonLatFromPixel(event.xy), -- libgit2 0.21.2