Primefaces datatable

2 respostas
W

Bom tarde pessoal,

Sou novato em JSF e estou fazendo uma pagina de cadastro com duas datatables do primefaces, a primeira é iniciada com a pagina, já a segunda é atualizada de acordo com a linha que eu seleciono na primeira tabela.
O problema é quando seleciono alguma linha da segunda tabela, o valor do parametro selection não é preenchido com os dados da segunda, ele vem nulo.

Alguem poderia me ajudar?

2 Respostas

pvrsouza

Poste o código para dar uma olhada.

Abraços.

W

Segue o codigo da facelet

<h:form>
                        <p:toolbar id="tollbar">
                            <p:toolbarGroup align="left">
                                <p:commandButton update="tollbar" action="#{vCadastroUsuario.novo}" disabled="#{vCadastroUsuario.ativo}" title="Novo" image="ui-icon-document"/>
                                <p:commandButton update="tollbar" action="#{vCadastroUsuario.alterar}" disabled="#{vCadastroUsuario.ativo}" title="Alterar" image="ui-icon-pencil"/>
                                <p:commandButton update="tollbar" onclick="dlg.show()" title="Deletar" image="ui-icon-trash"/>
                                <p:commandButton update="tollbar" action="#{vCadastroUsuario.salvar}" disabled="#{!vCadastroUsuario.ativo}" title="Salvar" image="ui-icon-disk"/>
                                <p:commandButton update="tollbar" action="#{vCadastroUsuario.cancelar}" disabled="#{!vCadastroUsuario.ativo}" title="Cancelar" image="ui-icon-cancel"/>
                            </p:toolbarGroup>
                        </p:toolbar>
                        <p:dataTable paginator="true" var="usr" paginatorPosition="top" rows="10" value="#{vCadastroUsuario.usuarios}" 
                                     selectionMode="single" selection="#{vCadastroUsuario.usuario}" update="dados1, dados, tabOrg, dialog" rowSelectListener="#{vCadastroUsuario.atualizaUsuario}">
                            <p:column headerText="Usuário" filterBy="#{usr.codUsuario}">
                                <h:outputText value="#{usr.codUsuario}"/>
                            </p:column>
                            <p:column headerText="Sit.">
                                <h:outputText value="#{usr.sitUsuario}"/>
                            </p:column>
                            <p:column headerText="Data Entrada">
                                <h:outputText value="#{usr.datEntrada}"/>
                            </p:column>
                            <p:column headerText="Expira Senha">
                                <h:outputText value="#{usr.flgExpSenha}"/>
                            </p:column>
                            <p:column headerText="Dias Exp.">
                                <h:outputText value="#{usr.qtdDiaExpira}"/>
                            </p:column>
                            <p:column headerText="Últ. Atualiz. Senha">
                                <h:outputText value="#{usr.datUltAtualizSenha}"/>
                            </p:column>
                        </p:dataTable>
                        <p:tabView>
                            <p:tab title="Geral" >
                                <h:panelGrid columns="2" id="dados">
                                    <h:outputLabel value="Usuário: "/>
                                    <p:inputText value="#{vCadastroUsuario.codUsuario}"/>
                                    <h:outputLabel value="Senha: "/>
                                    <p:password value="#{vCadastroUsuario.pwdUsuario}" feedback="false" minLength="6"/>
                                    <h:outputLabel value="Repita a Senha: "/>
                                    <p:password value="#{vCadastroUsuario.pwdUsuario1}" feedback="false" minLength="6"/>
                                </h:panelGrid>
                                <p:separator/>
                                <h:panelGrid columns="2" id="dados1">
                                    <h:outputLabel value="Situação: "/>
                                    <h:selectOneMenu value="#{vCadastroUsuario.sitUsuario}">
                                        <f:selectItem itemValue="Ativo"/>
                                        <f:selectItem itemValue="Inativo"/>
                                    </h:selectOneMenu>
                                    <h:outputLabel value="Data Entrada: "/>
                                    <h:outputText value="#{vCadastroUsuario.datEntrada}"/>
                                    <h:outputLabel value="Expira Senha: "/>
                                    <h:selectOneMenu value="#{vCadastroUsuario.flgExpSenha}">
                                        <f:selectItem itemValue="Sim"/>
                                        <f:selectItem itemValue="Não"/>
                                    </h:selectOneMenu>
                                    <h:outputLabel value="Dias p/ Expiração: "/>
                                    <p:inputText value="#{vCadastroUsuario.qtdDiaExpira}"/>
                                    <h:outputLabel value="Última Atualização da Senha: "/>
                                    <h:outputText value="#{vCadastroUsuario.datUltAtualizSenha}"/>
                                </h:panelGrid>
                            </p:tab>
                            <p:tab title="Organizações">
                                <p:toolbar id="tollbarOrg">
                                    <p:toolbarGroup align="left">
                                        <p:commandButton update="tollbarOrg" action="#{vCadastroUsuario.novoOrg}" disabled="#{vCadastroUsuario.ativoOrg}" title="Novo" image="ui-icon-document"/>
                                        <p:commandButton update="tollbarOrg" action="#{vCadastroUsuario.alterarOrg}" disabled="#{vCadastroUsuario.ativoOrg}" title="Alterar" image="ui-icon-pencil"/>
                                        <p:commandButton update="tollbarOrg" action="#{vCadastroUsuario.deletarOrg}" title="Deletar" image="ui-icon-trash"/>
                                        <p:commandButton update="tollbarOrg" action="#{vCadastroUsuario.salvarOrg}" disabled="#{!vCadastroUsuario.ativoOrg}" title="Salvar" image="ui-icon-disk"/>
                                        <p:commandButton update="tollbarOrg" action="#{vCadastroUsuario.cancelarOrg}" disabled="#{!vCadastroUsuario.ativoOrg}" title="Cancelar" image="ui-icon-cancel"/>
                                    </p:toolbarGroup>
                                </p:toolbar>
                                <p:dataTable id="tabOrg" var="org" value="#{vCadastroUsuario.organizacoes}" selectionMode="single" selection="#{vCadastroUsuario.organizacao}"
                                             update="detOrg" rowSelectListener="#{vCadastroUsuario.atualizaOrg}">
                                    <p:column headerText="Org.">
                                        <h:outputText value="#{org[0]}"/>
                                    </p:column>
                                    <p:column headerText="Organização">
                                        <h:outputText value="#{org[1]}"/>
                                    </p:column>
                                    <p:column headerText="Pessoa">
                                        <h:outputText value="#{org[2]}"/>
                                    </p:column>
                                    <p:column headerText="Pessoa">
                                        <h:outputText value="#{org[3]}"/>
                                    </p:column>
                                </p:dataTable>
                                <h:panelGrid columns="4" id="detOrg">
                                    <h:outputLabel value="Organização: "/>
                                    <p:inputText value="#{vCadastroUsuario.codOrganizacao}"/>
                                    <p:commandButton image="ui-icon-search"/>
                                    <h:outputText value="#{vCadastroUsuario.desOrganizacao}"/>
                                    <h:outputLabel value="Pessoa: "/>
                                    <p:inputText value="#{vCadastroUsuario.codPessoa}"/>
                                    <p:commandButton image="ui-icon-search"/>
                                    <h:outputText value="#{vCadastroUsuario.nomPessoa}"/>
                                </h:panelGrid>
                            </p:tab>
                        </p:tabView>
                        <p:dialog widgetVar="dlg" modal="true">
                            <h:panelGrid columns="2" id="dialog" style="text-align: center">
                                <h:outputLabel value="Confirma a exclusâo de : "/>
                                <h:outputText value="#{vCadastroUsuario.codUsuario}"/>
                                <p:commandButton value="Não" onclick="dlg.hide()"/>
                                <p:commandButton value="Sim" action="#{vCadastroUsuario.deletar}" onclick="dlg.hide()" update="growl"/>
                            </h:panelGrid>
                        </p:dialog>
                    </h:form>

E o Managed Bean

@ManagedBean
@RequestScoped
public class VCadastroUsuario {

    private AdmUsuario usuario;
    private List organizacoes;
    private List<AdmUsuario> usuarios;
    private Object[] organizacao;
    private boolean ativo = false;
    private boolean ativoOrg = false;
    private String codUsuario;
    private String sitUsuario;
    private Date datAtualiz;
    private Integer horAtualiz;
    private String pwdUsuario;
    private String pwdUsuario1;
    private String flgExpSenha;
    private Integer qtdDiaExpira;
    private Date datUltAtualizSenha;
    private Date datEntrada;
    private String codOrganizacao;
    private String codPessoa;
    private String nomPessoa;
    private String desOrganizacao;


    public VCadastroUsuario() {
        usuarios = AdmUsuarioDao.getAdmUsuario();
    }

    public String getCodOrganizacao() {
        return codOrganizacao;
    }

    public void setCodOrganizacao(String codOrganizacao) {
        this.codOrganizacao = codOrganizacao;
    }

    public String getDesOrganizacao() {
        return desOrganizacao;
    }

    public void setDesOrganizacao(String desOrganizacao) {
        this.desOrganizacao = desOrganizacao;
    }

    public String getNomPessoa() {
        return nomPessoa;
    }

    public void setNomPessoa(String nomPessoa) {
        this.nomPessoa = nomPessoa;
    }

    public void novo(){
        this.ativo = true;
    }

    public void alterar(){
        this.ativo = true;
    }

    public void deletar(){
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Deletado com sucesso"));
    }

    public void salvar(){
        this.ativo = true;
    }

    public void cancelar(){
        this.ativo = true;
    }


    public boolean getAtivo() {
        return ativo;
    }

    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }

    public boolean getAtivoOrg() {
        return ativoOrg;
    }

     public void novoOrg(){
        this.ativoOrg = true;
    }

    public void alterarOrg(){
        this.ativoOrg = true;
    }

    public void deletarOrg(){
    }

    public void salvarOrg(){
        this.ativoOrg = true;
    }

    public void cancelarOrg(){
        this.ativoOrg = true;
    }

    public List<AdmUsuario> getUsuarios() {
        return usuarios;
    }

    public AdmUsuario getUsuario() {
        return usuario;
    }

    public void setUsuario(AdmUsuario usuario) {
        this.usuario = usuario;
    }


    public void setAtivoOrg(boolean ativoOrg) {
        this.ativoOrg = ativoOrg;
    }

    public String getCodUsuario() {
        return codUsuario;
    }

    public void setCodUsuario(String codUsuario) {
        this.codUsuario = codUsuario;
    }

    public Date getDatAtualiz() {
        return datAtualiz;
    }

    public void setDatAtualiz(Date datAtualiz) {
        this.datAtualiz = datAtualiz;
    }

    public Date getDatEntrada() {
        return datEntrada;
    }

    public void setDatEntrada(Date datEntrada) {
        this.datEntrada = datEntrada;
    }

    public Date getDatUltAtualizSenha() {
        return datUltAtualizSenha;
    }

    public void setDatUltAtualizSenha(Date datUltAtualizSenha) {
        this.datUltAtualizSenha = datUltAtualizSenha;
    }

    public String getFlgExpSenha() {
        return flgExpSenha;
    }

    public void setFlgExpSenha(String flgExpSenha) {
        this.flgExpSenha = flgExpSenha;
    }

    public Integer getHorAtualiz() {
        return horAtualiz;
    }

    public void setHorAtualiz(Integer horAtualiz) {
        this.horAtualiz = horAtualiz;
    }

    public String getPwdUsuario() {
        return pwdUsuario;
    }

    public void setPwdUsuario(String pwdUsuario) {
        this.pwdUsuario = pwdUsuario;
    }

    public Integer getQtdDiaExpira() {
        return qtdDiaExpira;
    }

    public void setQtdDiaExpira(Integer qtdDiaExpira) {
        this.qtdDiaExpira = qtdDiaExpira;
    }

    public String getSitUsuario() {
        return sitUsuario;
    }

    public void setSitUsuario(String sitUsuario) {
        this.sitUsuario = sitUsuario;
    }

    public String getPwdUsuario1() {
        return pwdUsuario1;
    }

    public void setPwdUsuario1(String pwdUsuario1) {
        this.pwdUsuario1 = pwdUsuario1;
    }

    public void atualizaUsuario(SelectEvent event){
        setCodUsuario(usuario.getCodUsuario());
        setSitUsuario(usuario.getSitUsuario());
        setDatEntrada(usuario.getDatEntrada());
        setFlgExpSenha(usuario.getFlgExpSenha());
        setQtdDiaExpira(usuario.getQtdDiaExpira());
        setDatUltAtualizSenha(usuario.getDatUltAtualizSenha());
        
    }

    
    public void atualizaOrg(SelectEvent event){
        codOrganizacao = organizacao[0].toString();
        codPessoa = organizacao[1].toString();
        desOrganizacao = organizacao[2].toString();
        nomPessoa = organizacao[3].toString();
    }

    public Object[] getOrganizacao() {
        return organizacao;
    }

    public void setOrganizacao(Object[] organizacao) {
        this.organizacao = organizacao;
    }
    
    public String getCodPessoa() {
        return codPessoa;
    }

    public void setCodPessoa(String codPessoa) {
        this.codPessoa = codPessoa;
    }

    public List getOrganizacoes() {
        Session session = HibernateUtil.getSession();
        organizacoes = AdmUsuarioDao.getOrganizacao(session, codUsuario);
        session.close();
        return organizacoes;
    }

    public void setOrganizacoes(List organizacoes) {
        this.organizacoes = organizacoes;
    }

    

}
Criado 28 de fevereiro de 2011
Ultima resposta 1 de mar. de 2011
Respostas 2
Participantes 2