Guardar valores de um objeto + tabview

Pessoal,

Tenho um tabview que por sua vez tem as tabs renderizadas conforme seleção de um perfil em um campo selectOneMenu.

Antes de selecionar o perfil para montar a tabview completa, eu seleciono o usuário com quem vou trabalhar, por meio de um campo autoComplete, eu verifico se esse usuário já existe na base de dados e carrego todos os dados dele…

Fui imprimindo os valores no console e tá tudo certinho…

Quando seleciono na tabview o perfil com quem o qual vou trabalhar para completar a tabview com outros formulários, imprimo novamente os valores do usuário que eu tinha armazenado e eles ficam nulos. Acredito que esteja sendo criado um novo objeto.

A única coisa que faço ao selecionar um perfil, eh setar alguns “tabs” como rendered=true e atualizar a tabview por meio de <p:ajax/>. A principio não existe nenhuma modificação nos valores do usuário selecionado.

Se eu selecionar primeiro o perfil para montar a tabview completa e depois pesquisar o usuário, não sei porque motivo mas as tabs travam. Clico nas tab e não mudam de uma pra outra e se selecione o usuário primeiro para depois montar a tabview completa, perco os valores que havia armazenado…

Estou utilizando primefaces 3.4.1

    /*
     * Prrencher campos com dados do usuário
     */
    public void preencherCampos(SelectEvent event) throws ParseException {
        usuario = pc.searchUsersByName(paciente);
        dataNascimento = usuario.getDataNascimento();
        idade = ci.getIdade(dataNascimento);
        dataConsulta = new Date();
        SimpleDateFormat formatar = new SimpleDateFormat("dd/MM/yyyy");
        data = formatar.format(dataConsulta);
        endereco = usuario.getCidade() + " " + usuario.getBairro()
                + " " + usuario.getLogradouro() + " " + usuario.getNumero();
        telefoneR = usuario.getTelefonePrincipal();
        telefoneC = usuario.getTelefoneSecundario();
        email = usuario.getEmail();
        if (usuario.getSexo().equals("M")) {
            sexoP = "Masculino";
        } else {
            sexoP = "Feminino";
        }
        prontuario.receberUsuario(usuario);         //Enviando usuario para classe prontuario
        acompanhanteN = prontuario.getTp().getAcompanhante();
        profissao = prontuario.getTp().getProfissaoOcupacao();
        parente = prontuario.getTp().getGrauDeParentesco();
        objetivo = prontuario.getTp().getObjetivo();
    }
    /*
     * Recebe o usuário selecionado para o prontuário
     */
    public void receberUsuario(TbUsuario usuario) {
        /*
         * Verificando se existe prontuário para o usuário selecionado
         */
        tp = pc.existeProntuario(usuario);
        paciente = usuario.getNomeCompleto(); //Teste - Guardando nome do usuário
        System.out.println("Paciente: " + paciente); // Valor correto
        if (tp != null) {
            existeProntuario = true;
            antA.setId(tp.getIdProntuario());
            tp.getIdProntuario();
        } else {
            existeProntuario = false;
            tp = new TbProntuario();
        }
    }

    public void teste(){
        System.out.println("Paciente: " + paciente); 
    }

    /*
     * Montar prontuario (renderizar componentes) após selecionar o perfil desejado
     */
    public void montarProntuario() {
        teste(); //Imprime NULL
        if (prontuario.equals("adolescente")) {
            antropometricosLactente = false;
            antropometricosMaterno = false;
            dadosClinicos = true;
            dadosDoBebe = false;
            dadosGestacionais = false;
            examesBioquimicos = true;
            frequenciaAlimentar = true;
            habitosDeVida = true;
            historicoDeSaude = true;
            lactante = false;
            recordatorioAlimentar = true;
            sinaisESintomas = true;
            antropometricosGestante = false;
            antropometricosGestAdolescente = false;
            antropometricoAdolescente = true;
            antropometricoAdulto = false;
            dadosPessoais.setAcompanhante(true);
            dadosPessoais.setSexo(true);
            dadosPessoais.setgParente(true);
            dadosPessoais.setpOcupacao(false);
        } else if (prontuario.equals("criancas2")) {

            antropometricosLactente = true;
            antropometricosMaterno = false;
            dadosClinicos = true;
            dadosDoBebe = false;
            dadosGestacionais = false;
            examesBioquimicos = true;
            frequenciaAlimentar = false;
            habitosDeVida = true;
            historicoDeSaude = true;
            lactante = false;
            recordatorioAlimentar = true;
            sinaisESintomas = true;
            antropometricosGestante = false;
            antropometricosGestAdolescente = false;
            antropometricoAdolescente = false;
            antropometricoAdulto = false;
            dadosPessoais.setAcompanhante(true);
            dadosPessoais.setSexo(true);
            dadosPessoais.setgParente(true);
            dadosPessoais.setpOcupacao(false);
        } else if (prontuario.equals("crianca")) {

            antropometricosLactente = true;
            antropometricosMaterno = false;
            dadosClinicos = true;
            dadosDoBebe = false;
            dadosGestacionais = false;
            examesBioquimicos = true;
            frequenciaAlimentar = false;
            habitosDeVida = true;
            historicoDeSaude = true;
            lactante = false;
            recordatorioAlimentar = true;
            sinaisESintomas = true;
            antropometricosGestante = false;
            antropometricosGestAdolescente = false;
            antropometricoAdolescente = false;
            antropometricoAdulto = false;
            dadosPessoais.setAcompanhante(true);
            dadosPessoais.setSexo(true);
            dadosPessoais.setgParente(true);
            dadosPessoais.setpOcupacao(false);
        } else if (prontuario.equals("lactente")) {

            antropometricosLactente = true;
            antropometricosMaterno = true;
            dadosClinicos = true;
            dadosDoBebe = true;
            dadosGestacionais = true;
            examesBioquimicos = false;
            frequenciaAlimentar = false;
            habitosDeVida = true;
            historicoDeSaude = true;
            lactante = false;
            recordatorioAlimentar = true;
            sinaisESintomas = true;
            antropometricosGestante = false;
            antropometricosGestAdolescente = false;
            antropometricoAdolescente = false;
            antropometricoAdulto = false;
            dadosPessoais.setAcompanhante(false);
            dadosPessoais.setSexo(false);
            dadosPessoais.setgParente(false);
            dadosPessoais.setpOcupacao(true);
        } else if (prontuario.equals("gestanteAdolescente")) {

            antropometricosLactente = false;
            antropometricosMaterno = false;
            dadosClinicos = true;
            dadosDoBebe = false;
            dadosGestacionais = true;
            examesBioquimicos = true;
            frequenciaAlimentar = true;
            habitosDeVida = true;
            historicoDeSaude = true;
            lactante = false;
            recordatorioAlimentar = true;
            sinaisESintomas = true;
            antropometricosGestante = false;
            antropometricosGestAdolescente = true;
            antropometricoAdolescente = false;
            antropometricoAdulto = false;
            dadosPessoais.setAcompanhante(true);
            dadosPessoais.setSexo(false);
            dadosPessoais.setgParente(true);
            dadosPessoais.setpOcupacao(false);
        } else if (prontuario.equals("gestante")) {

            antropometricosLactente = false;
            antropometricosMaterno = false;
            dadosClinicos = true;
            dadosDoBebe = false;
            dadosGestacionais = true;
            examesBioquimicos = true;
            frequenciaAlimentar = false;
            habitosDeVida = true;
            historicoDeSaude = true;
            lactante = false;
            recordatorioAlimentar = true;
            sinaisESintomas = true;
            antropometricosGestante = true;
            antropometricosGestAdolescente = false;
            antropometricoAdolescente = false;
            antropometricoAdulto = false;
            dadosPessoais.setAcompanhante(false);
            dadosPessoais.setSexo(false);
            dadosPessoais.setgParente(false);
            dadosPessoais.setpOcupacao(false);
        } else if (prontuario.equals("nenhum")) {

            antropometricosLactente = false;
            antropometricosMaterno = false;
            dadosClinicos = false;
            dadosDoBebe = false;
            dadosGestacionais = false;
            examesBioquimicos = false;
            frequenciaAlimentar = false;
            habitosDeVida = false;
            historicoDeSaude = false;
            lactante = false;
            recordatorioAlimentar = false;
            sinaisESintomas = false;
            antropometricosGestante = false;
            antropometricosGestAdolescente = false;
            antropometricoAdolescente = false;
            antropometricoAdulto = false;
        } else { //Adulto

            antropometricosLactente = false;
            antropometricosMaterno = false;
            dadosClinicos = true;
            dadosDoBebe = false;
            dadosGestacionais = false;
            examesBioquimicos = true;
            frequenciaAlimentar = false;
            habitosDeVida = true;
            historicoDeSaude = true;
            lactante = false;
            recordatorioAlimentar = true;
            sinaisESintomas = true;
            antropometricosGestante = false;
            antropometricosGestAdolescente = false;
            antropometricoAdolescente = false;
            antropometricoAdulto = true;
            dadosPessoais.setAcompanhante(false);
            dadosPessoais.setSexo(true);
            dadosPessoais.setgParente(false);
            dadosPessoais.setpOcupacao(false);
        }
    }

//Seleciono perfil desejado

&lt;p:panelGrid columns="4"&gt;
                        &lt;h:outputLabel for="" value="Selecionar prontuário (Padrão): "/&gt;
                        &lt;p:selectOneMenu value="#{prontuario.prontuario}" effect="blind"&gt;
                            &lt;f:selectItem itemValue="nenhum" itemLabel="Nenhum"/&gt;
                            &lt;f:selectItem itemValue="adolescente" itemLabel="Adolescente"/&gt;
                            &lt;f:selectItem itemValue="criancas2" itemLabel="Crianças até 5 anos"/&gt;
                            &lt;f:selectItem itemValue="crianca" itemLabel="Crianças de 5 a 10 anos"/&gt;
                            &lt;f:selectItem itemValue="lactente" itemLabel="Lactente até 6 meses"/&gt;
                            &lt;f:selectItem itemValue="gestanteAdolescente" itemLabel="Gestante Adolescente"/&gt;
                            &lt;f:selectItem itemValue="gestante" itemLabel="Gestante"/&gt;
                            &lt;f:selectItem itemValue="adulto" itemLabel="Adulto/Idoso"/&gt;
                            &lt;p:ajax listener="#{prontuario.montarProntuario}" update="TabView" /&gt;
                        &lt;/p:selectOneMenu&gt;               
                    &lt;/p:panelGrid&gt;

Estou com um problema parecido.
Esperando a resposta.

[quote=Radiance]Estou com um problema parecido.
Esperando a resposta.[/quote]

Cara, resolvi o problema ontem com o uso de Injection…

@ManagedProperty(value = "#{nomeDoBeanDaClasseInjetada}")
private ClasseInjetada classeInjetada;
//Tem que implementar o método set dela...

public void setClasseInjetada(ClasseInjetada classeInjetada){
this.classeInjetada = classeInjetada
}