Olá a todos, bom, reparem no meu código abaixo e nos comentarios, esse código monta o menu do site de acordo com as permissões do usuário…
[code]public MenuModel getMenu() {
//---------- pego as paginas que o cara tem acesso ----------
HttpSession ses = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
acessos = (List) ses.getAttribute(“acessos”);
//---------- busco os menus do sistema ----------
List<Menus> menus = new ArrayList<Menus>();
Criteria c = hu.getCriteria(Menus.class);
c.addOrder(Order.asc("nome"));
menus = dao.listarCriteria(c);
hu.commitTransaction();
menu = new DefaultMenuModel();
//---------- crio o menuitem que retorna para pagina inicial ----------
MenuItem miIndex = new MenuItem();
miIndex.setValue("Página inicial");
miIndex.setUrl("/faces/index.xhtml");
miIndex.setId("mi_" + miIndex.hashCode());
miIndex.setUpdate("messages,panelTopo,lCentro,usuario,listaProdutos,filtro,orcamentoDetalhe,categorigasPromocionais,categorigas");
miIndex.setAjax(false);
menu.addMenuItem(miIndex);
//---------- Crio um submenu vazio ----------
Submenu sub = new Submenu();
menu.addSubmenu(sub);
//---------- crio os submenus e seus respectivos menuitens ----------
for (Menus m : menus) {
Submenu s = new Submenu();
s.setLabel(m.getNome());
for (Acessos a : acessos) {
if (a.getPaginasRestritasIdpaginasrestritas().getMenusIdmenus().getIdMenus().longValue() == m.getIdMenus().longValue()) {
MenuItem mi = new MenuItem();
mi.setValue(a.getPaginasRestritasIdpaginasrestritas().getTitulo());
mi.setUrl(a.getPaginasRestritasIdpaginasrestritas().getUrl());
mi.setId("mi_" + a.hashCode());
s.getChildren().add(mi);
}
}
menu.addSubmenu(s);
}
//---------- crio um menuitem que faz logoff ----------
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ExpressionFactory expressionFactory = facesContext.getApplication().getExpressionFactory();
MethodExpression methodExpression = expressionFactory.createMethodExpression(elContext, "#{mBUsuarioLogado.logout()}", null, new Class[] {ActionEvent.class});
MenuItem miSair = new MenuItem();
miSair.setActionExpression(methodExpression);
miSair.setValue("Sair");
miSair.setId("mi_" + miSair.hashCode());
miSair.setUpdate("messages,panelTopo,lCentro,usuario,listaProdutos,filtro,orcamentoDetalhe");
miSair.setAjax(false);
menu.addMenuItem(miSair);
return menu;
}[/code][b]Primeira duvida - [/b]Porque o menuitem "Pagina Inicial" fica depois dos submenus ? EX: ( Cadastros - Consultas - Outros - Pagina Inicial - Sair ) eu quero q ele fique antes, ou na ordem q eu adicionar, tem alguma configuração pra isso ?
Segunda duvida No mozilla firefox mais atual, funciona normal, mas no google chrome o primeiro submenu aparece com a seguinte configuração no css (left: -67) o que corta a metade do submenu, tem alguma coisa q pode ser feita ?
Obs: Por enquanto eu criei aquele submenu vazio na frente pra nao ficar cortando…