Estou precisando de uma ajuda com o Primefaces, eu preciso neste evento abaixo que já está meio encaminhado um exemplo que eu peguei do próprio Primefaces mais que depois vou adaptar para que eu quero, bom é uma grid editável já funcionando, daí você preenche a matricula e vai chamar um método, nesse método vou pesquisar as informações, e preencher mais dois campos da Datatable respectivamente, minha dúvida é, como eu pego essa linha que eu estou editando e disparo com o evento blur passando a matricula que vou querer pesquisar, e depois fazer ele atualizar essa mesma linha com esses dois novos campos preenchidos. Cai no meio do caminho em um projeto na empresa, e nunca trabalhei com Primefaces. Então resumidamente o que eu preciso é que o envento blur funcione que já consigue até funcionar já, mas não sei se é a melhor maneira e com isso vou ter que pegar essa matricula que digitei e conseguir pegar lá no Java pra poder fazer a pesquisa do Funcionário e pegar duas informações e preencher o Nome e o Turno no código abaixo.
@ManagedBean(name="dtAddRowView")
@ViewScoped
public class AddRowView implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@PersistenceContext
private EntityManager em;
private List<AprovacaoFuncionario> listaAprovacaoFuncionario;
private AprovacaoFuncionario aprovacaoFuncionario;
@ManagedProperty("#{carService}")
private CarService service;
@PostConstruct
public void init() {
listaAprovacaoFuncionario = service.createCars(10);
aprovacaoFuncionario = new AprovacaoFuncionario();
}
public void onRowEdit(RowEditEvent event) {
FacesMessage msg = new FacesMessage("Funcionário Editado", ((AprovacaoFuncionario) event.getObject()).getMatricula());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void onRowCancel(RowEditEvent event) {
FacesMessage msg = new FacesMessage("Edição Cancelada", ((AprovacaoFuncionario) event.getObject()).getMatricula());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void onAddNew() {
// Add one new car to the table:
AprovacaoFuncionario aprovacaoFuncionario = service.createCars(1).get(0);
listaAprovacaoFuncionario.add(aprovacaoFuncionario);
FacesMessage msg = new FacesMessage("Registro Adicionado", aprovacaoFuncionario.getMatricula());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void selectRowAprovacaoFuncionario(AprovacaoFuncionario aprovacaoFuncionario) {
Fun fun = null;
try {
fun = (Fun) em.createQuery("SELECT f FROM Fun f WHERE ATRREGISTRO = '" + aprovacaoFuncionario.getMatricula() + "'", Fun.class).getSingleResult();
} catch (NonUniqueResultException e) {
FacesMessage msg = new FacesMessage("Encontrado mais de um Funcionário com a mesma Matrícula.", aprovacaoFuncionario.getMatricula());
FacesContext.getCurrentInstance().addMessage(null, msg);
return;
} catch (NoResultException e) {
FacesMessage msg = new FacesMessage("Não encontrando o Funcionário informado.", aprovacaoFuncionario.getMatricula());
FacesContext.getCurrentInstance().addMessage(null, msg);
return;
}
em.clear();
Pes pes = (Pes) em.createQuery("SELECT p FROM Pes p WHERE ATRIDPESSOA = " + fun.getIdPessoa(), Pes.class).getSingleResult();
em.clear();
FunTur funTur = (FunTur) em.createQuery("SELECT f FROM FunTur f WHERE ATRIDFUNCIONARIO = " + fun.getAtrIdFuncionario(), FunTur.class).getSingleResult();
em.clear();
Tur tur = (Tur) em.createQuery("SELECT t FROM Tur t WHERE ATRIDTURNO = " + funTur.getTur().getAtrIdTurno(), Tur.class).getSingleResult();
this.aprovacaoFuncionario = aprovacaoFuncionario;
this.aprovacaoFuncionario.setNome(pes.getAtrNomePessoa());
this.aprovacaoFuncionario.setTurno(tur.getAtrNomeTurno());
updateRow();
}
public void updateRow () {
aprovacaoFuncionario = new AprovacaoFuncionario();
}
public List<AprovacaoFuncionario> getListaAprovacaoFuncionario() {
return listaAprovacaoFuncionario;
}
public void setListaAprovacaoFuncionario(List<AprovacaoFuncionario> listaAprovacaoFuncionario) {
this.listaAprovacaoFuncionario = listaAprovacaoFuncionario;
}
public AprovacaoFuncionario getAprovacaoFuncionario() {
return aprovacaoFuncionario;
}
public void setAprovacaoFuncionario(AprovacaoFuncionario aprovacaoFuncionario) {
this.aprovacaoFuncionario = aprovacaoFuncionario;
}
public CarService getService() {
return service;
}
public void setService(CarService service) {
this.service = service;
}
}