Ola pessoal ;
Esstou tentando implementar um datatable com Instant Row Selection do primefaces seguindo o modelo do site oficial(http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionInstant.jsf),mas em vez de abrir uma popup ao clicar em um item da tabela , quero abrir um form mas nao estou conseguindo,segue codigos.
Form:
<h:form id="listacantor">
<p:dataTable id="tabelaGeneros" value ="#{generoLogic.generoDataModel}" var="genero" selection="#{generoLogic.genero}" selectionMode="single" >
<p:ajax event="rowSelect" listener="#{generoLogic.onRowSelect}"
action="#{generoLogic.cantorPorGenero}"/>
<p:column sortBy="#{genero.nome}" >
<h:outputText value="#{genero.nome}"/>
</p:column>
</p:dataTable>
</h:form>
manageBean
package br.com.loja.logic;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.hibernate.exception.ConstraintViolationException;
import org.primefaces.event.SelectEvent;
import br.com.loja.PrimeDataModel.CantorDataModel;
import br.com.loja.PrimeDataModel.GeneroDataModel;
import br.com.loja.dao.DaoFactory;
import br.com.loja.modelo.Cantor;
import br.com.loja.modelo.Genero;
import br.com.loja.util.JSFUtil;
@ManagedBean(name="generoLogic")
@SessionScoped
public class GeneroLogic {
private Genero genero = new Genero();
private DaoFactory daoFactory;
private List<Genero> generos;
private List<Cantor> cantores;
private GeneroDataModel generoDataModel;
private CantorDataModel cantorDataModel;
public GeneroLogic(){
DaoFactory daoFactory = new DaoFactory();
this.daoFactory = daoFactory;
this.genero = new Genero();
}
public String cantorPorGenero(){
return "listacantorporgenero";
}
public void setGenero(Genero genero) {
this.genero = genero;
}
public Genero getGenero() {
return genero;
}
public void setGeneros(List<Genero> generos) {
this.generos = generos;
}
public List<Genero> getGeneros() {
generos = this.daoFactory.getGeneroDao().listaTudo();
return generos;
}
public List<Cantor> getCantores(){
cantores = this.daoFactory.getCantorDao().procuraPorCampo("genero",this.genero);
return cantores;
}
public GeneroDataModel getGeneroDataModel() {
generoDataModel = new GeneroDataModel(getGeneros());
return generoDataModel;
}
public CantorDataModel getCantorDataModel(){
cantorDataModel = new CantorDataModel(getCantores());
return cantorDataModel;
}
public void onRowSelect(SelectEvent event) {
this.setGenero((Genero) event.getObject());
}
}