public Menubar getMenuBar( List<OpcionSistemaDto> listaOpcionMenu, List<PermisoRolDto> listaPermisos) throws Exception { listaOpcionMenu.remove(new OpcionSistemaDto(0L)); Menubar menuBar = new Menubar(); Submenu subMenu = null; MenuItem menuItem = null; ApplicationMBean applicationMBean = (ApplicationMBean) WebServletContextListener.getApplicationContext().getBean("applicationMBean"); for (OpcionSistemaDto opcionMenuDto : listaOpcionMenu) { opcionMenuDto.setPermiso(obtenerPermiso(listaPermisos, opcionMenuDto).getEstado()); if (opcionMenuDto.getPadreDto() == null || opcionMenuDto.getPadreDto().getId().equals(0L)) { List<OpcionSistemaDto> hijos = opcionSistemaManager.obtenerHijosMenu(opcionMenuDto); UtilCore.General.ordena(hijos, "orden"); if (hijos.size() > 0) { if (opcionMenuDto.getPermiso()) { subMenu = new Submenu(); subMenu.setId( ConstantesCore.VARIABLE_ID_MENU + String.valueOf(opcionMenuDto.getId().intValue())); subMenu.setLabel( UtilCore.Internacionalizacion.getMensajeInternacional(opcionMenuDto.getValue()) .toUpperCase()); subMenu.setIcon(opcionMenuDto.getIcon()); subMenu.setStyle(applicationMBean.getEstiloMenu()); cargarHijos3(opcionMenuDto, subMenu, listaPermisos); menuBar.getChildren().add(subMenu); } } else { if (opcionMenuDto.getPermiso()) { menuItem = new MenuItem(); menuItem.setId( ConstantesCore.VARIABLE_ID_MENU_ITEM + String.valueOf(opcionMenuDto.getId().intValue())); menuItem.setValue( UtilCore.Internacionalizacion.getMensajeInternacional(opcionMenuDto.getValue()) .toUpperCase()); menuItem.setIcon(opcionMenuDto.getIcon()); menuItem.setOnclick(opcionMenuDto.getOnClick()); if (opcionMenuDto.getAction() != null && opcionMenuDto.getAction().length() > 0) { menuItem.setAction( FacesContext.getCurrentInstance() .getApplication() .createMethodBinding(opcionMenuDto.getAction(), new Class[] {})); } else { menuItem.setUrl(opcionMenuDto.getUrl()); } menuItem.setInView(true); menuItem.setStyle(applicationMBean.getEstiloMenu()); menuItem.setAjax(false); menuBar.getChildren().add(menuItem); } } } } return menuBar; }
private void cargarHijos3( OpcionSistemaDto opcionMenuDto2, Submenu subMenu2, List<PermisoRolDto> listaPermisos) throws Exception { MenuItem menuItem = null; Submenu subMenuHijo = null; ApplicationMBean applicationMBean = (ApplicationMBean) WebServletContextListener.getApplicationContext().getBean("applicationMBean"); List<OpcionSistemaDto> hijos1 = opcionSistemaManager.obtenerHijosMenu(opcionMenuDto2); UtilCore.General.ordena(hijos1, "orden"); for (OpcionSistemaDto opcionMenuDtoHijo : hijos1) { opcionMenuDtoHijo.setPermiso(obtenerPermiso(listaPermisos, opcionMenuDtoHijo).getEstado()); List<OpcionSistemaDto> hijos = opcionSistemaManager.obtenerHijosMenu(opcionMenuDtoHijo); UtilCore.General.ordena(hijos, "orden"); if (hijos.size() >= 1) { if (opcionMenuDtoHijo.getPermiso()) { subMenuHijo = new Submenu(); subMenuHijo.setId( ConstantesCore.VARIABLE_ID_MENU + String.valueOf(opcionMenuDtoHijo.getId().intValue())); subMenuHijo.setLabel( UtilCore.Internacionalizacion.getMensajeInternacional(opcionMenuDtoHijo.getValue()) .toUpperCase()); subMenuHijo.setIcon(opcionMenuDtoHijo.getIcon()); subMenuHijo.setStyle(applicationMBean.getEstiloMenu()); cargarHijos3(opcionMenuDtoHijo, subMenuHijo, listaPermisos); subMenu2.getChildren().add(subMenuHijo); } } else { if (opcionMenuDtoHijo.getPermiso()) { menuItem = new MenuItem(); menuItem.setId( ConstantesCore.VARIABLE_ID_MENU_ITEM + String.valueOf(opcionMenuDtoHijo.getId().intValue())); menuItem.setValue( UtilCore.Internacionalizacion.getMensajeInternacional(opcionMenuDtoHijo.getValue()) .toUpperCase()); menuItem.setUrl(opcionMenuDtoHijo.getUrl()); menuItem.setIcon(opcionMenuDtoHijo.getIcon()); menuItem.setOnclick(opcionMenuDtoHijo.getOnClick()); menuItem.setStyle(applicationMBean.getEstiloMenu()); if (opcionMenuDtoHijo.getAction() != null && opcionMenuDtoHijo.getAction().length() > 0) { menuItem.setAction( FacesContext.getCurrentInstance() .getApplication() .createMethodBinding(opcionMenuDtoHijo.getAction(), new Class[] {})); } else { menuItem.setUrl(opcionMenuDtoHijo.getUrl()); } menuItem.setInView(true); menuItem.setAjax(false); subMenu2.getChildren().add(menuItem); } } } }