From e5f68ac7d6e68bc56aab71201608bec84d26654c Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 13 Jul 2011 04:14:57 +0000 Subject: [PATCH] --- classesjs/classe_barradebotoes.js | 254 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------- interface/openlayers.htm | 1 + pacotes/eudock/barImages/dockBg-c-o.gif | Bin 189 -> 0 bytes pacotes/eudock/barImages/dockBg-l.png | Bin 1795 -> 0 bytes pacotes/eudock/barImages/dockBg-r.png | Bin 1818 -> 0 bytes pacotes/eudock/js/euDock.2.0.js | 23 +++++++++++++++++------ 6 files changed, 233 insertions(+), 45 deletions(-) diff --git a/classesjs/classe_barradebotoes.js b/classesjs/classe_barradebotoes.js index 4de6a00..e7d7f2c 100644 --- a/classesjs/classe_barradebotoes.js +++ b/classesjs/classe_barradebotoes.js @@ -72,6 +72,20 @@ i3GEO.barraDeBotoes = { */ OFFSET: -205, /* + Propriedade: MAXBOTOES + + Número de botões iniciais (válido apenas para o tipo "olhodepeixe") + + Se for 0, todos os botões serão mostrados + + Tipo: + {numeric} + + Default: + {10} + */ + MAXBOTOES: 10, + /* Propriedade: AJUDA Mostra um texto de ajuda colado ao ícone da ferramenta @@ -86,7 +100,7 @@ i3GEO.barraDeBotoes = { /* Propriedade: ORIENTACAO - Orientação vertical ou horizontal da barra + Orientação vertical ou horizontal da barra (não se aplica ao tipo "olhodepeixe" Tipo: {string} @@ -297,7 +311,7 @@ i3GEO.barraDeBotoes = { } Tipo: - {JSON} + {obj} */ INCLUIBOTAO: { zoomli: true, @@ -308,13 +322,13 @@ i3GEO.barraDeBotoes = { mede: true, area: true, imprimir: true, - reinicia: true, - exten: true, + selecao: true, + google: true, referencia: true, + exten: true, inserexy: true, textofid: true, - selecao: true, - google: true, + reinicia: true, buscafotos: true, wiki: true, metar: true, @@ -323,6 +337,67 @@ i3GEO.barraDeBotoes = { inseregrafico: true, v3d: true }, + /* + Propriedade: ICONEBOTAO + + Ícones utilizados em cada um dos botões da barra. + + Esses ícones são utilizados apenas se i3GEO.barraDeBotoes.TIPO = "olhodepeixe". Para cada elemento existente em + i3GEO.barraDeBotoes.INCLUIBOTAO deve existir um elemento nesse objeto. A chave de cada elemento é a mesma do objeto INCLUIBOTAO. + O endereço da imagem será complementado pelo i3geo, adicionando no início da string o valor da variável i3GEO.configura.locaplic + + Default: + + ICONEBOTAO: { + + zoomli: "/imagens/gisicons/eudock/zoom-region.png", + + pan: "/imagens/gisicons/eudock/pan.png", + + zoomtot: "/imagens/gisicons/eudock/zoom-extent.png", + + identifica: "/imagens/gisicons/eudock/identify.png", + + identificaBalao: "/imagens/gisicons/eudock/tips.png", + + mede: "/imagens/gisicons/eudock/length-measure.png", + + area: "/imagens/gisicons/eudock/area-measure.png", + + imprimir: "/imagens/gisicons/eudock/print.png", + + reinicia: "/imagens/gisicons/eudock/redraw.png", + + exten: "/imagens/gisicons/eudock/map-extent-info.png", + + referencia: "/imagens/gisicons/eudock/map-reference.png", + + inserexy: "/imagens/gisicons/eudock/point-create.png", + + textofid: "/imagens/gisicons/eudock/text-add.png", + + selecao: "/imagens/gisicons/eudock/select.png", + + google: "/imagens/gisicons/eudock/google-map.png", + + buscafotos: "/imagens/gisicons/eudock/fotos.png", + + wiki: "/imagens/gisicons/eudock/wiki.png", + + metar: "/imagens/gisicons/eudock/metar.png", + + lentei: "/imagens/gisicons/eudock/lente.png", + + confluence: "/imagens/gisicons/eudock/confluence.png", + + inseregrafico: "/imagens/gisicons/eudock/grafico.png", + + v3d: "/imagens/gisicons/eudock/v3d.png" + } + + Type: + {obj} + */ ICONEBOTAO: { zoomli: "/imagens/gisicons/eudock/zoom-region.png", pan: "/imagens/gisicons/eudock/pan.png", @@ -585,39 +660,79 @@ i3GEO.barraDeBotoes = { if(padrao === "") {this.ativaIcone("");} }, - execBotao: function(id,x,y){ - var l,b,d,temp,n = 38; + /* + Function: execBotao + + Com base no código de um botão (iddiv), obtém a função armazenada em i3GEO.barraDeBotoes.LISTABOTOES e executa. + + Parametros: + + id {string} - identificador do botão, conforme definido no elemento iddiv de i3GEO.barraDeBotoes.LISTABOTOES + + x {numeric} - (opcional) posição em pixels da tela onde foi feito o clique do mouse + + y {numeric} - (opcional) posição em pixels da tela onde foi feito o clique do mouse + */ + execBotao: function(id,x,y,posX,posY){ + var temp, + n = 38, + botao = i3GEO.barraDeBotoes.defBotao(id); i3GEO.barraDeBotoes.BOTAOCLICADO = id; + if(botao === false) + {return;} + try{ + if(botao.tipo === "dinamico" && x){ + i3GEO.util.criaPin("i3geoMarcaIcone",i3GEO.configura.locaplic+"/imagens/gisicons/eudock/sobe1.png","10px","10px"); + temp = $i("i3geoMarcaIcone"); + temp.style.display = "block" + temp.style.top = posY + 43;//(parseInt(y / n,10) * n) + 40; + temp.style.left = posX + 18;//(parseInt(x / n,10) * n) + 6; + } + if(botao.funcaoonclick){ + botao.funcaoonclick.call(); + } + } + catch(e){ + if(typeof(console) !== 'undefined'){console.error("Erro no botao "+id+" "+e);} + } + }, + /* + Function: defBotao + + Obtém as definições de um botão conforme o seu código (iddiv) + + Retorno: + + {objeto} - ver i3GEO.barraDeBotoes.LISTABOTOES + */ + defBotao: function(iddiv){ + var l,b,d,temp; l = i3GEO.barraDeBotoes.LISTABOTOES; b = l.length-1; if (b >= 0){ do{ temp = l[b].iddiv; - if (temp === id){ - try{ - if(l[b].tipo === "dinamico"){ - i3GEO.util.criaPin("i3geoMarcaIcone",i3GEO.configura.locaplic+"/imagens/gisicons/eudock/sobe1.png","10px","10px"); - temp = $i("i3geoMarcaIcone"); - temp.style.display = "block" - temp.style.top = (parseInt(y / n,10) * n) + 40; - temp.style.left = (parseInt(x / n,10) * n) + 25; - } - if(l[b].funcaoonclick){ - l[b].funcaoonclick.call(); - return; - } - } - catch(e){ - if(typeof(console) !== 'undefined'){console.error("Erro no botao "+id+" "+e);} - } + if (l[b].iddiv === iddiv){ + return l[b]; } } while (b--); } - }, + return false; + }, + /* + Function: inicializaBarraOP + + Inicializa a barra de botões quando for do tipo "olhodepeixe" + + O objeto euEnv armazena todas as características da barra + + */ inicializaBarraOP: function(){ + i3GEO.barraDeBotoes.AJUDA = false; euEnv.imageBasePath=i3GEO.configura.locaplic+"/pacotes/eudock/"; - var i, + var botao, + i, dock = new euDock(), temp = "", chaves = i3GEO.util.listaChaves(i3GEO.barraDeBotoes.INCLUIBOTAO), @@ -628,17 +743,61 @@ i3GEO.barraDeBotoes = { horizontal:{euImage:{image:i3GEO.configura.locaplic+"/pacotes/eudock/barImages/dockBg-c-o.gif"}}, right:{euImage:{image:i3GEO.configura.locaplic+"/pacotes/eudock/barImages/dockBg-r.png"}} }); - dock.setIconsOffset(5); + dock.setIconsOffset(7); + if(i3GEO.barraDeBotoes.MAXBOTOES > 0) + {n = i3GEO.barraDeBotoes.MAXBOTOES;} for(i=0;i 0 && n > nb){ + for(i=nb;ifecha
"+mensagem+"
"; try{clearTimeout(timeAjudaBotoes);}catch(e){} - timeMostraAjudaBotoes = setTimeout(function(){ balloonAjuda.cleanup(); balloonIsVisible = false; //alert(mensagem); - balloonAjuda.showTooltip(objeto,mensagem,null,null,null,pos[0]+12,pos[1]); + if(i3GEO.barraDeBotoes.TIPO === "olhodepeixe") + {balloonAjuda.showTooltip(objeto,mensagem,null,null,null,pos[0],pos[1]-40);} + else + {balloonAjuda.showTooltip(objeto,mensagem,null,null,null,pos[0]+12,pos[1]);} try{clearTimeout(timeMostraAjudaBotoes);}catch(e){} timeAjudaBotoes = setTimeout(function(){balloonAjuda.cleanup();},4000); },4000); diff --git a/interface/openlayers.htm b/interface/openlayers.htm index 90439d4..4055d92 100644 --- a/interface/openlayers.htm +++ b/interface/openlayers.htm @@ -228,6 +228,7 @@ i3GEO.configura.mapaRefDisplay = "none"; i3GEO.barraDeBotoes.TIPO = "olhodepeixe"; i3GEO.barraDeBotoes.OFFSET = -220; +i3GEO.barraDeBotoes.MAXBOTOES = 10; //barra de botoes normal. descomente para usar /* i3GEO.barraDeBotoes.TIPO = "yui"; diff --git a/pacotes/eudock/barImages/dockBg-c-o.gif b/pacotes/eudock/barImages/dockBg-c-o.gif index 00d4d1e..19b1d38 100644 Binary files a/pacotes/eudock/barImages/dockBg-c-o.gif and b/pacotes/eudock/barImages/dockBg-c-o.gif differ diff --git a/pacotes/eudock/barImages/dockBg-l.png b/pacotes/eudock/barImages/dockBg-l.png index 16b14ee..8c528cf 100644 Binary files a/pacotes/eudock/barImages/dockBg-l.png and b/pacotes/eudock/barImages/dockBg-l.png differ diff --git a/pacotes/eudock/barImages/dockBg-r.png b/pacotes/eudock/barImages/dockBg-r.png index f406c99..ee1d504 100644 Binary files a/pacotes/eudock/barImages/dockBg-r.png and b/pacotes/eudock/barImages/dockBg-r.png differ diff --git a/pacotes/eudock/js/euDock.2.0.js b/pacotes/eudock/js/euDock.2.0.js index 86ad0d1..9ebcb4f 100644 --- a/pacotes/eudock/js/euDock.2.0.js +++ b/pacotes/eudock/js/euDock.2.0.js @@ -497,6 +497,7 @@ var euOPAQUE = 16; var venusWidth; var venusHeight; var overIcon; + var temp; if (this.position==euUP || this.position==euDOWN || this.position==euHORIZONTAL){ venusWidth = this.getVenusWidth(); for (var i in this.iconsArray) if (this.iconsArray[i].id) @@ -507,6 +508,12 @@ var euOPAQUE = 16; mouseRelX = this.iconsArray[i].posX+border; border=0; } + try{ + temp = $i(this.iconsArray[i].elementsArray[0].id); + if(temp) + {i3GEO.barraDeBotoes.mostraJanela(temp,this.iconsArray[i].dica);} + } + catch(e){} } for (var i in this.iconsArray) if (this.iconsArray[i].id){ mediana = this.iconsArray[i].posX+this.iconsArray[i].getWidth()/2; @@ -580,22 +587,26 @@ var euOPAQUE = 16; }; this.kernelMouseOut = function(){ + //i3GEO.barraDeBotoes.mostraJanela("",""); var ret=false; - for (var i in this.iconsArray) if (this.iconsArray[i].id) + for (var i in this.iconsArray){ + if (this.iconsArray[i].id) ret|=this.iconsArray[i].setAllFrameTo(0); - if (ret) - this.updateDims(); + if (ret){ + this.updateDims(); + } + } return ret; }; this.mouseOut = function(){ this.isInside=false; - euEnv.exeThreadWhiteLoop=5; + euEnv.exeThreadWhiteLoop=5; }; this.mouseOver = function(){ this.isInside=true; - euEnv.exeThreadWhiteLoop=5; + euEnv.exeThreadWhiteLoop=5; }; this.mouseMove = function(x,y){ @@ -912,7 +923,7 @@ var euOPAQUE = 16; }else document.location.href=this.link; else if (this.mouseInsideClick) - this.mouseInsideClick(x,y,this.id); + this.mouseInsideClick(x,y,this.id,this.getAbsolutePosX(),this.getAbsolutePosY()); } }; -- libgit2 0.21.2