Boa tarde.
Estou criando uma aplicação, a qual mostra os sensores climáticos através de marcadores utilizando o componente GMAP do primefaces. Essa aplicação foi baseada no exemplo de teste (http://www.primefaces.org/showcase/ui/gmapMarkerSelect.jsf) na página do primefaces. Entretanto neste exemplo, ao clilcar sobre um dos sensores, a aplicação apresenta o nome da cidade do marcador selecionado. Ao invés de informar o nome da cidade, eu gostaria direcionar para uma nova página apresentando informações climáticas sobre o marcador selecionado. In felizmente, ainda nao conseguir. Alguém poderia me apresentar uma possível solução? O código da aplicação está abaixo.
MapBean.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.ufpa.eln.controllers;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.map.OverlaySelectEvent;
import org.primefaces.model.map.DefaultMapModel;
import org.primefaces.model.map.LatLng;
import org.primefaces.model.map.MapModel;
import org.primefaces.model.map.Marker;
/**
*
* @author claudomir
*/
@ManagedBean
@SessionScoped
public class MapBean implements Serializable {
private MapModel simpleModel;
private Marker marker;
public MapBean() {
simpleModel = new DefaultMapModel();
//Shared coordinates
LatLng coord1 = new LatLng(-1.43, -48.43);
LatLng coord2 = new LatLng(-3.21, -52.21);
LatLng coord3 = new LatLng(-2.63, -54.95);
LatLng coord4 = new LatLng(-2.25, -49.5);
//Basic marker
simpleModel.addOverlay(new Marker(coord1, "Belém-PA"));
simpleModel.addOverlay(new Marker(coord2, "Altamira-PA"));
simpleModel.addOverlay(new Marker(coord3, "Belterra-PA"));
simpleModel.addOverlay(new Marker(coord4, "Cametá-PA"));
}
public MapModel getSimpleModel() {
return simpleModel;
}
public void onMarkerSelect(OverlaySelectEvent event) {
marker = (Marker) event.getOverlay();
addMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, "Marker Selected", marker.getTitle()));
//return "index";
}
// public void onMarkerLink
public Marker getMarker() {
return marker;
}
public void addMessage(FacesMessage message) {
FacesContext.getCurrentInstance().addMessage(null, message);
}
}
index.xhtml
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<f:view contentType="text/html">
<h:head>
<f:facet name="first">
<meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
<title>PrimeFaces</title>
</f:facet>
</h:head>
<h:body>
<h:outputText value="hello world"/>
<h:form>
<p:growl id="growl" showDetail="true"/>
<p:gmap center="-1.43, -48.43" zoom="5" type="HYBRID" model="#{mapBean.simpleModel}" style="width:600px;height:400px">
<p:ajax event="overlaySelect" listener="#{mapBean.onMarkerSelect}" update="growl" >
</p:ajax>
</p:gmap>
</h:form>
</h:body>
</f:view>
</html>