Pessoal,
Estou querendo fazer o seguinte: carregar a lista de permissões para cada tipo de usuário do meu sistema, de acordo com o tipo de usuário selecionado no meu selectOneMenu.
Eu consigo carregar a lista de tipos de usuários no meu selectOneMenu, mas não consigo carregar a lista de permissão, de acordo com a seleção.
Já tentei com valueChangeListener e nada acontece e não sei porque o NetBeans não está deixando eu depurar o projeto, está dando erro, então não estou conseguindo descobrir se o objeto selecionado está indo mesmo para o DAO
XHTML:
<p:selectOneMenu id="listaTipoUsuario" value="#{permissaoController.permissao.tipoUsuario}"
valueChangeListener="#{permissaoController.carregaPermissoesPorTipoDeUsuario(event)}"
required="true"
requiredMessage="Por favor, selecione o tipo de usuário.">
<f:selectItem itemLabel="Selecione..."/>
<f:selectItems value="#{tipoUsuarioController.listaDeTiposDeUsuarioParaCombobox}"/>
</p:selectOneMenu>
<h:outputLabel for="permissoesTipoUsuario" value="Permissões:"
styleClass="labelNegrito"/>
<p:selectManyCheckbox layout="pageDirection">
<f:selectItems value="#{permissaoController.listaDePermissoesPorTipoDeUsuario}"/>
</p:selectManyCheckbox>
MB:
public void carregaPermissoesPorTipoDeUsuario(ValueChangeEvent event) {
if (event.getNewValue() != event.getOldValue()) {
listaDePermissoesPorTipoDeUsuario = new ArrayList<SelectItem>();
TipoUsuario tipoUsuario = new TipoUsuario();
tipoUsuario = (TipoUsuario) event.getNewValue();
/*TipoUsuario tipoUsuario = new TipoUsuario();
TipoUsuarioDao dao = new TipoUsuarioDaoImp();
tipoUsuario = dao.getTipoUsuario(1);*/
List<Permissao> lista = permissaoDao.listarPermissoesPorTipoDeUsuario(tipoUsuario);
for (Permissao p : lista) {
listaDePermissoesPorTipoDeUsuario.add(new SelectItem(p, p.getMenu().getItem()));
}
}
}
DAO:
@Override
public List<Permissao> listarPermissoesPorTipoDeUsuario(TipoUsuario tipo) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.clear();
Transaction t = session.beginTransaction();
Criteria criteria = session.createCriteria(Permissao.class);
criteria.add(Restrictions.eq("tipoUsuario", tipo));
/*TipoUsuario tipoUsuario = new TipoUsuario();
TipoUsuarioDao tipoUsuarioDao = new TipoUsuarioDaoImp();
tipoUsuario = tipoUsuarioDao.getTipoUsuario(4);
criteria.add(Restrictions.eq("tipoUsuario", tipoUsuario));*/
List lista = criteria.list();
t.commit();
return lista;
}