Galera, to querendo fazer com que meu usuário ao Registrar a Pausa troque o status dele de Disponível para Descanso. No banco ele seta o status porém na Visão ele continua como disponível mesmo eu dando refresh.
eu ja tentei inúmeras maneiras mas não consigo.
percebi que o meu editar, excluir ou gerar novo usuário funciona perfeitamente, ele atualiza no banco e na visão tbm. Alguém pode me ajudar?
queria que quando apertasse em ok, ele trocasse nessa tela o status de disponvel para descanso.
-------------------------------------XHTML---------------------------------------
<p:graphicImage library="imagens" name="stefanini.jpg" width="180"
styleClass="imagemCentralizada" />
<h:form id="formListagem">
<!-- Barra de menu do usuario -->
<p:menubar>
<p:submenu label="#{autenticacaoBean.usuarioLogado.nome}">
<p:menuitem value="Registrar pausa"
oncomplete="PF('dlgPausa').show(); " icon="ui-icon-pause"
update=":formPausa:painelEmPausa">
</p:menuitem>
<p:menuitem value="Registrar colaborador"
oncomplete="PF('dlgCadastro').show();"
actionListener="#{usuarioBean.novo}"
update=":formRegCadastro:painelCadastro " icon="ui-icon-new"
rendered="#{autenticacaoBean.temPermissoes(['c014587'])}" />
<p:menuitem value="Sobre" icon="ui-icon-info" />
</p:submenu>
<f:facet name="options">
<p:commandButton value="Sair" icon="ui-icon-extlink"
actionListener="#{autenticacaoBean.logout}" />
</f:facet>
</p:menubar>
<!-- Barra de menu do usuario -->
<!-- Tabela de usuarios -->
<p:dataTable id="tabela" value="#{usuarioBean.usuarios}" var="usuario">
<p:column headerText="Usuário" sortBy="#{usuario.nome}"
filterBy="#{usuario.nome}">
<h:outputText value="#{usuario.nome}" />
</p:column>
<p:column headerText="Status" sortBy="#{usuario.status}">
<h:outputText value="#{usuario.flagStatus}" />
</p:column>
<p:column headerText="Opções">
<p:commandButton icon="ui-icon-trash"
rendered="#{autenticacaoBean.temPermissoes(['c014587'])}"
actionListener="#{usuarioBean.excluir}"
update=":mensagem :formListagem:tabela">
<p:confirm header="Confirmação" message="Deseja excluir o usuario"
icon="ui-icon-alert" />
<f:attribute name="usuarioSelecionado" value="#{usuario}" />
</p:commandButton>
<p:commandButton icon="ui-icon-pencil"
rendered="#{autenticacaoBean.temPermissoes(['c014587'])}"
actionListener="#{usuarioBean.editarCadastro}"
update=":formCadastro:painel"
oncomplete="PF('dlgEditarCadastro').show();">
<f:attribute name="usuarioSelecionado" value="#{usuario}" />
<f:actionListener
type="org.omnifaces.eventlistener.ResetInputAjaxActionListener" />
</p:commandButton>
</p:column>
</p:dataTable>
<!-- Confirmação de exclusão de usuário -->
<p:confirmDialog global="true">
<p:commandButton value="Sim" type="button"
styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="Não" type="button"
styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</h:form>
<!-- Tabela de usuarios -->
<!-- Dialogo de registrar Pausa -->
<p:dialog header="Registrar pausa" widgetVar="dlgPausa"
draggable="false" resizable="false" modal="true">
<h:form id="formRegistrarPausa">
<h:panelGrid columns="2" id="painelPausa">
<p:selectOneMenu id="pausa" value="#{selectOneMenuView.pausa}">
<f:selectItem itemValue="Pausa 10" itemLabel="Pausa 10" />
<f:selectItem itemValue="Intervalo" itemLabel="Intervalo" />
</p:selectOneMenu>
</h:panelGrid>
<h:panelGrid>
<p:commandButton icon="ui-icon-check" value="ok"
oncomplete="PF('dlgEmPausa').show(); PF('dlgPausa').hide();"
actionListener="#{autenticacaoBean.pausa}"
update=":formListagem:tabela :mensagem"
onclick="PF('timer').start()" />
</h:panelGrid>
</h:form>
</p:dialog>
<!-- em pausa -->
<p:dialog header="Em pausa" widgetVar="dlgEmPausa" draggable="false"
showEffect="bounce" resizable="false" modal="true">
<h:form id="formPausa">
<h:panelGrid cellpadding="20px" columns="2" id="painelEmPausa">
<p:outputLabel value="Tempo de pausa: " />
<pe:timer widgetVar="timer" timeout="10000" forward="true"
format="HH:mm:ss" listener="#{jsApiTimerController.listener}"
singleRun="false" />
<p:commandButton value="Cancelar"
oncomplete="PF('dlgEmPausa').hide();"
actionListener="#{autenticacaoBean.cancelarPausa}"
update=":formListagem:tabela :formPausa:painelEmPausa" onclick="PF('timer').stop(true)" />
</h:panelGrid>
</h:form>
</p:dialog>
<!-- Dialogo de registrar Pausa -->
<!-- Dialogo de editar cadastro -->
<p:dialog header="Editar cadastro" widgetVar="dlgEditarCadastro"
draggable="false" resizable="false" modal="true">
<h:form id="formCadastro">
<h:panelGrid id="painel">
<p:outputLabel value="Nome: " />
<p:inputText value="#{usuarioBean.usuario.nome}" size="30"
maxlength="55" required="true"
requiredMessage="Campo nome obrigatório" />
<p:outputLabel value="Senha: " />
<p:password value="#{usuarioBean.usuario.senhaCriptografada}"
size="15" maxlength="12" required="true"
requiredMessage="Campo senha obrigatório" />
</h:panelGrid>
<h:panelGrid>
<p:commandButton value="Salvar"
actionListener="#{usuarioBean.salvar}"
update=":mensagem :formCadastro:painel :formListagem:tabela"
oncomplete="PF('dlgEditarCadastro').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
<!-- Dialogo de editar cadastro -->
<!-- Tela de novo cadastro -->
<p:dialog header="Cadastro de Usuário" widgetVar="dlgCadastro"
draggable="false" resizable="false" modal="true">
<h:form id="formRegCadastro">
<h:panelGrid id="painelCadastro">
<p:inputText value="#{usuarioBean.usuario.nome}" placeholder="Nome"
size="30" maxlength="55" required="true"
requiredMessage="Campo nome obrigatório" />
<p:inputText value="#{usuarioBean.usuario.matricula}"
placeholder="Matricula" size="15" maxlength="7" required="true"
requiredMessage="Campo matricula obrigatório" />
<p:password value="#{usuarioBean.usuario.senhaCriptografada}"
placeholder="Senha" size="15" maxlength="12" required="true"
requiredMessage="Campo senha obrigatório" />
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Cadastrar"
actionListener="#{usuarioBean.salvar}"
update=":mensagem :formRegCadastro:painelCadastro :formListagem:tabela" />
<p:commandButton value="Cancelar"
oncomplete="PF('dlgCadastro').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
<!-- Tela de novo cadastro -->
--------------------------UsuarioBean----------------------------------------------
private Usuario usuario;
private List<Usuario> usuarios;
//private static int cont = 0;
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public List<Usuario> getUsuarios() {
return usuarios;
}
public void setUsuarios(List<Usuario> usuarios) {
this.usuarios = usuarios;
}
@PostConstruct
public void listar() {
try {
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarios = usuarioDAO.listar();
} catch (RuntimeException erro) {
Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuarios");
erro.printStackTrace();
}
}
public void novo() {
try {
usuario = new Usuario();
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarios = usuarioDAO.listar();
} catch (RuntimeException erro) {
Messages.addFlashGlobalError("Ocorreu um erro ao gerar um novo usuário");
erro.printStackTrace();
}
}
public void salvar() {
try {
UsuarioDAO usuarioDAO = new UsuarioDAO();
SimpleHash hash = new SimpleHash("md5", usuario.getSenhaCriptografada());
usuario.setSenha(hash.toHex());
usuarioDAO.merge(usuario);
usuario = new Usuario();
usuarios = usuarioDAO.listar();
Messages.addGlobalInfo("Usuario salvo com sucesso");
} catch (RuntimeException erro) {
Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar um novo usuario");
erro.printStackTrace();
}
}
public void editarCadastro(ActionEvent evento) {
usuario = (Usuario) evento.getComponent().getAttributes().get("usuarioSelecionado");
}
public void excluir(ActionEvent evento) {
try {
usuario = (Usuario) evento.getComponent().getAttributes().get("usuarioSelecionado");
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarioDAO.excluir(usuario);
usuarios = usuarioDAO.listar();
Messages.addGlobalInfo("Usuario removida com sucesso");
} catch (RuntimeException erro) {
Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o usuário");
erro.printStackTrace();
}
}
public void teste() {
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarios = usuarioDAO.listar();
}
----------------------------------AutenticacaoBean-----------------------
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public Usuario getUsuarioLogado() {
return usuarioLogado;
}
public void setUsuarioLogado(Usuario usuarioLogado) {
this.usuarioLogado = usuarioLogado;
}
public int getCont() {
return cont;
}
public void setCont(int cont) {
AutenticacaoBean.cont = cont;
}
@PostConstruct
public void novo() {
usuario = new Usuario();
}
public void cancelarPausa() {
try {
System.out.println("variavel contadora: " + cont);
setCont(cont - 1);
System.out.println("variavel contadora: " + cont);
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarioLogado.setStatus(false);
System.out.println("status do usuario: " + usuarioLogado.isStatus());
usuarioDAO.editar(usuarioLogado);
} catch (RuntimeException erro) {
Messages.addFlashGlobalError("Ocorreu um erro ao tentar registrar a pausa");
erro.printStackTrace();
}
}
public void pausa() {
if (cont > 1) {
Messages.addGlobalError("há duas pessoas em pausa, gentileza aguarde elas voltarem");
return;
}
UsuarioDAO usuarioDAO = new UsuarioDAO();
setCont(cont + 1);
usuarioLogado.setStatus(true);
usuarioDAO.editar(usuarioLogado);
}
public void autenticar() {
try {
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarioLogado = usuarioDAO.autenticar(usuario.getMatricula(), usuario.getSenha());
System.out.println(usuarioLogado);
if (usuarioLogado == null) {
Messages.addGlobalError("Usuário ou senha incorreto");
return;
}
Faces.redirect("./pages/telaSecundariaPausa.xhtml");
} catch (IOException erro) {
erro.printStackTrace();
Messages.addGlobalError(erro.getMessage());
}
}
public boolean temPermissoes(List<String> permissoes) {
for (String permissao : permissoes) {
if (usuarioLogado.getMatricula().equals(permissao)) {
return true;
}
}
return false;
}
public String logout() {
HttpSession sessao = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
sessao.invalidate();
return "./pages/telaPrincipalLogin.xhtml";
}
public void contador() {
usuarioLogado.setStatus(true/* em pausa */);
System.out.println(usuarioLogado.isStatus());
int cont = 10;
for (int i = 0; i < cont; i++) {
System.out.println(i);
}
usuarioLogado.setStatus(false/* disponivel */);
System.out.println(usuarioLogado.isStatus());
}
}