Prezados, tenho um p:datatable, e quando seleciono uma linha, e clico no botão alterar ele deveria settar a linha selecionada no ManagedBean, isso está funcionando para o meus outros UseCases, mas para esse não está, ja fiz debug, log…de tudo e quanto e não achei o problema, segue os meus códigos:
página XHMTL de manutenção de usuário
<ui:composition template="/templates/Template.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">
<!-- Inicio da Pagina -->
<ui:define name="Conteudo">
<!-- Loading Ajax. -->
<ui:include src="/composition/Ajax.xhtml" />
<p:separator />
<h:form id="frm" binding="#{usuarioMBean.frm}">
<!-- Barra MenuCad -->
<p:panel id="pnlNav" style="border: none;">
<!-- Barra de Navegacao -->
<div align="center">
<p:commandButton id="cmdNovo" value="Novo" icon="ui-icon-newwin"
ajax="true" actionListener="#{usuarioMBean.novo}"
oncomplete="
dlg.show()" immediate="true" process="@this"
update=":dialog,:frmDlgCmd:tbvCad:frmDlgCad,:frmDlgCmd:tbvCad:frmDlgCondAdm" />
<p:commandButton id="cmdAlterar" value="Alterar"
icon="ui-icon-pencil" ajax="true" immediate="true"
actionListener="#{usuarioMBean.prepararRegistro}"
oncomplete="handlePrepararAlterarUsuarioRequest(xhr, status, args)"
update=":dialog,:frmDlgCmd:tbvCad:frmDlgCad,:frmDlgCmd:tbvCad:frmDlgCondAdm" />
<p:commandButton id="cmdExcluir" value="Excluir"
icon="ui-icon-trash" ajax="true"
actionListener="#{usuarioMBean.prepararRegistro}"
oncomplete="handlePrepararExcluirUsuarioRequest(xhr, status, args)"
update=":frm:confirm" />
<p:commandButton value="Fechar" action="Principal" ajax="false"
icon="ui-icon-close" immediate="true" />
</div>
</p:panel>
<p:separator />
<div align="center">
<!-- Inicio da Tabela de Pesquisa -->
<h:panelGrid id="pnlGrdPesquisa" columns="1">
<p:dataTable id="dtUsuario" var="usua" widgetVar="dataTable"
value="#{usuarioMBean.usuarios}"
emptyMessage="Nenhum registro encontrado!" paginator="true"
filterEvent="enter" rows="3" rowKey="#{usua.id}"
style="width: 100%;"
selection="#{usuarioMBean.usuarioSelecionado}"
binding="#{usuarioMBean.dt}">
<f:facet name="header">
Usuários Cadastrados
</f:facet>
<!-- RadioBox de Selecao -->
<p:column selectionMode="single" style="width:30px" />
<p:column headerText="Id" sortBy="#{usua.id}"
filterBy="#{usua.id}" id="colId" style="width: 10px;">
#{usua.id}
</p:column>
<p:column headerText="CPF" filterBy="#{usua.cpf}"
sortBy="#{usua.cpf}" id="colCPF" style="width: 300px;">
#{usua.cpf}
</p:column>
<p:column headerText="Nome" filterBy="#{usua.nome}"
sortBy="#{usua.nome}" id="colNome" style="width: 500px;">
#{usua.nome}
</p:column>
<p:column headerText="Tipo de Usuário"
filterBy="#{usua.tipousuario.descricao}"
sortBy="#{usua.tipousuario.descricao}" id="colTipoUsuario"
style="width: 300px;">
#{usua.tipousuario.descricao}
</p:column>
<p:column headerText="Comdomínio"
filterBy="#{usua.condominio.nome}"
sortBy="#{usua.condominio.nome}" id="colCondominio"
style="width: 300px;">
#{usua.condominio.nome}
</p:column>
</p:dataTable>
</h:panelGrid>
</div>
<!-- Confirmacao de Exclusao -->
<p:confirmDialog id="confirm"
message="Confirma a exclusão do usuário: #{usuarioMBean.usuario.nome}?"
header="Atenção" severity="alert" widgetVar="confDlg"
appendToBody="true">
<p:commandButton id="btnSim" value="Sim"
oncomplete="confDlg.hide();dataTable.clearFilters();dataTable.getPaginator().setPage(0)"
onclick="dataTable.clearFilters();dataTable.getPaginator().setPage(0)"
update=":frm:pnlGrdPesquisa" process="@form" ajax="true"
actionListener="#{usuarioMBean.excluir}" />
<p:commandButton id="BtnNao" value="Não" onclick="confDlg.hide()"
actionListener="#{usuarioMBean.cancelar}" ajax="true"
immediate="true" />
</p:confirmDialog>
</h:form>
<!-- Dialog -->
<p:dialog id="dialog" header="#{usuarioMBean.tituloTela}"
widgetVar="dlg" modal="true" appendToBody="true" showEffect="fade"
hideEffect="explode" resizable="false" width="1000" position="top">
<p:messages autoUpdate="true" />
<h:form id="frmDlgCmd" binding="#{usuarioMBean.frmDlgCmd}">
<p:panel>
<p:tabView orientation="top" id="tbvCad">
<p:tab title="Dados Cadastrais" id="tbInfoCad">
<h:form id="frmDlgCad" binding="#{usuarioMBean.frmDlgCad}">
<div align="center">
<div align="left">
<h:inputHidden id="txtId" value="UsuarioMBean.usuario.id" />
<h:panelGrid id="pnlGrdCad" columns="2" style="width: 100%;">
<h:panelGroup>
<h:outputLabel id="lblTipoUsuario" for="cboTipoUsuario"
value="Tipo de Usuário: " />
<br />
<p:selectOneMenu
value="#{usuarioMBean.tipoUsuarioSelecionado}"
id="cboTipoUsuario" required="true" label="lblTipoUsuario"
effect="fade" effectDuration="10"
converter="tipoUsuarioConversor"
validator="tipoUsuarioValidador"
requiredMessage="Campo tipo usuário é obrigatório.">
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{tipoUsuarioMBean.tipoUsuarios}"
var="tu" itemLabel="#{tu.descricao}" itemValue="#{tu}" />
</p:selectOneMenu>
</h:panelGroup>
<h:panelGroup>
<h:outputLabel id="lblCondominio" for="txtCondominio"
value="Condomínio: " />
<br />
<p:autoComplete
value="#{usuarioMBean.condominioSelecionado}"
id="txtCondominio"
completeMethod="#{usuarioMBean.sugerirCondominios}" var="c"
itemLabel="#{c.nome}" itemValue="#{c}"
forceSelection="true" converter="condominioConversor"
maxlength="3" maxResults="10" required="true"
requiredMessage="Campo condomínio é obrigatório.">
</p:autoComplete>
</h:panelGroup>
<h:panelGroup>
<h:outputLabel id="lblNome" for="txtNome" value="Nome: " />
<br />
<p:inputText value="#{usuarioMBean.usuario.nome}"
id="txtNome" required="true" label="lblNome"
requiredMessage="Campo nome é obrigatório." size="30"
maxlength="100" style="width:90%;" />
</h:panelGroup>
<h:panelGroup>
<h:outputLabel id="lblBloco" for="cboBloco" value="Bloco: " />
<br />
<p:selectOneMenu value="#{usuarioMBean.usuario.bloco}"
id="cboBloco" required="true" label="lblBloco"
effect="fade" effectDuration="10"
validator="blocoValidador"
requiredMessage="Campo bloco é obrigatório."
style="width: 200px;">
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItem itemLabel="A" itemValue="A" />
<f:selectItem itemLabel="B" itemValue="B" />
<f:selectItem itemLabel="C" itemValue="C" />
<f:selectItem itemLabel="D" itemValue="D" />
<f:selectItem itemLabel="E" itemValue="E" />
<f:selectItem itemLabel="F" itemValue="F" />
<f:selectItem itemLabel="G" itemValue="G" />
<f:selectItem itemLabel="H" itemValue="H" />
<f:selectItem itemLabel="I" itemValue="I" />
<f:selectItem itemLabel="J" itemValue="J" />
<f:selectItem itemLabel="L" itemValue="L" />
<f:selectItem itemLabel="M" itemValue="M" />
<f:selectItem itemLabel="N" itemValue="N" />
<f:selectItem itemLabel="O" itemValue="O" />
<f:selectItem itemLabel="P" itemValue="P" />
<f:selectItem itemLabel="Q" itemValue="Q" />
<f:selectItem itemLabel="R" itemValue="R" />
<f:selectItem itemLabel="S" itemValue="S" />
<f:selectItem itemLabel="T" itemValue="T" />
<f:selectItem itemLabel="U" itemValue="U" />
<f:selectItem itemLabel="V" itemValue="V" />
<f:selectItem itemLabel="X" itemValue="X" />
<f:selectItem itemLabel="Z" itemValue="Z" />
</p:selectOneMenu>
</h:panelGroup>
<h:panelGroup>
<h:outputLabel id="lblApartamento" for="txtApartamento"
value="Apartamento: " />
<br />
<p:spinner id="txtApartamento"
value="#{usuarioMBean.usuario.apartamento}" maxlength="3"
required="true" min="1"
requiredMessage="Campo apartamento é obrigatório.">
</p:spinner>
</h:panelGroup>
<h:panelGroup>
<h:outputLabel id="lblCPF" for="txtCPF" value="CPF: " />
<br />
<p:inputMask value="#{usuarioMBean.usuario.cpf}" id="txtCPF"
required="true" label="lblCPF"
requiredMessage="Campo CPF é obrigatório."
mask="999.999.999-99">
</p:inputMask>
</h:panelGroup>
<h:panelGroup>
<h:outputLabel id="lblStatus" for="cboStatus"
value="Status:" />
<br />
<p:selectOneMenu value="#{usuarioMBean.usuario.status}"
id="cboStatus" required="true" label="lblStatus"
effect="fade" effectDuration="10"
validator="statusValidador"
requiredMessage="Campo status é obrigatório.">
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItem itemLabel="Inativo" itemValue="Inativo" />
<f:selectItem itemLabel="Ativo" itemValue="Ativo" />
</p:selectOneMenu>
</h:panelGroup>
</h:panelGrid>
</div>
</div>
</h:form>
</p:tab>
<p:tab id="tbCondAdm" title="Condomínios Administrados">
<h:form id="frmDlgCondAdm"
binding="#{usuarioMBean.frmDlgCondAdm}">
<div align="center">
<div align="left">
<p:fieldset>
<h:panelGrid id="pnlGrdCadAdm" columns="2">
<h:panelGroup>
<p:focus for="txtCondominioAdm" />
<h:outputLabel id="lblCondominioAdm" for="txtCondominioAdm"
value="Condomínio: " />
<br />
<p:autoComplete
value="#{usuarioMBean.condominioSelecionadoAdm}"
id="txtCondominioAdm"
completeMethod="#{usuarioMBean.sugerirCondominios}"
var="ca" itemLabel="#{ca.nome}" itemValue="#{ca}"
forceSelection="true" converter="condominioAdmConversor"
maxlength="3" maxResults="10" required="true"
requiredMessage="Campo condomínio administrado é obrigatório."
size="50">
</p:autoComplete>
<p:commandButton id="cmdAdicionarCondominio"
value="Adicionar" update="pnlGrdCadAdmList,pnlGrdCadAdm"
icon="ui-icon-plus" ajax="true"
actionListener="#{usuarioMBean.adicionarCondominioLista}"
process="@this,txtCondominioAdm">
</p:commandButton>
<p:commandButton id="cmdRemoverCondominio" value="Remover"
icon="ui-icon-minus"
update="pnlGrdCadAdmList,@this,pnlGrdCadAdm" ajax="true"
actionListener="#{usuarioMBean.removerCondominioLista}"
process="@this,pnlGrdCadAdmList"
rendered="#{not empty usuarioMBean.condominiosAdministrados}" />
</h:panelGroup>
</h:panelGrid>
</p:fieldset>
</div>
<div align="center">
<h:panelGrid id="pnlGrdCadAdmList" style="width: 100%;">
<p:dataTable id="dtCondominio" var="cond"
widgetVar="dataTable"
value="#{usuarioMBean.condominiosAdministrados}"
emptyMessage="Nenhum registro encontrado!" paginator="true"
filterEvent="enter" rows="3" rowKey="#{cond.id}"
style="width: 100%;"
selection="#{usuarioMBean.condominioSelecionadoAdm}">
<f:facet name="header">
Condomínios Administrados
</f:facet>
<!-- RadioBox de Selecao -->
<p:column selectionMode="single" style="width:40px" />
<p:column headerText="Id" sortBy="#{cond.id}"
filterBy="#{cond.id}" id="colId" style="width: 10px;">
#{cond.id}
</p:column>
<p:column headerText="Nome" sortBy="#{cond.nome}"
filterBy="#{cond.nome}" id="colNome" style="width: 300px;">
#{cond.nome}
</p:column>
</p:dataTable>
</h:panelGrid>
</div>
</div>
</h:form>
</p:tab>
</p:tabView>
<f:facet name="footer">
<div align="center">
<p:commandButton id="cmdSalvar" value="Salvar"
update=":frm:pnlGrdPesquisa,:frmDlgCmd" icon="ui-icon-check"
process=":frmDlgCmd" actionListener="#{usuarioMBean.salvar}"
oncomplete="handleSalvarUsuarioRequest(xhr, status, args);" />
<!--
<p:commandButton id="cmdCancelar" value="Cancelar"
update=":frm:pnlGrdPesquisa" icon="ui-icon-cancel"
process=":frm" onclick="dlg.hide();" />
-->
</div>
</f:facet>
</p:panel>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>
ManagedBean da pagína de usuarios
/**
*
*/
package br.com.condweb.controlador;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.UIForm;
import javax.faces.event.ActionEvent;
import org.apache.log4j.Logger;
import org.primefaces.component.datatable.DataTable;
import org.primefaces.context.RequestContext;
import br.com.condweb.dominio.modelo.Condominio;
import br.com.condweb.dominio.modelo.TipoUsuario;
import br.com.condweb.dominio.modelo.Usuario;
import br.com.condweb.dominio.negocio.CondominioNegocio;
import br.com.condweb.dominio.negocio.UsuarioNegocio;
import br.com.condweb.dominio.negocio.excecoes.RegraNegocioExcecao;
import br.com.condweb.util.Constantes;
import br.com.condweb.util.ExcecaoMensagensFaces;
import br.com.condweb.util.Mensagens;
import br.com.condweb.util.Utilitarios;
/**
* @author sfidencio
*
*/
@ManagedBean
@ViewScoped
public class UsuarioMBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Usuario usuario;
private UsuarioNegocio usuarioNegocio;
private UIForm frm = new UIForm();
private UIForm frmDlgCad = new UIForm();
private UIForm frmDlgCmd = new UIForm();
private UIForm frmDlgCondAdm = new UIForm();
private DataTable dt;
private String tituloTela = Constantes.TITULO_TELA_INCLUSAO + "Usuário.";
private List<Usuario> usuarios;
private Usuario usuarioSelecionado;
private RequestContext ctx;
private List<Condominio> sugestoesCondominios;
private CondominioNegocio condominioNegocio;
private List<Condominio> condominios;
private List<Condominio> condominiosAdministrados = new ArrayList<Condominio>();
private TipoUsuario tipoUsuarioSelecionado;
private Condominio condominioSelecionado;
private Condominio condominioSelecionadoAdm;
private Logger logger = Logger.getLogger(UsuarioMBean.class);
Boolean salvo = false;
Boolean excluido = false;
Boolean selecionado = false;
/**
*
*/
public UsuarioMBean() {
try {
this.inicializarMBean();
this.listar();
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(null, Constantes.STRING_VAZIA,
e.getMessage());
}
}
private void limparArvoreComponentes() {
try {
Utilitarios.cleanSubmittedValues(this.frm);
Utilitarios.cleanSubmittedValues(this.frmDlgCad);
Utilitarios.cleanSubmittedValues(this.frmDlgCmd);
Utilitarios.cleanSubmittedValues(this.frmDlgCondAdm);
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(null, Constantes.STRING_VAZIA,
e.getMessage());
}
}
private void inicializarMBean() {
if (this.usuario == null) {
this.usuario = new Usuario();
this.usuario.setTipousuario(new TipoUsuario());
this.usuario.setCondominio(new Condominio());
}
if (this.usuarioNegocio == null) {
this.usuarioNegocio = new UsuarioNegocio();
}
if (this.condominioNegocio == null) {
this.condominioNegocio = new CondominioNegocio();
}
this.logger.info("Usuário e dependecias criadas: "
+ this.usuario.toString());
}
private void listar() {
try {
this.usuarios = this.usuarioNegocio.listar();
this.logger.info("Lista de usuários montada: "
+ this.usuarios.toString());
this.condominios = this.condominioNegocio.listar();
this.logger.info("Lista de condomínios montada: "
+ this.condominios.toString());
} catch (Exception e) {
this.logger.info("Erro ao listar usuários");
ExcecaoMensagensFaces.mensagemERRO(null, Constantes.STRING_VAZIA,
e.getMessage());
}
}
private void resetarTela() {
try {
this.tituloTela = Constantes.TITULO_TELA_INCLUSAO + "Usuário.";
this.setUsuario(null);
this.setUsuarioSelecionado(null);
this.setCondominioSelecionado(null);
this.setTipoUsuarioSelecionado(null);
this.setCondominioSelecionadoAdm(null);
this.setCondominiosAdministrados(null);
this.limparArvoreComponentes();
this.setCondominiosAdministrados(new ArrayList<Condominio>());
this.setUsuario(new Usuario());
this.listar();
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(null, Constantes.STRING_VAZIA,
e.getMessage());
}
}
public void adicionarCondominioLista(ActionEvent event) {
try {
this.limparArvoreComponentes();
this.usuarioNegocio.adicionarItemListaCondominio(
this.condominiosAdministrados,
this.condominioSelecionadoAdm);
logger.info("Adicionado o condomínio: "
+ this.condominioSelecionadoAdm.getNome()
+ " na lista de condomínios administrados");
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(Constantes.NOME_FORM_CAD,
e.getMessage(), e.getMessage());
}
}
public void removerCondominioLista(ActionEvent event) {
try {
this.limparArvoreComponentes();
this.usuarioNegocio.removerItemListaCondominio(
this.condominiosAdministrados,
this.condominioSelecionadoAdm);
logger.info("Removido o condomínio: "
+ this.condominioSelecionadoAdm.getNome()
+ " na lista de condomínios administrados");
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(Constantes.NOME_FORM_CAD,
e.getMessage(), e.getMessage());
}
}
public void novo(ActionEvent event) {
try {
this.resetarTela();
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(null, Constantes.STRING_VAZIA,
e.getMessage());
}
}
public void salvar(ActionEvent event) {
try {
this.logger.info("Iniciando salvar");
this.ctx = RequestContext.getCurrentInstance();
this.salvo = false;
this.usuario.setCondominio(this.condominioSelecionado);
this.usuario.setTipousuario(this.tipoUsuarioSelecionado);
this.usuario
.setCondominiosAdministrados(this.condominiosAdministrados);
this.usuarioNegocio.salvar(this.usuario);
this.salvo = true;
ExcecaoMensagensFaces.mensagemINFO(null,
Mensagens.SUCESSO_OPERACAO_SALVAR_SUMARIO,
Mensagens.SUCESSO_OPERACAO_DETALHE);
this.resetarTela();
} catch (RegraNegocioExcecao erd) {
this.logger.error("Registro duplicado");
this.ctx.addCallbackParam("salvo", this.salvo);
ExcecaoMensagensFaces.mensagemERRO(Constantes.NOME_FORM_CAD,
erd.getMessage(), erd.getMessage());
} catch (Exception e) {
this.logger.error("Falha ao salvar");
this.ctx.addCallbackParam("salvo", this.salvo);
ExcecaoMensagensFaces.mensagemERRO(Constantes.NOME_FORM_CAD,
e.getMessage(), e.getMessage());
} finally {
this.logger.info("Enviando Callback salvar para Client: "
+ this.salvo);
this.ctx.addCallbackParam("salvo", this.salvo);
}
}
public void cancelar(ActionEvent event) {
try {
this.resetarTela();
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(null, Constantes.STRING_VAZIA,
e.getMessage());
}
}
public void excluir(ActionEvent event) {
try {
this.excluido = false;
this.usuario = this.usuarioNegocio.buscar(this.usuario.getId());
this.usuarioNegocio.excluir(this.usuario);
this.excluido = true;
ExcecaoMensagensFaces.mensagemINFO(null,
Mensagens.SUCESSO_OPERACAO_EXCLUIR_SUMARIO,
Mensagens.SUCESSO_OPERACAO_DETALHE);
this.logger.info("Usuário marcado para ser excluído.");
this.resetarTela();
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(null, Constantes.STRING_VAZIA,
e.getMessage());
}
}
public void prepararRegistro(ActionEvent event) {
try {
this.limparArvoreComponentes();
this.tituloTela = Constantes.TITULO_TELA_ALTERACAO + "Usuário.";
this.ctx = RequestContext.getCurrentInstance();
this.selecionado = false;
if (this.usuarioSelecionado == null)
throw new Exception(Mensagens.ERRO_SELECIONAR);
this.usuario = this.usuarioNegocio.buscar(this.usuarioSelecionado
.getId());
this.setTipoUsuarioSelecionado(this.usuario.getTipousuario());
this.setCondominioSelecionado(this.usuario.getCondominio());
this.selecionado = true;
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(null, Constantes.STRING_VAZIA,
e.getMessage());
} finally {
this.ctx.addCallbackParam("selecionado", this.selecionado);
}
}
public List<Condominio> sugerirCondominios(String valor) {
try {
this.limparArvoreComponentes();
this.sugestoesCondominios = new ArrayList<Condominio>();
for (Condominio cond : this.condominios) {
if (cond.getNome().startsWith(valor)) {
this.sugestoesCondominios.add(cond);
}
}
} catch (Exception e) {
ExcecaoMensagensFaces.mensagemERRO(Constantes.NOME_FORM_CAD,
e.getMessage(), e.getMessage());
}
return this.sugestoesCondominios;
}
public void setUsuario(Usuario Usuario) {
this.usuario = Usuario;
}
public Usuario getUsuario() {
return usuario;
}
public void setTituloTela(String tituloTela) {
this.tituloTela = tituloTela;
}
public String getTituloTela() {
return tituloTela;
}
public void setFrm(UIForm frm) {
this.frm = frm;
}
public UIForm getFrm() {
return frm;
}
public void setUsuarios(List<Usuario> Usuarios) {
this.usuarios = Usuarios;
}
public List<Usuario> getUsuarios() {
return usuarios;
}
public void setUsuarioSelecionado(Usuario usuarioSelecionado) {
this.usuarioSelecionado = usuarioSelecionado;
}
public Usuario getUsuarioSelecionado() {
return usuarioSelecionado;
}
public void setTipoUsuarioSelecionado(TipoUsuario tipoUsuarioSelecionado) {
this.tipoUsuarioSelecionado = tipoUsuarioSelecionado;
}
public TipoUsuario getTipoUsuarioSelecionado() {
return tipoUsuarioSelecionado;
}
public Condominio getCondominioSelecionado() {
return condominioSelecionado;
}
public void setCondominioSelecionado(Condominio condominioSelecionado) {
this.condominioSelecionado = condominioSelecionado;
}
public void setDt(DataTable dt) {
this.dt = dt;
}
public DataTable getDt() {
return dt;
}
public void setLogger(Logger logger) {
this.logger = logger;
}
public Logger getLogger() {
return logger;
}
public void setCondominioSelecionadoAdm(Condominio condominioSelecionadoAdm) {
this.condominioSelecionadoAdm = condominioSelecionadoAdm;
}
public Condominio getCondominioSelecionadoAdm() {
return condominioSelecionadoAdm;
}
public void setCondominiosAdministrados(
List<Condominio> condominiosAdministrados) {
this.condominiosAdministrados = condominiosAdministrados;
}
public List<Condominio> getCondominiosAdministrados() {
return condominiosAdministrados;
}
public void setFrmDlgCad(UIForm frmDlgCad) {
this.frmDlgCad = frmDlgCad;
}
public UIForm getFrmDlgCad() {
return frmDlgCad;
}
public void setFrmDlgCmd(UIForm frmDlgCmd) {
this.frmDlgCmd = frmDlgCmd;
}
public UIForm getFrmDlgCmd() {
return frmDlgCmd;
}
public void setFrmDlgCondAdm(UIForm frmDlgCondAdm) {
this.frmDlgCondAdm = frmDlgCondAdm;
}
public UIForm getFrmDlgCondAdm() {
return frmDlgCondAdm;
}
}
CallBackParameter:
function handlePrepararAlterarUsuarioRequest(xhr, status, args) {
if (args.selecionado)
dlg.show();
}
function handlePrepararExcluirUsuarioRequest(xhr, status, args) {
if (args.selecionado) {
confDlg.show();
}
}
Template utilizado:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html 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">
<f:view contentType="text/html">
<h:head>
<!-- Configuracao do Tamanho da Pagina -->
<!-- Importando CSS -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<h:outputStylesheet library="css" name="style.css" />
<h:outputScript name="script.js" library="js" />
<h:outputStylesheet library="css" name="syntaxhighlighter.css" />
<h:outputStylesheet library="css" name="default.css" />
<!-- Inserir CSS e JavaScripts Especificos -->
<ui:insert name="CSSeJavaScript"></ui:insert>
<ui:insert name="TituloPagina"></ui:insert>
</h:head>
<h:body>
<p:log/>
<!-- Componente de Mensagens -->
<p:growl id="grow" autoUpdate="true" sticky="false" showSummary="true"
life="10000" showDetail="true" globalOnly="true" />
<p:layout fullPage="true">
<p:layoutUnit position="north" size="84" maxSize="500" id="topo"
header="Gestão Máxima - Controle de Prestação de Contas de
Condomínio">
<ui:include src="/composition/Menu.xhtml" />
</p:layoutUnit>
<p:layoutUnit position="center">
<ui:insert name="Conteudo" />
</p:layoutUnit>
<p:layoutUnit position="south" size="30">
<div align="center">
<span>© 2012 Gestão Máxima - Todos Direitos Reservados.</span>
</div>
</p:layoutUnit>
</p:layout>
</h:body>
</f:view>
</html>
efim, quando eu seleciono a linha da datatable com id=“dtUsuario”, e clico no botao com id=“cmdAlterar”, ele deveria settar o objeto no managedBean e abrir a p:dialog, essa parte de abir a dialog, atraves do retorno callback. está funcionando para os meus outros casos de uso tranquilo,. inclusive nesse,. o problema e que ele não ta settando o objeto, só isso, já mexi no propery process, update., fiz tanto coisa já mas nao seta. se observares, o método preparaRegistro, tem uma verificação., se o objetoSelecionado ésta null ou não, sempre está voltando NULL para o managed bean, sempre,… e com isso a exceção é chamada dizendo que não foi selecionado o registro para alteração. Engraçado e que ativei o p:log, e vejo que nas requisições Ajax ele processa a página como um todo, porque não especifiquei o que processar, da update na dialg,. mas vejo que ele não manda a tripa de parametros com valores concatenados, esquisitissimo isso, meus outros USeCases está funcionando normal que coisa pessoalll…
aguardo…a gentileza dos Srs., ficarei grato!!!