1 19 package org.openbravo.erpCommon.utility; 20 21 import org.openbravo.database.ConnectionProvider; 22 import org.openbravo.base.secureApp.*; 23 import javax.servlet.*; 24 import org.openbravo.data.FieldProvider; 25 import org.openbravo.utils.Replace; 26 import org.apache.log4j.Logger ; 27 28 29 public class WindowTreeUtility { 30 static Logger log4j = Logger.getLogger(WindowTreeUtility.class); 31 32 public static String getTreeType(String keyColumnName) { 33 if (log4j.isDebugEnabled()) log4j.debug("WindowTreeUtility.getTreeID() - key Column: " + keyColumnName); 34 if(keyColumnName == null || keyColumnName.length() == 0) return ""; 35 String TreeType = ""; 36 if(keyColumnName.equals("AD_Menu_ID")) TreeType = "MM"; 37 else if(keyColumnName.equals("C_ElementValue_ID")) TreeType = "EV"; 38 else if(keyColumnName.equals("M_Product_ID")) TreeType = "PR"; 39 else if(keyColumnName.equals("C_BPartner_ID")) TreeType = "BP"; 40 else if(keyColumnName.equals("AD_Org_ID")) TreeType = "OO"; 41 else if(keyColumnName.equals("C_Project_ID")) TreeType = "PJ"; 42 else if(keyColumnName.equals("M_ProductCategory_ID")) TreeType = "PC"; 43 else if(keyColumnName.equals("M_BOM_ID")) TreeType = "BB"; 44 else if(keyColumnName.equals("C_SalesRegion_ID")) TreeType = "SR"; 45 else if(keyColumnName.equals("C_Campaign_ID")) TreeType = "MC"; 46 else if(keyColumnName.equals("C_Activity_ID")) TreeType = "AY"; 47 else if (keyColumnName.equals("AD_Accountingrpt_Element_ID")) TreeType = "AR"; 48 else if (keyColumnName.equals("C_Tax_Report_ID")) TreeType = "TR"; 49 else TreeType = WindowTreeUtilityClient.getTreeType(keyColumnName); 50 if (TreeType.equals("")) log4j.error("WindowTreeUtility.getTreeID() - Could not map " + keyColumnName); 51 return TreeType; 52 } 53 54 public static WindowTreeData[] getTree(ConnectionProvider conn, VariablesSecureApp vars, String TreeType, String TreeID, boolean editable, String strParentID, String strNodeId, String strTabID) throws ServletException { 55 if (log4j.isDebugEnabled()) log4j.debug("WindowTreeUtility.getTree() - TreeID: " + TreeID); 56 WindowTreeData[] data = null; 57 String strEditable = (editable?"editable":""); 58 boolean isBaseLanguage = vars.getLanguage().equals("en_US"); 59 if(TreeType.equals("MM")) { 60 if (isBaseLanguage) data = WindowTreeData.select(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 61 else data = WindowTreeData.selectTrl(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID, vars.getLanguage()); 62 } else if (TreeType.equals("OO")) data = WindowTreeData.selectOrg(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 63 else if (TreeType.equals("PR")) data = WindowTreeData.selectProduct(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 64 else if (TreeType.equals("PC")) data = WindowTreeData.selectProductCategory(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 65 else if (TreeType.equals("BB")) data = WindowTreeData.selectBOM(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 66 else if (TreeType.equals("EV")) { 67 String strElementId = vars.getSessionValue(Utility.getWindowID(conn, strTabID) + "|C_Element_ID"); 68 data = WindowTreeData.selectElementValue(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID, strElementId); 69 } else if (TreeType.equals("BP")) data = WindowTreeData.selectBPartner(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 70 else if (TreeType.equals("MC")) data = WindowTreeData.selectCampaign(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 71 else if (TreeType.equals("PJ")) data = WindowTreeData.selectProject(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 72 else if (TreeType.equals("AY")) data = WindowTreeData.selectActivity(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 73 else if (TreeType.equals("SR")) data = WindowTreeData.selectSalesRegion(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 74 else if (TreeType.equals("AR")) data = WindowTreeData.selectAccountingReport(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 75 else if (TreeType.equals("TR")) data = WindowTreeData.selectTaxReport(conn, vars.getUser(), strEditable, strParentID, strNodeId, TreeID); 76 else { 77 FieldProvider[] fData = WindowTreeUtilityClient.getTree(conn, vars, TreeType, TreeID, editable, strParentID, strNodeId, strTabID); 78 if (fData!=null) { 79 data = new WindowTreeData[fData.length]; 80 for (int i=0;i<fData.length;i++) { 81 data[i] = WindowTreeUtility.transformFieldProvider(fData[i]); 82 } 83 } 84 fData = null; 85 } 86 return data; 87 } 88 89 public static WindowTreeData transformFieldProvider(FieldProvider data) throws ServletException { 90 WindowTreeData aux = new WindowTreeData(); 91 aux.nodeId = data.getField("nodeId"); 92 aux.parentId = data.getField("parentId"); 93 aux.seqno = data.getField("seqno"); 94 aux.isactive = data.getField("isactive"); 95 aux.id = data.getField("id"); 96 aux.name = data.getField("name"); 97 aux.description = data.getField("description"); 98 aux.issummary = data.getField("issummary"); 99 aux.action = data.getField("action"); 100 aux.adWindowId= data.getField("adWindowId"); 101 aux.adProcessId = data.getField("adProcessId"); 102 aux.adFormId = data.getField("adFormId"); 103 aux.adWorkflowId = data.getField("adWorkflowId"); 104 aux.adTaskId = data.getField("adTaskId"); 105 aux.adWorkbenchId = data.getField("adWorkbenchId"); 106 return aux; 107 } 108 109 public static String addNodeElement(String name, String description, String target, boolean isSummary, String windowType, String strDirection, String strOnClick, String strOnDblClick, boolean hasChilds, String nodeId, String action) { 110 if (log4j.isDebugEnabled()) log4j.debug("WindowTreeUtility.addNodeElement() - name: " + name); 111 StringBuffer element = new StringBuffer (); 112 String strDescription = Replace.replace(Replace.replace(name, "'", "\\'"), "\"", "\\\""); 113 strOnClick = Replace.replace(strOnClick, "\"", """); 114 strOnDblClick = Replace.replace(strOnDblClick, "\"", """); 115 116 if (isSummary) { 117 element.append("<li id=\"folder").append((hasChilds?"":"NoChilds")).append(nodeId).append("\""); 118 element.append(" class=\"folder").append((nodeId.equals("0")?"Abierta":"")).append(windowType).append("\">\n"); 119 element.append("<a HREF=\"#\" onClick=\"").append(((strOnClick!=null && !strOnClick.equals(""))?strOnClick:"")); 120 element.append("return false;\" onMouseOver='window.status=\"").append(strDescription).append("\";return true;'"); 121 if (strOnDblClick!=null && !strOnDblClick.equals("")) { 122 element.append(" onDblClick=\"").append(strOnDblClick).append("return false;\""); 123 } 124 element.append(" onMouseOut=\"window.status='';return true;\" target=\"").append(target).append("\" id=\"folderHref").append((hasChilds?"":"NoChilds")).append(nodeId).append("\">").append(name).append("</a>\n"); 125 element.append("</li>\n"); 126 } else { 127 element.append("<li id=\"").append(windowTypeNico(action)).append(nodeId).append("\""); 128 element.append(" class=\"child").append(windowType).append("\">\n"); 129 element.append("<a HREF=\"#\" onClick=\"").append(((strOnClick!=null && !strOnClick.equals(""))?strOnClick:"")).append("return false;\""); 130 if (strOnDblClick!=null && !strOnDblClick.equals("")) { 131 element.append(" onDblClick=\"").append(strOnDblClick).append("return false;\""); 132 } 133 element.append(" onMouseOver='window.status=\"").append(strDescription).append("\";return true;'"); 134 element.append(" onMouseOut=\"window.status='';return true;\" target=\"").append(target).append("\" id=\"child").append(windowTypeNico(action)).append(nodeId).append("\">").append(name).append("</a>\n"); 135 element.append("</li>\n"); 136 } 137 return element.toString(); 138 } 139 140 public static String windowType(String type) { 141 if (log4j.isDebugEnabled()) log4j.debug("WindowTreeUtility.windowType() - type: " + type); 142 if (type==null || type.equals("")) return ""; 143 else if (type.equals("W")) return "Ventanas"; 144 else if (type.equals("X")) return "Formularios"; 145 else if (type.equals("P")) return "Procesos"; 146 else if (type.equals("T")) return "Tareas"; 147 else if (type.equals("R")) return "Informes"; 148 else if (type.equals("F")) return "FlujoTrabajo"; 149 else if (type.equals("B")) return "BancoTrabajo"; 150 else return WindowTreeUtilityClient.windowType(type); 151 } 152 153 public static String windowTypeNico(String tipo) { 154 if (log4j.isDebugEnabled()) log4j.debug("WindowTreeUtility.windowTypeNico() - type: " + tipo); 155 if (tipo==null) return ""; 156 else if (tipo.equals("W")) return "window"; 157 else if (tipo.equals("X")) return "form"; 158 else if (tipo.equals("P")) return "process"; 159 else if (tipo.equals("T")) return "task"; 160 else if (tipo.equals("R")) return "report"; 161 else if (tipo.equals("F")) return "wf"; 162 else if (tipo.equals("B")) return "wb"; 163 else return WindowTreeUtilityClient.windowTypeNico(tipo); 164 } 165 166 public static void setNode(ConnectionProvider conn, VariablesSecureApp vars, String TreeType, String TreeID, String strParentID, String strLink, String strSeqNo) throws ServletException { 167 if (log4j.isDebugEnabled()) log4j.debug("WindowTreeUtility.setNode() - TreeID: " + TreeID); 168 169 if(TreeType.equals("PR")) WindowTreeData.updatePR(conn, vars.getUser(), strParentID, strSeqNo, TreeID, strLink); 170 else if (TreeType.equals("BP")) WindowTreeData.updateBP(conn, vars.getUser(), strParentID, strSeqNo, TreeID, strLink); 171 else WindowTreeData.update(conn, vars.getUser(), strParentID, strSeqNo, TreeID, strLink); 172 } 173 174 } 175 | Popular Tags |