Galera, pelo 35ª vez venho no forum por causa de ferramentas como o primefaces.
Eu tenho uma plicação toda feita com o primefaces 3.0 e funciona que é uma blza!!
Resolvi mudar a versao do jar e nunca mais que da certo.
No codigo abaixo nao estou conseguindo chamar o meu metodo com ActionEvent. E quando chamo o meu p:dialog nao retorna o que foi selecionado no list.
Meu XHTMl
<ui:composition 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">
<h:form id="formLogradouro" >
<h:panelGrid title="Logradouro" >
<p:dataTable id="logradouros" var="logradouro" value="#{janelaLogradouro.listaDeLogradouros}" paginator="true" rows="#{janelaLogradouro.numeroDeLinhas}" rowsPerPageTemplate="#{janelaLogradouro.linhasPorPagina}"
selection="#{janelaLogradouro.logradouro}" selectionMode="single" rowKey="#{logradouro.descricao}" >
<f:facet name="header">
<h:outputText value="Lista de Logradouros" />
</f:facet>
<p:column headerText="Id">
#{logradouro.id}
</p:column>
<p:column headerText="Descrição">
#{logradouro.descricao}
</p:column>
<p:column headerText="Abreviação" >
#{logradouro.abreviacao}
</p:column>
<f:facet name="footer">
<h:panelGroup style="display:block; text-align:center">.
<p:commandButton image="ui-icon ui-icon-pencil" value="Editar" style="width:80px" oncomplete="logradouroDialog.show()" update=":formCenter:formLogradouro:formDialogo:display" actionListener="#{janelaLogradouro.selecionarIdDoLogadouro}" ajax="true"/>
<p:commandButton image="ui-icon ui-icon-document" value="Novo" style="width:80px"/>
<p:commandButton image="ui-icon ui-icon-close" value="Sair" style="width:80px"/>
</h:panelGroup>
</f:facet>
</p:dataTable>
<p:dialog id="dialog" header="Logradouro" widgetVar="logradouroDialog" resizable="false"
width="200" showEffect="clip" hideEffect="fold">
<h:form prependId="false" id="formDialogo">
<h:panelGrid id="display" columns="2" cellpadding="4">
<h:outputText value="Id:" />
<h:outputText value="#{janelaLogradouro.logradouro.id}" />
<h:outputText value="Descrição:" />
<h:outputText value="#{janelaLogradouro.logradouro.descricao}" />
<h:outputText value="Abreviação:" />
<h:outputText value="#{janelaLogradouro.logradouro.abreviacao}" />
</h:panelGrid>
</h:form>
</p:dialog>
</h:panelGrid>
</h:form>
</ui:composition>
Minha Classe
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.mitter.janela;
import br.com.mitter.modelo.Logradouro;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
/**
*
* @author Vinicius
*/
@ManagedBean(name = "janelaLogradouro")
@SessionScoped
public class JanelaLogradouro implements Serializable{
private List<Logradouro> listaDeLogradouros;
private Logradouro logradouro;
public JanelaLogradouro() {
listaDeLogradouros = new ArrayList<Logradouro>();
logradouro = new Logradouro();
mock();
}
public void selecionarIdDoLogadouro(ActionEvent actionEvent){
System.out.println("");
}
public List<Logradouro> getListaDeLogradouros() {
return listaDeLogradouros;
}
public void setListaDeLogradouros(List<Logradouro> listaDeLogradouros) {
this.listaDeLogradouros = listaDeLogradouros;
}
private void mock(){
for(int i = 0; i < 50; i++){
listaDeLogradouros.add(new Logradouro(i, "Descricao "+i, "Abreviacao Abreviacao Abreviacao "+i));
}
}
public Logradouro getLogradouro() {
return logradouro;
}
public void setLogradouro(Logradouro logradouro) {
this.logradouro = logradouro;
}
}