package com.FitBank.web.util; import javax.servlet.ServletRequest; import javax.servlet.http.HttpSession; import com.FitBank.web.servlet.json.Search; import com.fitbank.dto.management.Detail; import com.fitbank.dto.management.Field; import com.fitbank.dto.management.Record; import com.fitbank.dto.management.Table; public class MenuLoader { private ServletRequest request; private HttpSession session; private String context = ""; public MenuLoader(ServletRequest pRequest, HttpSession pSession) { this.request = pRequest; this.session = pSession; if (this.context == null) { this.context = ""; } } public Detail getSubMenu() throws Exception { String menuitem = this.request.getParameter("menuitem"); String subsystem = this.request.getParameter("subsystem"); String level = this.request.getParameter("level"); /*String menuitem = (String) this.session.getAttribute("_mmenuitem"); String subsystem = (String) this.session.getAttribute("_msubsystem"); String level = (String) this.session.getAttribute("_mLevel");*/ // System.out.println("Sub MEnu " + menuitem + " " + subsystem + " " + // level); Detail detail = new Detail(); Search sa = new Search(this.request); sa.prepareHeaderData(detail, this.request); detail.setSubsystem("01"); detail.setTransaction("0001"); detail.setVersion("01"); detail.setType("SIG"); detail.findFieldByNameCreate("MENUITEM").setValue(menuitem); detail.findFieldByNameCreate("SUBSISTEMA").setValue(subsystem); detail.findFieldByNameCreate("NIVEL").setValue(level); detail.findFieldByNameCreate("_SUBMENU_").setValue("1"); detail = sa.process(detail); return detail; } public Detail query() throws Exception { Detail det = new Detail(); Search sa = new Search(this.request); sa.prepareHeaderData(det, this.request); det.setSubsystem("01"); det.setTransaction("0001"); det.setVersion("01"); det.setType("SIG"); Detail detail = sa.process(det); Field menu = detail.findFieldByNameCreate("MENU"); String value = "" + menu.getValue(); value = value.replaceAll("jsp\\/menu.jsp", "\\" + this.context + "\\/" + "jsp\\/menu.jsp"); detail.addTable(this.transformMenu(value)); menu.setValue(value); return detail; } private Table transformMenu(String pData) throws Exception { String menu[] = pData.split("\\]"); pData = ""; for (String str : menu) { if (str.indexOf(",,,,,,,") < 0) { continue; } pData += str.replaceAll("\"", ""); } menu = pData.split("\\["); Table tbl = new Table("menudata", "menudata"); for (String str : menu) { if (str.indexOf(",,,,,,,") < 0) { continue; } String[] tmp = str.split(","); String[] tmp1 = tmp[8].split("="); Record rec = new Record(); rec.findFieldByNameCreate("DES").setValue(tmp[0]); rec.findFieldByNameCreate("SUB").setValue(tmp1[1]); tbl.addRecord(rec); } return tbl; } }