-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathMenuController.java
More file actions
119 lines (109 loc) · 4.17 KB
/
Copy pathMenuController.java
File metadata and controls
119 lines (109 loc) · 4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package com.mitocode.controller;
import com.mitocode.ejb.MenuFacadeLocal;
import com.mitocode.model.Menu;
import com.mitocode.model.Usuario;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.MenuModel;
@Named
@SessionScoped
public class MenuController implements Serializable {
@EJB
private MenuFacadeLocal EJBMenu;
private List<Menu> lista;
private MenuModel model;
@PostConstruct
public void init() {
this.listarMenus();
model = new DefaultMenuModel();
//this.establecerPermisos();
this.recorreMenu();
}
public void listarMenus() {
try {
lista = EJBMenu.findAll();
} catch (Exception e) {
//mensaje jsf
}
}
public MenuModel getModel() {
return model;
}
public void setModel(MenuModel model) {
this.model = model;
}
private DefaultSubMenu recursivoSubMenu(DefaultSubMenu firstSubmenu, int cveModulo) {
List<Menu> 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<Menu> ListaItem(int codigoSubmenu) {
List<Menu> 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<Menu> 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");
for (Menu m : lista) {
if (m.getTipo().equals("S") && m.getTipoUsuario().equals(us.getTipo())) {
DefaultSubMenu firstSubmenu = new DefaultSubMenu(m.getNombre());
for (Menu i : lista) {
Menu submenu = i.getSubmenu();
if (submenu != null) {
if (submenu.getCodigo() == m.getCodigo()) {
DefaultMenuItem item = new DefaultMenuItem(i.getNombre());
item.setUrl(i.getUrl());
firstSubmenu.addElement(item);
}
}
}
model.addElement(firstSubmenu);
} else {
if (m.getSubmenu() == null && m.getTipoUsuario().equals(us.getTipo())) {
DefaultMenuItem item = new DefaultMenuItem(m.getNombre());
item.setUrl(m.getUrl());
model.addElement(item);
}
}
}
}
public void cerrarSesion(){
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
}
}