1 19 package org.openbravo.erpCommon.utility; 20 21 import org.openbravo.database.ConnectionProvider; 22 import org.openbravo.base.secureApp.VariablesSecureApp; 23 import org.openbravo.utils.FormatUtilities; 24 import java.util.*; 25 import org.apache.log4j.Logger ; 26 27 28 public class KeyMap { 29 static Logger log4j = Logger.getLogger(KeyMap.class); 30 private VariablesSecureApp vars; 31 private ConnectionProvider conn; 32 private String TabID = ""; 33 private String WindowID = ""; 34 private String action = ""; 35 private Properties myData = new Properties(); 36 private Vector<Properties> structure = new Vector<Properties>(); 37 38 public KeyMap(ConnectionProvider _conn, VariablesSecureApp _vars, String _tabId, String _windowId) throws Exception { 39 if (_conn==null || _vars==null || _tabId==null || _tabId.equals("") || _windowId==null || _windowId.equals("")) throw new Exception ("Missing parameters"); 40 this.conn = _conn; 41 this.vars = _vars; 42 this.TabID = _tabId; 43 this.WindowID = _windowId; 44 generateStructure(); 45 } 46 47 public KeyMap(ConnectionProvider _conn, VariablesSecureApp _vars, String _action) throws Exception { 48 if (_conn==null || _vars==null || _action==null || _action.equals("")) throw new Exception ("Missing parameters"); 49 this.conn = _conn; 50 this.vars = _vars; 51 this.action = _action; 52 } 54 55 private void setData(String name, String value) { 56 if (name==null || name.equals("")) return; 57 if (this.myData==null) this.myData = new Properties(); 58 this.myData.setProperty(name, value); 59 } 60 61 private String getData(String name) { 62 if (name==null || name.equals("") || this.myData==null) return ""; 63 String aux = this.myData.getProperty(name); 64 if (aux == null) return ""; 65 else return aux; 66 } 67 68 public void addStructure(Properties _prop) { 69 if (_prop==null) return; 70 if (this.structure == null) this.structure = new Vector<Properties>(); 71 this.structure.addElement(_prop); 72 } 73 74 public Vector<Properties> getStructure() { 75 return this.structure; 76 } 77 78 public String getSortTabKeyMaps() { 79 StringBuffer script = new StringBuffer (); 80 script.append("\nvar arrTeclas = new Array(\n"); 81 script.append("new Teclas(\"M\", \"mostrarMenu('buttonMenu');\", null, \"ctrlKey\")\n"); 82 script.append(");\n"); 83 script.append("activarControlTeclas();"); 84 return script.toString(); 85 } 86 87 public String getRelationKeyMaps() { 88 StringBuffer script = new StringBuffer (); 89 script.append("\nvar arrTeclas = new Array(\n"); 90 script.append("new Teclas(\"M\", \"mostrarMenu('buttonMenu');\", null, \"ctrlKey\"),\n"); 91 script.append("new Teclas(\"N\", \"submitCommandForm('NEW', false, null, '").append(getData("TabNameUrl")).append("_Edition.html', '_self');\", null, \"ctrlKey\"),\n"); 92 script.append("new Teclas(\"E\", \"submitCommandForm('EDIT', true, null, '").append(getData("TabNameUrl")).append("_Edition.html', '_self');\", null, \"ctrlKey\"),\n"); 93 script.append("new Teclas(\"B\", \"abrirBusqueda('../businessUtility/Buscador.html', 'BUSCADOR', document.frmMain.inpTabId.value, '").append(getData("WindowNameUrl")).append("/").append(getData("TabNameUrl")).append("_Edition.html', document.frmMain.inpwindowId.value, true);\", null, \"ctrlKey\")\n"); 94 script.append(");\n"); 95 script.append("activarControlTeclas();"); 96 return script.toString(); 97 } 98 99 public String getEditionKeyMaps(boolean isNew) { 100 StringBuffer script = new StringBuffer (); 101 script.append("\nvar arrTeclas = new Array(\n"); 102 script.append("new Teclas(\"M\", \"mostrarMenu('buttonMenu');\", null, \"ctrlKey\")\n"); 103 script.append(",new Teclas(\"N\", \"submitCommandForm('NEW', false, null, '").append(getData("TabNameUrl")).append("_Edition.html', '_self', null, true, null, true);\", null, \"ctrlKey\")\n"); 104 script.append(",new Teclas(\"L\", \"submitCommandForm('RELATION', true, null, '").append(getData("TabNameUrl")).append("_Relation.html', '_self', null, true, null, true);\", null, \"ctrlKey\")\n"); 105 script.append(",new Teclas(\"B\", \"abrirBusqueda('../businessUtility/Buscador.html', 'BUSCADOR', document.frmMain.inpTabId.value, '").append(getData("WindowNameUrl")).append("/").append(getData("TabNameUrl")).append("_Edition.html', document.frmMain.inpwindowId.value, true);\", null, \"ctrlKey\")\n"); 106 if (!getData("IsTabReadOnly").equals("Y")) { 107 if (!isNew) { 108 script.append(",new Teclas(\"D\", \"submitCommandForm('DELETE', true, null, '").append(getData("TabNameUrl")).append("_Relation.html', '_self');\", null, \"ctrlKey\")\n"); 109 script.append(",new Teclas(\"S\", \"submitCommandForm('SAVE_EDIT_EDIT', true, null, '").append(getData("TabNameUrl")).append("_Relation.html', '_self', true, null, null, true);\", null, \"ctrlKey\")\n"); 110 script.append(",new Teclas(\"G\", \"submitCommandForm('SAVE_EDIT_RELATION', true, null, '").append(getData("TabNameUrl")).append("_Relation.html', '_self', true, null, null, true);\", null, \"ctrlKey\")\n"); 111 script.append(",new Teclas(\"H\", \"submitCommandForm('SAVE_EDIT_NEW', true, null, '").append(getData("TabNameUrl")).append("_Relation.html', '_self', true, null, null, true);\", null, \"ctrlKey\")\n"); 112 script.append(",new Teclas(\"A\", \"submitCommandForm('SAVE_EDIT_NEXT', true, null, '").append(getData("TabNameUrl")).append("_Relation.html', '_self', true, null, null, true);\", null, \"ctrlKey\")\n"); 113 } else { 114 script.append(",new Teclas(\"S\", \"submitCommandForm('SAVE_NEW_EDIT', true, null, '").append(getData("TabNameUrl")).append("_Relation.html', '_self', true, null, null, true);\", null, \"ctrlKey\")\n"); 115 script.append(",new Teclas(\"G\", \"submitCommandForm('SAVE_NEW_RELATION', true, null, '").append(getData("TabNameUrl")).append("_Relation.html', '_self', true, null, null, true);\", null, \"ctrlKey\")\n"); 116 script.append(",new Teclas(\"H\", \"submitCommandForm('SAVE_NEW_NEW', true, null, '").append(getData("TabNameUrl")).append("_Relation.html', '_self', true, null, null, true);\", null, \"ctrlKey\")\n"); 117 } 118 } 119 script.append(",new Teclas(\"REPAGE\", \"submitCommandForm('FIRST', false, null, '").append(getData("TabNameUrl")).append("_Edition.html', '_self', null, true);\", null, \"ctrlKey\")\n"); 120 script.append(",new Teclas(\"AVPAGE\", \"submitCommandForm('LAST', false, null, '").append(getData("TabNameUrl")).append("_Edition.html', '_self', null, true);\", null, \"ctrlKey\")\n"); 121 script.append(",new Teclas(\"RIGHTARROW\", \"submitCommandForm('NEXT', false, null, '").append(getData("TabNameUrl")).append("_Edition.html', '_self', null, true);\", null, \"ctrlKey\")\n"); 122 script.append(",new Teclas(\"LEFTARROW\", \"submitCommandForm('PREVIOUS', false, null, '").append(getData("TabNameUrl")).append("_Edition.html', '_self', null, true);\", null, \"ctrlKey\")\n"); 123 script.append(");\n"); 124 script.append("activarControlTeclas();"); 125 126 return script.toString(); 127 } 128 129 public String getActionButtonKeyMaps() { 130 StringBuffer script = new StringBuffer (); 131 script.append("\nvar arrTeclas = new Array(\n"); 132 script.append("new Teclas(\"\", \"\", null, null)\n"); 133 script.append(");\n"); 134 script.append("activarControlTeclas();"); 135 136 return script.toString(); 137 } 138 139 public String getFormKeyMaps() { 140 StringBuffer script = new StringBuffer (); 141 script.append("\nvar arrTeclas = new Array(\n"); 142 script.append("new Teclas(\"M\", \"mostrarMenu('buttonMenu');\", null, \"ctrlKey\")\n"); 143 script.append(");\n"); 144 script.append("activarControlTeclas();"); 145 146 return script.toString(); 147 } 148 149 public String getReportKeyMaps() { 150 StringBuffer script = new StringBuffer (); 151 script.append("\nvar arrTeclas = new Array(\n"); 152 script.append("new Teclas(\"M\", \"mostrarMenu('buttonMenu');\", null, \"ctrlKey\")\n"); 153 script.append(");\n"); 154 script.append("activarControlTeclas();"); 155 156 return script.toString(); 157 } 158 159 private void generateStructure() throws Exception { 160 TableSQLQueryData[] data = TableSQLQueryData.selectStructure(this.conn, this.TabID, this.vars.getLanguage()); 161 if (data==null || data.length==0) throw new Exception ("Couldn't get structure for tab " + this.TabID); 162 String primaryKey = ""; 163 String secondaryKey = ""; 164 setData("TabName", data[0].tabName); 165 setData("TabNameUrl", FormatUtilities.replace(data[0].tabName)); 166 setData("WindowName", data[0].windowName); 167 setData("WindowNameUrl", FormatUtilities.replace(data[0].windowName)); 168 setData("IsTabReadOnly", data[0].istabreadonly); 169 for (int i=0;i<data.length;i++) { 170 Properties prop = new Properties(); 171 prop.setProperty("ColumnName", data[i].columnname); 172 prop.setProperty("AD_Reference_ID", data[i].adReferenceId); 173 prop.setProperty("AD_Reference_Value_ID", data[i].adReferenceValueId); 174 prop.setProperty("AD_Val_Rule_ID", data[i].adValRuleId); 175 prop.setProperty("FieldLength", data[i].fieldlength); 176 prop.setProperty("DefaultValue", data[i].defaultvalue); 177 prop.setProperty("IsKey", data[i].iskey); 178 prop.setProperty("IsParent", data[i].isparent); 179 prop.setProperty("IsMandatory", data[i].ismandatory); 180 prop.setProperty("IsUpdateable", data[i].isupdateable); 181 prop.setProperty("ReadOnlyLogic", data[i].readonlylogic); 182 prop.setProperty("IsIdentifier", data[i].isidentifier); 183 prop.setProperty("SeqNo", data[i].seqno); 184 prop.setProperty("IsTranslated", data[i].istranslated); 185 prop.setProperty("IsEncrypted", data[i].isencrypted); 186 prop.setProperty("VFormat", data[i].vformat); 187 prop.setProperty("ValueMin", data[i].valuemin); 188 prop.setProperty("ValueMax", data[i].valuemax); 189 prop.setProperty("IsSelectionColumn", data[i].isselectioncolumn); 190 prop.setProperty("AD_Process_ID", data[i].adProcessId); 191 prop.setProperty("IsSessionAttr", data[i].issessionattr); 192 prop.setProperty("IsSecondaryKey", data[i].issecondarykey); 193 prop.setProperty("IsDesencryptable", data[i].isdesencryptable); 194 prop.setProperty("AD_CallOut_ID", data[i].adCalloutId); 195 prop.setProperty("Name", data[i].name); 196 prop.setProperty("AD_FieldGroup_ID", data[i].adFieldgroupId); 197 prop.setProperty("IsDisplayed", data[i].isdisplayed); 198 prop.setProperty("DisplayLogic", data[i].displaylogic); 199 prop.setProperty("DisplayLength", data[i].displaylength); 200 prop.setProperty("IsReadOnly", data[i].isreadonly); 201 prop.setProperty("SortNo", data[i].sortno); 202 prop.setProperty("IsSameLine", data[i].issameline); 203 prop.setProperty("IsHeading", data[i].isheading); 204 prop.setProperty("IsFieldOnly", data[i].isfieldonly); 205 prop.setProperty("ShowInRelation", data[i].showinrelation); 206 addStructure(prop); 207 if (primaryKey.equals("") && data[i].iskey.equals("Y")) { 208 primaryKey = data[i].columnname; 209 } else if (secondaryKey.equals("") && data[i].issecondarykey.equals("Y")) { 210 secondaryKey = data[i].columnname; 211 } 212 } 213 if (!primaryKey.equals("")) setData("KeyColumn", primaryKey); 214 else if (!secondaryKey.equals("")) setData("KeyColumn", secondaryKey); 215 else throw new Exception ("No column key defined for this tab"); 216 } 217 } 218 | Popular Tags |