From dd89a7630c5e0120318a0603828518639bb9c483 Mon Sep 17 00:00:00 2001 From: omiguelca Date: Tue, 4 Aug 2015 17:39:01 -0500 Subject: [PATCH] =?UTF-8?q?una=20peque=C3=B1a=20aportacion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit una pequeña aportacion que espero sea de ayuda, dandole mayor funcionalidad a la lectura del menu por parte de una funcion recursiva optimizando la lectura de la lista; saludos. --- .../mitocode/controller/MenuController.java | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mitocode/controller/MenuController.java b/src/main/java/com/mitocode/controller/MenuController.java index a8a1f75..93170ec 100644 --- a/src/main/java/com/mitocode/controller/MenuController.java +++ b/src/main/java/com/mitocode/controller/MenuController.java @@ -29,7 +29,8 @@ public class MenuController implements Serializable { public void init() { this.listarMenus(); model = new DefaultMenuModel(); - this.establecerPermisos(); + //this.establecerPermisos(); + this.recorreMenu(); } public void listarMenus() { @@ -47,7 +48,44 @@ public MenuModel getModel() { public void setModel(MenuModel model) { this.model = model; } - + private DefaultSubMenu recursivoSubMenu(DefaultSubMenu firstSubmenu, int cveModulo) { + List lstHijos = ListaItem(cveModulo); + for (Menu m : lstHijos) { + if (m.getTipo().equals("S")) { + DefaultSubMenu subMenu = new DefaultSubMenu(m.getNombre()); + firstSubmenu.addElement(recursivoSubMenu(subMenu, m.getCodigo())); + } else { + DefaultMenuItem item = new DefaultMenuItem(m.getNombre()); + item.setUrl(m.getUrl()); + firstSubmenu.addElement(item); + } + } + return firstSubmenu; + } + private List ListaItem(int codigoSubmenu) { + List lstItem = new ArrayList<>(); + for (Menu m : lista) { + if ((m.getSubmenu()==null?0:m.getSubmenu().getCodigo()) == codigoSubmenu) { + lstItem.add(m); + } + } + return lstItem; + } + public void recorreMenu() { + Usuario us = (Usuario) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuario"); + model = new DefaultMenuModel(); + List lstItem = ListaItem(0); + for (Menu m : lstItem) { + if (m.getTipo().equals("S") && m.getSubmenu()==null && m.getTipoUsuario().equals(us.getTipo())) { + DefaultSubMenu firstSubmenu = new DefaultSubMenu(m.getNombre()); + model.addElement(recursivoSubMenu(firstSubmenu, m.getCodigo())); + } else { + DefaultMenuItem item = new DefaultMenuItem(m.getNombre()); + item.setUrl(m.getUrl()); + model.addElement(item); + } + } + } public void establecerPermisos() { Usuario us = (Usuario) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuario");