Olá pessoa, tenho o seguinte dialog primefaces:
<p:dialog widgetVar="dlgProInseto" header="Procurar Inseto" modal="true" closable="true" visible="false" position="center" width="462" height="205" resizable="false" draggable="true" closeOnEscape="true" showEffect="fold" hideEffect="fold">
<h:form id="frmManuBuscaInseto">
<table style="margin-top: 05pt">
<tr>
<td>
<fieldset style="width: 135px; height: 85px">
<legend style="font-weight: bold">Tipo</legend>
<h:selectOneRadio id="sorOpcao" layout="pageDirection" style="margin-left: 05pt" value="#{insetoBeam.sorOpcao}">
<f:selectItem id="sorCodigo" itemLabel="Código" itemValue="c" />
<f:selectItem id="sorNCientifico" itemLabel="Nome Científico" itemValue="nc" />
<f:selectItem id="sorNVulgar" itemLabel="Nome Vulgar" itemValue="nv" />
</h:selectOneRadio>
</fieldset>
</td>
<td>
<fieldset style="width: 260px; height: 85px">
<legend style="font-weight: bold">Argumento</legend>
<h:panelGrid columns="1" style="margin-left: 05pt; margin-top: 13pt">
<p:inputText style="width: 170pt; background: white;" required="true" requiredMessage="Informe argumento!" value="#{insetoBeam.txtArgumento}" id="txtArgumentoManuInseto" />
</h:panelGrid>
</fieldset>
</td>
</tr>
</table>
<p:toolbar style="margin-top: 05pt; text-align: center">
<p:toolbarGroup align="center">
<p:commandButton style="width: 81pt; height: 25pt;" styleClass="bOkTexto" image="bOk" disabled="" value="OK" id="btnOk" actionListener="#{insetoBeam.btnOkC}" update="frmManuInseto" oncomplete="dlgProInseto.hide()" />
<p:divider />
<p:commandButton style="width: 81pt; height: 25pt;" styleClass="bCancelar2Texto" image="bCancelar2" disabled="" value="Cancelar" id="btnCancelar" immediate="true" oncomplete="dlgProInseto.hide()" />
</p:toolbarGroup>
</p:toolbar>
</h:form>
</p:dialog>
No meu bean tenho uma variável String denominada txtArgumento que recebe o valor da inputText e joga dentro do método consultaId(txtArgumento) --CONVERTIDO PRA LONG-- para retornar o valor da pesquisa no dataTable do primefaces, o problema é que quando informo um código que está em outra página do dataTable ele não caminha mas seta normalmente. Outro problema é quando peço para consultar no método consultarNomeVulgar(txtArgumento) ele passa null.
E ai galera como resolvo o problema meu bean está assim:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package control;
import dao.InsetoDao;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.inject.Named;
import model.Inseto;
/**
*
* @author
*/
@Named
@SessionScoped
public class InsetoBeam implements Serializable {
//Variáveis de ambiente
@EJB
private InsetoDao dao;
private List<Inseto> insetos;
private List<Inseto> sugestoes = new ArrayList<Inseto>();
private Inseto insetoSelecionado;
private Inseto inseto;
private int disponivel = 1;
private int indisponivel = 0;
private String sorOpcao;
private String txtArgumento;
//Estado inicial
public InsetoBeam(){
sorOpcao = "c";
txtArgumento = "";
}
//Métodos de SGBD
public void novo(){
inseto = new Inseto();
}
public Inseto consultarId(Long idInseto){
inseto = dao.consultarId(idInseto);
return inseto;
}
public Inseto consultarNomeCientifico(String nomeCientifico){
inseto = dao.consultarNomeCientifico(nomeCientifico);
return inseto;
}
public Inseto consultarNomeVulgar(String nomeVulgar){
inseto = dao.consultarNomeVulgar(nomeVulgar);
return inseto;
}
public void selecionar(ActionEvent evt){
Long idInseto = (Long) evt.getComponent().getAttributes().get("idInseto");
inseto = dao.selecionar(idInseto);
}
public void gravar(){
FacesContext context = FacesContext.getCurrentInstance();
boolean resultado = dao.gravar(inseto);
if (resultado) {
inseto = new Inseto();
context.addMessage(null, new FacesMessage("Dados gravados com sucesso!"));
} else {
context.addMessage(null, new FacesMessage("Falha ao gravar dados!"));
}
}
public void disponivel(){
inseto.setDisponivel(disponivel);
dao.disponibilidade(inseto);
}
public void indisponivel(){
inseto.setDisponivel(indisponivel);
dao.disponibilidade(inseto);
}
public void btnOkC(ActionEvent evt){
// if(sorOpcao.equals("c")){
// consultarId(insetoSelecionado.getIdInseto());
// } else if(sorOpcao.equals("nc")){
// consultarNomeCientifico(insetoSelecionado.getNomeCientifico());
// } else if(sorOpcao.equals("nv")){
// consultarNomeVulgar(insetoSelecionado.getNomeVulgar());
// }
Long i = Long.valueOf(txtArgumento);
System.out.println("Inseto Selecionado: " + consultarId(i));
}
//Getters and Setters
public List<Inseto> getSugestoes() {
return sugestoes;
}
public void setSugestoes(List<Inseto> sugestoes) {
this.sugestoes = sugestoes;
}
public Inseto getInsetoSelecionado() {
return insetoSelecionado;
}
public void setInsetoSelecionado(Inseto insetoSelecionado) {
this.insetoSelecionado = insetoSelecionado;
}
public Inseto getInseto() {
return inseto;
}
public void setInseto(Inseto inseto) {
this.inseto = inseto;
}
public List<Inseto> getInsetos() {
insetos = dao.listar();
return insetos;
}
public void setInsetos(List<Inseto> insetos) {
this.insetos = insetos;
}
public List<Inseto> completeNomeVulgar(String nomeVulgar) {
this.sugestoes = dao.listar();
List<Inseto> lista = new ArrayList<Inseto>();
for (Inseto i : this.sugestoes) {
if (i.getNomeVulgar().startsWith(nomeVulgar)) {
lista.add(i);
}
}
return lista;
}
public String getSorOpcao() {
return sorOpcao;
}
public void setSorOpcao(String sorOpcao) {
this.sorOpcao = sorOpcao;
}
public String getTxtArgumento() {
return txtArgumento;
}
public void setTxtArgumento(String txtArgumento) {
this.txtArgumento = txtArgumento;
}
}