maia/.svn/pristine/bc/bc6e673a77199778382ac19b0f8...

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;
}
}