127 lines
4.2 KiB
Plaintext
Executable File
127 lines
4.2 KiB
Plaintext
Executable File
package com.fp.frontend.controller.security;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import javax.faces.context.FacesContext;
|
|
|
|
import org.primefaces.model.menu.DefaultMenuItem;
|
|
import org.primefaces.model.menu.DefaultMenuModel;
|
|
import org.primefaces.model.menu.DefaultSubMenu;
|
|
import org.primefaces.model.menu.MenuModel;
|
|
import org.primefaces.model.menu.Submenu;
|
|
|
|
import com.fp.frontend.helper.MessageHelper;
|
|
|
|
public class MaiaMenu {
|
|
|
|
private MenuModel menuModel;
|
|
|
|
private String maiaMenuJson;
|
|
|
|
private String contextPath = "";
|
|
|
|
/**
|
|
* Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador.
|
|
*/
|
|
public MaiaMenu() {
|
|
try {
|
|
maiaMenuJson = "";
|
|
contextPath = FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath();
|
|
} catch (Exception e) {
|
|
MessageHelper.setMessageError(e);
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public void buildMenu(List<Map<String, Object>> lmenu) throws Exception {
|
|
menuModel = new DefaultMenuModel();
|
|
for (Map<String, Object> menu : lmenu) {
|
|
String label = (String) menu.get("t");
|
|
DefaultSubMenu submenu = new DefaultSubMenu();
|
|
submenu.setLabel(label);
|
|
menuModel.addElement(submenu);
|
|
|
|
if (menu.get("items") instanceof Map) {
|
|
this.addMenuItem(submenu, (Map<String, Object>) menu.get("items"));
|
|
} else {
|
|
this.addSubmenu(submenu, (List<Map<String, Object>>) menu.get("items"));
|
|
}
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
private void addSubmenu(Submenu submenupadre, List<Map<String, Object>> lsubmenu) throws Exception {
|
|
for (Map<String, Object> menu : lsubmenu) {
|
|
Object obj = menu.get("items");
|
|
if (obj == null) {
|
|
this.addMenuItem(submenupadre, menu);
|
|
} else {
|
|
String label = (String) menu.get("t");
|
|
DefaultSubMenu submenu = new DefaultSubMenu();
|
|
submenu.setLabel(label);
|
|
submenupadre.getElements().add(submenu);
|
|
this.addSubmenu(submenu, (List<Map<String, Object>>) menu.get("items"));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
private void addMenuItem(Submenu submenu, Map<String, Object> mdata) throws Exception {
|
|
String tname = (String) mdata.get("t");
|
|
String modulo = (String) mdata.get("m");
|
|
Integer transaccion = (Integer) mdata.get("tr");
|
|
Integer version = (Integer) mdata.get("v");
|
|
String pagina = (String) mdata.get("jsfp");
|
|
String autoconsulta = (String) mdata.get("a");
|
|
String url = pagina + "?" + "m=" + modulo + "&t=" + transaccion + "&v=" + version + "&autoquery=" + autoconsulta;
|
|
String key = modulo + "-" + transaccion + "-" + version;
|
|
String nameMenu = tname + " (" + modulo + "-" + transaccion + ")";
|
|
DefaultMenuItem menuItem = new DefaultMenuItem();
|
|
menuItem.setValue(nameMenu);
|
|
menuItem.setUrl("javascript:Maiaworkspace.loadPage('" + url + "','" + nameMenu + "')");
|
|
menuItem.setIcon("ui-icon-document");
|
|
menuItem.setStyleClass("m-menuitem");
|
|
submenu.getElements().add(menuItem);
|
|
maiaMenuJson = maiaMenuJson + "'" + key + "': {'url':'" + url + "','name':'" + nameMenu + "'},";
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: menuModel
|
|
*
|
|
* @return MenuModel
|
|
*/
|
|
public MenuModel getMenuModel() {
|
|
return menuModel;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: menuModel
|
|
*
|
|
* @param Valor a fijar en el atributo.
|
|
*/
|
|
public void setMenuModel(MenuModel menuModel) {
|
|
this.menuModel = menuModel;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: maiaMenuJson
|
|
*
|
|
* @return String
|
|
*/
|
|
public String getMaiaMenuJson() {
|
|
return maiaMenuJson;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: maiaMenuJson
|
|
*
|
|
* @param maiaMenuJson Valor a fijar en el atributo
|
|
*/
|
|
public void setMaiaMenuJson(String maiaMenuJson) {
|
|
this.maiaMenuJson = maiaMenuJson;
|
|
}
|
|
|
|
}
|