Code: Select all
private void preparaMenus() {
menuModel = new DefaultMenuModel();
if(menus != null && !menus.isEmpty()){
for(Menu menuDTO : menus){
if(!temPermissao(menuDTO.getPermissao().getIdFuncionalidade())){
continue;
}
if(menuDTO.getMenusFilhos() != null && !menuDTO.getMenusFilhos().isEmpty()){
DefaultSubMenu subMenu = new DefaultSubMenu(menuDTO.getNome());
processSubMenus(subMenu, menuDTO.getMenusFilhos());
menuModel.addElement(subMenu);
}else{
DefaultMenuItem menuItem = new DefaultMenuItem(menuDTO.getNome(), menuDTO.getIcone());
if(!StringUtil.isBlankOrNull(menuDTO.getUrl())){
menuItem.setCommand("#{sessaoBean.redirect('"+menuDTO.getUrl()+"','"+menuDTO.getNome()+"')}");
// menuItem.setOutcome(menuDTO.getUrl());
// menuItem.setParam("nome", menuDTO.getNome());
}
menuItem.setAjax(true);
menuItem.setImmediate(true);
menuItem.setOnstart("PF('statusDialog').show()");
menuItem.setOnsuccess("PF('statusDialog').hide()");
menuModel.addElement(menuItem);
}
}
}
}
/**
*
* @param subMenu
* @param menusFilhos
*/
private void processSubMenus(DefaultSubMenu subMenu, List<Menu> menusFilhos) {
if(menusFilhos != null && !menusFilhos.isEmpty()){
for(Menu menuDTO : menusFilhos){
if(!temPermissao(menuDTO.getPermissao().getIdFuncionalidade())){
continue;
}
if(menuDTO.getMenusFilhos() == null || menuDTO.getMenusFilhos().isEmpty()){
DefaultMenuItem menuItem = new DefaultMenuItem(menuDTO.getNome(), menuDTO.getIcone());
menuItem.setOnstart("PF('blockUIWidget').block()");
menuItem.setOnsuccess("PF('blockUIWidget').unblock()");
menuItem.setImmediate(true);
menuItem.setAjax(true);
if(!StringUtil.isBlankOrNull(menuDTO.getUrl())){
menuItem.setCommand("#{sessaoBean.redirect('"+menuDTO.getUrl()+"','"+menuDTO.getNome()+"')}");
// menuItem.setOutcome(menuDTO.getUrl());
// menuItem.setParam("nome", menuDTO.getNome());
}
subMenu.addElement(menuItem);
}else{
DefaultSubMenu asubMenu = new DefaultSubMenu(menuDTO.getNome());
if(StringUtil.isBlankOrNull(menuDTO.getIcone())){
asubMenu.setIcon(menuDTO.getIcone());
}
processSubMenus(asubMenu, menuDTO.getMenusFilhos());
subMenu.addElement(asubMenu);
}
}
}
}
What is the correct way to implement?