Dúvida: Rich:gmap dentro de uma rich:tab

2 respostas
C

Olá,

Sou novo por aqui aqui, entao me desculpem se estou criando este tópico em lugar errado!

Bom, estou utilizando RichTabPanel como menu de toda minha aplicação.
São 5 abas. Na primeira lista meus objetos. Quando clico em detalhes na linha do objeto que desejo ver os detalhes, o richtabpanel é atualizado jogando automaticamente para a aba 3 (Detalhes).

A aba 5 é onde é exibido os dados do meu objeto no em um rich:gmap. As informações são tratadas por várias funções em JS, é atualizado e aparece o caminho com pontos no google maps.

Coloquei um item na linha da aba 1 (q lista meus objetos) como sendo o link para jogar para a aba 5 (gmap) altomaticamente. Assim como o item Detalhes.

A questão é:
Se eu seleciono meu objeto na lista da aba 1 e clico na aba 5, ele funciona perfeitamente o FireBug nao acusa nda também. Td certo!
Porém, quando eu clico no link “Olhe este objeto no google maps” da aba 1 que deveria jogar para aba 5 automaticamente (assim como o item Detalhes, que joga para aba 3 (detalhes) sem problemas), ele não funciona. A tela fica branca e na barra de status aparece “Leu gmap.static.com”. Se eu volto a pagina e clico na aba mesmo, o gmaps aparece perfeitamente.

Já tirei todos os JS, mesmo com o mapa normal não funciona.
Ah, e se eu tiro o gmaps da aba 5, ele muda automaticamente normalmente.
Tentei colocar um form pra tudo, um form para cada aba… mas continuou igual.
Resumindo: Quando clico na aba eu passo alguma coisa que quando eu altero o selectedTab do rich:tabpanel.

Se alguém puder ajudar eu agradeço mto!

Meu mapa:

<rich:gmap rendered="true" gmapVar="map" style="width:420px; height:400px" id="gmap" gmapKey="#{gmapsMBean.gmapkey}" lat="#{gmapsMBean.lat}" lng="#{gmapsMBean.lng}" zoom="#{gmapsMBean.zoom}" oninit="carregarEquips()" mapType="G_NORMAL_MAP"/>

Item na aba 1 que joga pra aba 5 (o showMonitor é quem altera o selectedTab):

<a4j:commandLink action="#{circuitsMBean.showMonitor}" value="" reRender="tabCircuits" style="color:White;"> <h:graphicImage value="/image/Icon/monitoreIcon.png"/> <f:param name="circuitoID" value="#{c.id}" /> </a4j:commandLink>

2 Respostas

C

Pessoal, parece que o API do google maps não suporta requisições via ajax.

Portando só pode dar certo isso que tentei se eu criar o objeto do Gmap2 (tem q ser 2) no template principal. Desta forma a cada requisição que eu fizer ele irá criar um objeto novo (esta eh a maneira se fazer um mapa dinâmico de verdade).

O que não resolve meu problema, já que preciso de um mapa que simplemente atualize. Só que seja exibido em outra aba.

Se eu estiver falando besteira por favor me corrijam.

C

Desculpe a ignorância pessoal!

O problema é que o gmap NÃO aceita requisições ajax.

Então não pode dar um reRender no gmap.

Para resolver basta usar um h:commandLink no lugar do a4j:commandLink (ajax) na aba que eu precisaria mandar para outra aba.
Assim não é preciso usar reRender.

ObrigadO!

Criado 16 de agosto de 2010
Ultima resposta 18 de ago. de 2010
Respostas 2
Participantes 1