JSF 2.0 + primefaces + GMAP

0 respostas
C

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>
Criado 10 de setembro de 2012
Respostas 0
Participantes 1