screen editing user does not load data, and delete method does not delete

0

Take a look at the codes:

    <?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="/WEB-INF/template/LayoutPadrao.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"
                xmlns:o="http://omnifaces.org/ui">

    <ui:define name="titulo">Cadastro de Usuário</ui:define>

    <ui:define name="corpo">
        <h:form>

            <h1>Cadastro Usuário</h1>

            <f:metadata>
                <o:viewParam name="usuario" value="#{cadastroUsuarioBean.usuario}"/>
                <f:event listener="#{cadastroUsuarioBean.inicializar}" type="preRenderView" />
            </f:metadata>

            <p:messages autoUpdate="true" closable="true"/>

            <p:toolbar>
                <p:toolbarGroup>
                    <p:button value="Novo" outcome="CadastroUsuario"/>
                    <p:commandButton value="Salvar" id="botaoSalvar" action="#{cadastroUsuarioBean.salvar}"  update="@form"/>
                </p:toolbarGroup>
                <p:toolbarGroup align="right">
                    <p:button value="pesquisa"/>                    
                </p:toolbarGroup>
            </p:toolbar>

            <p:panelGrid columns="2" id="painel" style=" width: 100%; margin-top: 20px" columnClasses="rotulo, campo" >

                <p:outputLabel value="Nome" for="nome"/>
                <p:inputText id="nome" size="60" maxlength="80" value="#{cadastroUsuarioBean.usuario.nome}"/>

                <p:outputLabel value="E-mail" for="email"/>
                <p:inputText id="email" size="60" maxlength="80" value="#{cadastroUsuarioBean.usuario.email}"/>

                <p:outputLabel value="Senha" for="senha"/>
                <p:password id="senha" value="#{cadastroUsuarioBean.usuario.senha}"/>

                <p:selectOneMenu >                
                    <f:selectItem itemLabel="Auxiliar"/>
                    <f:selectItem itemLabel="Vandedor"/>
                    <f:selectItem itemLabel="Administradores"/>
                </p:selectOneMenu>          

                <p:commandButton value="Adicionar grupo"/>
            </p:panelGrid>

            <p:dataTable value="#{pesquisaClienteBean.itens}" var="item" id="tabelaItens" style="margin-top: 20px">

                <p:column headerText="Grupo" style="text-align: left">
                    <h:outputText value="Vendedor"/>
                </p:column>

                <p:column   style="width: 100px; text-align: center">
                    <p:commandButton icon="ui-icon-trash" title="Excluir" oncomplete="PF('comfirmacaoExclusao').show();"/>
                </p:column >

            </p:dataTable>

            <p:confirmDialog header="Exclusao Usuário" message="Tem certeza que deseja excluir Usuário"
                             widgetVar="comfirmacaoExclusao">
                <p:button value="Não" onclick="PF('comfirmacaoExclusao').hide(); return false;"/>
                <p:commandButton value="Sim" oncomplete="PF('comfirmacaoExclusao').hide();"/>

            </p:confirmDialog>

        </h:form>  
    </ui:define>

</ui:composition>

User RegistrationBean.java

@Named
@ViewScoped
public class CadastroUsuarioBean implements Serializable {

    private static final long serialVersionUID = 0L;

    private Usuario usuario;

    private Grupo grupoSelecionado;
    private List<Grupo> grupo = new ArrayList<Grupo>();

    @Inject
    private CadastroUsuarioService cadastroUsuarioService;

    @Inject
    private Grupos grupos;

    public CadastroUsuarioBean() {
        limpar();
    }

    public void inicializar() {
        grupo = grupos.grupos();
        grupoSelecionado = new Grupo();
    }

    public void limpar() {
        usuario = new Usuario();
        grupo = new ArrayList<Grupo>();
    }

    public void salvar() {

        adicionarGrupo();
        this.usuario = cadastroUsuarioService.salvar(this.usuario);

        limpar();
        FacesUtil.addInfoMessage("Usuario cadastro com sucesso!");
    }

    public void adicionarGrupo() {
        this.usuario.getGrupos().add(grupoSelecionado);
    }

    public Usuario getUsuario() {
        return usuario;
    }

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

    public List<Grupo> getGrupo() {
        return grupo;
    }

    public Grupo getGrupoSelecionado() {
        return grupoSelecionado;
    }

    public void setGrupoSelecionado(Grupo grupoSelecionado) {
        this.grupoSelecionado = grupoSelecionado;
    }
} 

CadastroUSuaroService.java

 public class CadastroUsuarioService implements Serializable {

    private static final long serialVersionUID = 0L;

    @Inject
    private Usuarios usuarios;

    @Transactional
    public Usuario salvar(Usuario usuario) {
        Usuario usuarioExistente = usuarios.porId(usuario.getId());

        if (usuarioExistente != null && !usuarioExistente.equals(usuario)) {
            throw new NegocioException("Já existe um usuario informado.");
        }

        return usuarios.guardar(usuario);
    }

}

UserConverter.java

    @FacesConverter(forClass = Usuario.class)
public class UsuarioConverter implements Converter {

    @Inject
    private Usuarios usuarios;

    public UsuarioConverter() {
        usuarios = CDIServiceLocator.getBean(Usuarios.class);
    }

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        Usuario retorno = null;

        if (StringUtils.isNotBlank(value)) {
            retorno = (Usuario) this.usuarios.filtrados(new UsuarioFilter());
        }

        return retorno;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (value != null) {
            Long id = ((Usuario) value).getId();
            String retorno = (id == null ? null : id.toString());

            return retorno;
        }

        return "";
    }

}

Users.java repository

    public class Usuarios implements Serializable {

    private static final long serialVersionUID = 0L;
    @Inject
    private EntityManager manager;

    public Usuario guardar(Usuario usuario) {
        return manager.merge(usuario);
    }

    @Transactional
    public void remover(Usuario usuario) {
        try {
            usuario = porId(usuario.getId());
            manager.remove(usuario);
            manager.flush();
        } catch (PersistenceException e) {
            throw new NegocioException("Usuario " + usuario.getNome() + " não pode ser excluído.");
        }
    }

    /*public Usuario porId(Long id) {
     return manager.find(Usuario.class, id);
     }*/
    public Usuario porId(Long id) {
        try {
            return manager.createQuery("from Usuario where id = :id", Usuario.class).setParameter("id", id).getSingleResult();
        } catch (NoResultException e) {
            return null;
        }
    }

    public Usuario porNomeOuEmail(String nome, String email) {
        try {
            return manager.createQuery("from Usuario where upper(nome) = :nome and email = :email", Usuario.class)
                    .setParameter("nome", nome.toUpperCase())
                    .setParameter("email", email.toUpperCase())
                    .getSingleResult();
        } catch (NoResultException e) {
            return null;
        }
    }

    public Usuario porEmail(String email) {
        try {
            return manager.createQuery("from Usuario where upper(email) = :email", Usuario.class)
                    .setParameter("email", email.toUpperCase())
                    .getSingleResult();
        } catch (NoResultException e) {
            return null;
        }
    }

    @SuppressWarnings("unchecked")
    public List<Usuario> filtrados(UsuarioFilter filtro) {
        Session session = manager.unwrap(Session.class);
        Criteria criteria = session.createCriteria(Usuario.class);

        if (StringUtils.isNotBlank(filtro.getNome())) {
            criteria.add(Restrictions.ilike("nome", filtro.getNome(), MatchMode.ANYWHERE));
        }

        return criteria.addOrder(Order.asc("nome")).list();
    }
}

repository groups.java

 public class Grupos implements Serializable {

    private static final long serialVersionUID = 0L;

    @Inject
    private EntityManager manager;

    public List<Grupo> grupos(){
        return manager.createQuery("FROM Grupo",Grupo.class).getResultList();
    }

    public  Grupo porId(Long id) {
        return this.manager.find(Grupo.class, id);
    }


    public Grupo grupoPorNome(String nome)
    {
        try
            {
            return manager.createQuery("from Grupo where upper(nome) = :nome", Grupo.class)
                    .setParameter("nome", nome.toUpperCase())
                    .getSingleResult();
            }
        catch (NoResultException e)
        {
            return null;
        }
    }


}

User SearchBean.java

@Named @ViewScoped public class SearchUsersBean implements Serializable {

private static final long serialVersionUID = 0L;

@Inject
private Usuarios usuarios;

private final UsuarioFilter filtro;
private List<Usuario> usuariosFiltrados;

private Usuario usuarioSelecionado;

public PesquisaUsuariosBean() {
    filtro = new UsuarioFilter();
}

public void excluir() {
    usuarios.remover(usuarioSelecionado);
    usuariosFiltrados.remove(usuarioSelecionado);

    FacesUtil.addInfoMessage("Usuario" + usuarioSelecionado.getId() + "excluido com sucesso");

}

public void pesquisar() {
    usuariosFiltrados = usuarios.filtrados(filtro);
}

public UsuarioFilter getFiltro() {
    return filtro;
}

public List<Usuario> getUsuariosFiltrados() {
    return usuariosFiltrados;
}



public Usuario getUsuarioSelecionado() {
    return usuarioSelecionado;
}

public void setUsuarioSelecionado(Usuario usuarioSelecionado) {
    this.usuarioSelecionado = usuarioSelecionado;
}

}

User Search.xhtml

    <ui:define name="corpo">
    <h:form >
        <h1>Pesquisa Usuarios</h1>

        <p:messages autoUpdate="true" closable="true"/>

        <p:toolbar style="margin-top: 20px">

            <p:toolbarGroup style="padding: 4px">
                <p:commandButton value="Pesquisar" action="#{pesquisaUsuariosBean.pesquisar}"
                                 update=" @form "  />
            </p:toolbarGroup>

            <p:toolbarGroup align="right" style="padding: 4px"> 
                <p:button value="Novo" outcome="/usuarios/CadastroUsuario" />
            </p:toolbarGroup>

        </p:toolbar>

        <p:panelGrid  id="painel" columns="2" style="width: 100%; margin-top: 20px" columnClasses="rotulo,campo">

            <p:outputLabel value="Nome" for="nome"/>
            <p:inputText id="nome" style="width: 50%" value="#{pesquisaUsuariosBean.filtro.nome}"/>

        </p:panelGrid>

        <p:dataTable value="#{pesquisaUsuariosBean.usuariosFiltrados}" var="usuario" id="tabelaUsuarios" style="margin-top: 20px"
                     emptyMessage="Nenhum Usuario Encontrado" rows="20" paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom">

            <p:column headerText="Nome" style="text-align: left">
                <h:outputText value="#{usuario.nome}"/>
            </p:column>

            <p:column headerText="E-mail"  style="text-align: left">
                <h:outputText value="#{usuario.email}"/>
            </p:column>

            <p:column   style="width: 100px;text-align: center">
                <p:button  icon="ui-icon-pencil" title="Editar" style="margin: 5px"
                           outcome="/usuarios/CadastroUsuario">
                    <f:param name="usuario" value="#{usuario.id}"/>
                </p:button>
                <p:commandButton icon="ui-icon-trash" title="Excluir" oncomplete="PF('confirmacaoExclusao').show()" process="@this"
                                 update=":confirmacaoExclusaoDialog">
                    <f:setPropertyActionListener target="#{pesquisaUsuariosBean.usuarioSelecionado}" value="#{usuario}"/>
                </p:commandButton>
            </p:column >

        </p:dataTable>

        <p:confirmDialog header="Exclusão de produto" message="Tem certeza que deseja excluir o produto #{pesquisaUsuariosBean.usuarioSelecionado.nome} ?"
                         widgetVar="confirmacaoExclusao" id="confirmacaoExclusaoDialog">
            <p:button value="Não" onclick="PF('confirmacaoExclusao').hide(); return false;" />
            <p:commandButton value="Sim" oncomplete="PF('confirmacaoExclusao').hide();" 
                             action="#{pesquisaUsuariosBean.excluir}" process="@this" update="@from"/>
        </p:confirmDialog>

    </h:form>
    
asked by anonymous 12.07.2016 / 21:03

0 answers