Sou iniciante, tenho um cadastro bem simples (usuários) que está sendo mostrado em uma rich:dataTable na qual tenho um botão que mostra um rich:modalPanel onde eu altero e salvo o usuário na linha clicada.
Essa coleção de usuários está sendo carregada assim:
public List<Usuario> getAllUsuarios() {
usuarioDao = new UsuarioDAO();
usuarioDao.load();
allUsuarios = usuarioDao.getLista();
usuarioKeySet = usuarioDao.listaSetKeys();
return allUsuarios;
}
Até aí tudo está funcionando, inclusive o excluir, o que preciso saber qual a melhor forma de mostrar o formulário com um NOVO objeto, o qual não tenha valor em nenhuma das propriedades (para o usuário digitar).
Como faço isso?
Pensei em colocar um botão assim:
<a4j:commandButton id="btnAddUsuario"
reRender="tableUsuario"
action="#{usuarioDTSBean.actionNovoUsuario}"
value="Novo Usuário"
imediate="true"
oncomplete="#{rich:component('editarDadosUsuario')}.show()" >
</a4j:commandButton>
Action no Bean:
public void actionNovoUsuario() {
try {
Usuario novo = new Usuario();
this.allUsuarios.add(novo);
this.usuarioSelecionado = novo;
} catch (Throwable ex) {
Logger.getLogger(UsuarioDataTableScrollerBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
Mas o que está acontecendo é que o formulário é mostrado porém os campos não estão vindo em branco, eles vêm com os valores do último usuário editado ou selecionado.
Na imagem eu cliquei no botão para editar o usuário Francisco, porém quando clica no botão Novo Usuário o resultado é o mesmo.
Obviamente não estou sabendo fazer por isso preciso de uma dica de alguém que já sabe e como melhor fazer isso, se for possível.
Como faço para mostrar o formulário em branco para o usuário digitar os valores no campos?