Boa Tarde pessoal, to com uma problema que já rodei o google, o fórum, e todas as soluções possíveis e imaginarias e não achei nada que resolvesse.
Eu estou montando uma pagina, e com <p:selectOneMenu> e ao carregar um menu ele cai no bean executa um método e carrega o segundo combo, e assim por diante…
Bom o primeiro combo funcionou certo, carregou o segundo porem não funciona com o terceiro, ele so cai no método se eu escolher o “Selecione”, que vai com valor 0, fora isso ele não seta a variável projetos.
Já debuguei e vem tudo certo do banco… ele manda o objeto com todos os dados pra tela, só não seta o menu escolhido.
Ja não sei mas onde procurar.
agradeceria um help se possivel.
Obs: usando primefaces
Fonte abaixo.
<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition template="/template/form.xhtml"
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">
<ui:define name="form-content">
<h:panelGrid id="Lancamentos" columns="3">
<h:outputLabel value="Cliente:" />
<p:selectOneMenu id="clientes" value="#{Inserirhoras.cliente}">
<f:selectItem itemLabel="Selecione" itemValue="0" />
<f:selectItems value="#{Inserirhoras.combo1}" var="x" itemLabel="#{x.nome}" itemValue="#{x.id}"/>
<p:ajax update="projetos" listener="#{Inserirhoras.changeProjetos}" />
</p:selectOneMenu>
<h:panelGroup/>
<h:outputLabel value="Projeto:" />
<p:selectOneMenu id="projetos" value="#{Inserirhoras.projeto}">
<f:selectItem itemLabel="Selecione" itemValue="0" />
<f:selectItems value="#{Inserirhoras.combo2}" var="y" itemLabel="#{y.nomeProjeto}" itemValue="#{y.id}" />
<p:ajax update="atividades" listener="#{Inserirhoras.mat}"/>
</p:selectOneMenu>
<h:panelGroup/>
<h:outputLabel value="Atividade:" />
<p:selectOneMenu id="atividades" value="#{Inserirhoras.atividades}">
<f:selectItem itemLabel="Selecione" itemValue="" />
<f:selectItems value="#{Inserirhoras.combo3}" var="atv" itemLabel="#{atv.nome}" itemValue="#{atv.id}"/>
</p:selectOneMenu>
<p:message for="atividades" autoUpdate="true" />
</h:panelGrid>
</ui:define>
</ui:composition>
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import br.com.tenbu.atividade.view.AtividadesForm;
import br.com.tenbu.cliente.view.ClienteController;
import br.com.tenbu.cliente.view.ClientesForm;
import br.com.tenbu.htrabalhadas.control.HorasTrabalhadasService;
import br.com.tenbu.projetos.view.ProjetosForm;
@ManagedBean(name="Inserirhoras")
@RequestScoped
public class InserirHorasController {
private ClienteController cli = new ClienteController();
private ClientesForm form = new ClientesForm();
private ProjetosForm projForm = new ProjetosForm();
private AtividadesForm atvForm = new AtividadesForm();
private String Cliente;
private String projeto;
private String Atividades;
private List<ProjetosForm> projetosForm;
private List<AtividadesForm> atividadesForm;
public List<ClientesForm> getCombo1()
{
return cli.getLoadClientes();
}
public List<ProjetosForm> getCombo2()
{
return this.getProjetosForm();
}
public List<AtividadesForm> getCombo3()
{
return this.getAtividadesForm();
}
public List<ProjetosForm> getProjetosForm() {
return projetosForm;
}
public String getAtividades() {
return Atividades;
}
public void setAtividades(String atividades) {
Atividades = atividades;
}
public List<AtividadesForm> getAtividadesForm() {
return atividadesForm;
}
public void setAtividadesForm(List<AtividadesForm> atividadesForm) {
this.atividadesForm = atividadesForm;
}
public void setProjetosForm(List<ProjetosForm> projetosForm) {
this.projetosForm = projetosForm;
}
public InserirHorasController(){
}
public ClientesForm getForm() {
return form;
}
public void setForm(ClientesForm form) {
this.form = form;
}
public String getCliente() {
return Cliente;
}
public void setCliente(String cliente) {
Cliente = cliente;
}
public AtividadesForm getAtvForm() {
return atvForm;
}
public void setAtvForm(AtividadesForm atvForm) {
this.atvForm = atvForm;
}
public String getProjeto() {
return projeto;
}
public void setProjeto(String projeto) {
this.projeto = projeto;
}
public void changeProjetos() {
if(Cliente !=null && !Cliente.equals("0")) {
form.setId(Cliente);
HorasTrabalhadasService service;
List<ProjetosForm> proj = new ArrayList<ProjetosForm>();
service = new HorasTrabalhadasService();
proj = service.findProjetos(form.toClientesVO());
this.setProjetosForm(proj);
}
}
public void mat() { // Mudando o nome pra testar
if(projeto !=null && !projeto.equals("0")) {
projForm.setId(projeto);
HorasTrabalhadasService service;
service = new HorasTrabalhadasService();
atividadesForm = service.findAtividades(projForm.toProjetosVO());
this.setAtividadesForm(atividadesForm);
}
}
}