details: /erp/devel/pi/rev/66a2b1f2a809 changeset: 8433:66a2b1f2a809 user: Valery Lezhebokov <valery.lezhebokov <at> gmail.com> date: Sun Aug 22 19:28:18 2010 +0200 summary: Fixes issue 13292: Update details for an MP points to current installed release notes
details: /erp/devel/pi/rev/7b519576ec42 changeset: 8434:7b519576ec42 user: Valery Lezhebokov <valery.lezhebokov <at> gmail.com> date: Tue Aug 31 14:27:33 2010 +0200 summary: merging with PI details: /erp/devel/pi/rev/99e2f90447a6 changeset: 8435:99e2f90447a6 user: Valery Lezhebokov <valery.lezhebokov <at> gmail.com> date: Wed Sep 01 16:59:24 2010 +0200 summary: Fixes issue 13292: Update details for an MP points to current installed release notes details: /erp/devel/pi/rev/0667d8d85840 changeset: 8436:0667d8d85840 user: Valery Lezhebokov <valery.lezhebokov <at> gmail.com> date: Thu Sep 02 09:05:30 2010 +0200 summary: Fixes issue 13826: On email document popup, "Add Attachment" button label doesn't fit the button details: /erp/devel/pi/rev/4bad3f86effc changeset: 8437:4bad3f86effc user: Valery Lezhebokov <valery.lezhebokov <at> gmail.com> date: Wed Sep 08 17:25:08 2010 +0200 summary: Fixes issue 14346: On activating an instance with a wrong key, the message is "InvalidPublicKey" details: /erp/devel/pi/rev/2eaf48823a32 changeset: 8438:2eaf48823a32 user: Asier Lostalé <asier.lostale <at> openbravo.com> date: Thu Sep 23 12:24:35 2010 +0200 summary: related to issue 14346: Reverted formatting changes of 4bad3f86effc details: /erp/devel/pi/rev/0ec9db2b11aa changeset: 8439:0ec9db2b11aa user: Asier Lostalé <asier.lostale <at> openbravo.com> date: Thu Sep 23 12:25:41 2010 +0200 summary: merge diffstat: .hgsigs | 1 + .hgtags | 1 + build.xml | 1 + config/licenseRestrictions | 1 - src-core/src/org/openbravo/xmlEngine/DataTemplate.java | 6 +- src-core/src/org/openbravo/xmlEngine/DataValue.java | 24 +- src-core/src/org/openbravo/xmlEngine/SectionValue.java | 8 +- src-core/src/org/openbravo/xmlEngine/XmlDocument.java | 91 +- src-db/database/lib/dbsourcemanager.jar | 0 src-db/database/model/excludeFilter.xml | 71 + src-db/database/model/functions/C_BANKSTATEMENT_POST.xml | 9 +- src-db/database/model/functions/C_ORDER_PO_CREATE.xml | 8 +- src-db/database/model/functions/C_PROJECT_GENERATE.xml | 9 +- src-db/database/model/functions/MA_COPY_VERSION.xml | 2 +- src-db/database/model/functions/MRP_PROCESSPLAN.xml | 8 +- src-db/database/model/functions/MRP_PURCHASEORDER.xml | 8 +- src-db/database/model/functions/MRP_RUN_EXPLODE.xml | 2 +- src-db/database/model/functions/MRP_RUN_INITIALIZE.xml | 3 + src-db/database/model/functions/M_INOUT_CREATEINVOICE.xml | 12 +- src-db/database/model/functions/M_REQUISITION_CREATEPO.xml | 13 +- src-db/database/model/tables/AD_TREENODE.xml | 2 +- src-db/database/model/tables/C_ACCTSCHEMA_TABLE.xml | 4 + src-db/database/model/tables/FIN_PAYMENT.xml | 8 + src-db/database/model/triggers/AD_ORG_TRG.xml | 6 + src-db/database/model/triggers/AD_TAB_TRG2.xml | 9 +- src-db/database/model/triggers/C_ORDER_TRG2.xml | 9 + src-db/database/model/triggers/M_INOUTLINE_TRG.xml | 15 +- src-db/database/sourcedata/AD_AUXILIARINPUT.xml | 11 + src-db/database/sourcedata/AD_COLUMN.xml | 153 +- src-db/database/sourcedata/AD_ELEMENT.xml | 109 +- src-db/database/sourcedata/AD_FIELD.xml | 377 ++- src-db/database/sourcedata/AD_MESSAGE.xml | 71 +- src-db/database/sourcedata/AD_MODEL_OBJECT.xml | 648 ++++++ src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml | 1060 +++++++++- src-db/database/sourcedata/AD_MODULE.xml | 4 +- src-db/database/sourcedata/AD_REF_LIST.xml | 37 +- src-db/database/sourcedata/AD_TABLE.xml | 8 +- src-db/database/sourcedata/AD_TEXTINTERFACES.xml | 33 +- src-db/src/com/openbravo/db/OpenbravoExcludeFilter.java | 4 +- src-test/org/openbravo/test/dal/DoOrgClientAccessCheckTest.java | 99 + src-test/org/openbravo/test/dal/IssuesTest.java | 57 + src-test/org/openbravo/test/security/AllDataAllowedOrganizationsTest.java | 99 + src-wad/src/org/openbravo/wad/Wad_data.xsql | 21 +- src/build.xml | 3 +- src/org/openbravo/base/model/NamingUtil.java | 8 +- src/org/openbravo/base/secureApp/HttpSecureAppServlet.java | 16 +- src/org/openbravo/dal/core/DalRequestFilter.java | 2 + src/org/openbravo/dal/core/OBContext.java | 69 +- src/org/openbravo/dal/core/OBInterceptor.java | 34 +- src/org/openbravo/dal/security/SecurityChecker.java | 3 +- src/org/openbravo/dal/xml/XMLEntityConverter.java | 1 + src/org/openbravo/erpCommon/ad_actionButton/CopyFromPOOrder_data.xsql | 2 +- src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Invoice.html | 4 +- src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Invoice_data.xsql | 6 +- src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Shipment_data.xsql | 5 +- src/org/openbravo/erpCommon/ad_actionButton/ExpenseSOrder.java | 63 +- src/org/openbravo/erpCommon/ad_actionButton/ExpenseSOrder_data.xsql | 101 +- src/org/openbravo/erpCommon/ad_actionButton/Posted.java | 4 +- src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner.java | 6 +- src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner_data.xsql | 9 + src/org/openbravo/erpCommon/ad_callouts/SE_PaymentMethod.java | 18 +- src/org/openbravo/erpCommon/ad_callouts/SE_PaymentMethod_FinAccount.java | 8 +- src/org/openbravo/erpCommon/ad_callouts/SL_Inventory_Locator.java | 11 +- src/org/openbravo/erpCommon/ad_callouts/SL_Inventory_Locator_data.xsql | 4 +- src/org/openbravo/erpCommon/ad_callouts/SL_RequisitionLine_Amt.java | 63 +- src/org/openbravo/erpCommon/ad_forms/AcctSchema.java | 12 +- src/org/openbravo/erpCommon/ad_forms/AcctServer.java | 75 +- src/org/openbravo/erpCommon/ad_forms/AcctServer_data.xsql | 14 +- src/org/openbravo/erpCommon/ad_forms/DocBank.java | 18 +- src/org/openbravo/erpCommon/ad_forms/DocFINFinAccTransaction.java | 240 +- src/org/openbravo/erpCommon/ad_forms/DocFINPayment.java | 66 +- src/org/openbravo/erpCommon/ad_forms/DocFINReconciliation.java | 216 +- src/org/openbravo/erpCommon/ad_forms/Heartbeat.java | 9 +- src/org/openbravo/erpCommon/ad_forms/ModuleManagement.java | 57 +- src/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallP1.html | 2 +- src/org/openbravo/erpCommon/ad_process/AcctServerProcess.java | 8 +- src/org/openbravo/erpCommon/ad_process/AcctServerProcess_data.xsql | 35 +- src/org/openbravo/erpCommon/ad_process/COrder_data.xsql | 21 +- src/org/openbravo/erpCommon/ad_process/ImportOrder.java | 9 + src/org/openbravo/erpCommon/ad_process/TestHeartbeat.java | 13 +- src/org/openbravo/erpCommon/ad_reports/ReportAcctRedirectUtility.java | 17 +- src/org/openbravo/erpCommon/ad_reports/ReportAgingBalance_data.xsql | 30 +- src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal.java | 6 +- src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal_data.xsql | 10 +- src/org/openbravo/erpCommon/ad_reports/ReportNotPosted_data.xsql | 25 +- src/org/openbravo/erpCommon/ad_reports/ReportProductMovement.html | 4 +- src/org/openbravo/erpCommon/businessUtility/COAUtility.java | 4 +- src/org/openbravo/erpCommon/info/Account.html | 2 + src/org/openbravo/erpCommon/info/ProductComplete.java | 2 +- src/org/openbravo/erpCommon/modules/ImportModule.java | 5 +- src/org/openbravo/erpCommon/modules/ImportModule_data.xsql | 4 +- src/org/openbravo/erpCommon/modules/VersionUtility.java | 6 +- src/org/openbravo/erpCommon/obps/ActivationKey.java | 11 +- src/org/openbravo/erpCommon/obps/licenseRestrictions | 1 + src/org/openbravo/erpCommon/security/Login_F1.html | 14 +- src/org/openbravo/erpCommon/utility/ComboTableData.java | 341 +-- src/org/openbravo/erpCommon/utility/ComboTableQuery_data.xsql | 2 +- src/org/openbravo/erpCommon/utility/UsedByLink.java | 2 +- src/org/openbravo/erpCommon/utility/reporting/printing/EmailOptions.html | 12 +- src/org/openbravo/erpReports/C_OrderJR.jrxml | 10 +- src/org/openbravo/erpReports/C_OrderLinesJR.jrxml | 14 +- src/org/openbravo/erpReports/RptC_Invoice.jrxml | 7 +- src/org/openbravo/erpReports/RptC_OrderPO.jrxml | 5 +- src/org/openbravo/erpReports/RptM_InOut.jrxml | 7 +- src/org/openbravo/reference/ui/ComboTableQuery_data.xsql | 75 - src/org/openbravo/reference/ui/UIList.java | 58 + src/org/openbravo/reference/ui/UIReference.java | 16 +- src/org/openbravo/reference/ui/UIReferenceUtility.java | 73 +- src/org/openbravo/reference/ui/UITable.java | 62 +- src/org/openbravo/reference/ui/UITableDir.java | 46 + src/org/openbravo/service/db/ImportReferenceDataTask.java | 71 + src/org/openbravo/service/system/SystemValidationTask.java | 5 +- web/js/ajax.js | 14 +- web/js/appStatus.js | 2 +- web/js/searchs.js | 16 +- web/js/utils.js | 63 +- 116 files changed, 4271 insertions(+), 1128 deletions(-) diffs (truncated from 10254 to 300 lines): diff -r d08feaca26c7 -r 0ec9db2b11aa .hgsigs --- a/.hgsigs Sat Aug 21 18:35:56 2010 +0530 +++ b/.hgsigs Thu Sep 23 12:25:41 2010 +0200 @@ -21,3 +21,4 @@ 9b4bbe8362f54f7212653fddf5bd053183a7ffda 0 iEYEABECAAYFAkv8vDgACgkQCX/oGf+2qkPC3ACfURoh78/OY95XuFkAKNfaLQQzuCsAoNoNLdSqMVYuAJMAI2mimGZ5BXaw 7fe932c5c015da84a972d6945dd0451366bbf325 0 iEYEABECAAYFAkwodmcACgkQCX/oGf+2qkM4jQCgq2n4X0Tzi8EcGqNLhtzjOJ/1YcgAn3Fh9aZRpXmM2zYmMwuecn4UR5tt 618363224a381737439e0bd4461e2d36c4fd986e 0 iEYEABECAAYFAkxFkHoACgkQCX/oGf+2qkP7DQCeK9qCv3jETpO5iM89PV2bJYmpErMAoO/H2QyeKKZjublcgFmH7g1tEomB +6563372bc2fbf0bc2e15f70c2a8da81fad8cbc2e 0 iEYEABECAAYFAkyDw4sACgkQCX/oGf+2qkMZ1ACePoFeipRkNAN6bW7yIUeiRYgEMBMAni+gFwpEp8kfGKryvixvdudRgGoQ diff -r d08feaca26c7 -r 0ec9db2b11aa .hgtags --- a/.hgtags Sat Aug 21 18:35:56 2010 +0530 +++ b/.hgtags Thu Sep 23 12:25:41 2010 +0200 @@ -31,3 +31,4 @@ f7b9678ebb10f1fb0963b7e3cc4724aa6aeca565 2.50MP18 34eed7b386965b19e191fbfe03195588cdc75254 2.50MP19 99ff33f6588973f7e738b6afd47ad44f3ac08d20 2.50MP20 +a3c1cffa8af7b60cab6949251fce1faaa13ca5bb 2.50MP21 diff -r d08feaca26c7 -r 0ec9db2b11aa build.xml --- a/build.xml Sat Aug 21 18:35:56 2010 +0530 +++ b/build.xml Thu Sep 23 12:25:41 2010 +0200 @@ -101,6 +101,7 @@ <property name="friendlyWarnings" value="false"/> <property name="checkTranslationConsistency" value="true"/> <property name="buildValidation" value="true"/> + <property name="disableCheckReferencedOrganizations" value="false"/> <available file=".hg" property="is.hg" /> diff -r d08feaca26c7 -r 0ec9db2b11aa config/licenseRestrictions --- a/config/licenseRestrictions Sat Aug 21 18:35:56 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -IeqpfXkoobemyDLAJHNBi3JrTdjgnU0BnGiX9k78CBHK1Eqdek/Lsi/HpeBev9c8sNQPOf9nwq8jWE4j7X4e6TUzdPX5xukYcTshjeB3wKh9Y6LE5rgEw+OqUm8bcaKH6Nm5Efg2yQnwsHqqTyjFQPXa9IdijkazSRrAEVg/X0WPMPEYYQRikHlz1CDJPiqEeQIhMejebxNmHa/VTLN5Hmhc+lyBfRVseGdJeJaf2Nh1YMwunKFAGMNKwPFFhqLyAXoGsNFs2BK5yPTgOEWaFRS+5Dei4fewUm7GI5k+a4xZ1qDrjYl+C/p6vod1oYf+KFsfH1P07v2k7J4VQ71XBANYXXDM81bgEWZJzz5F9mhUtabroQdejQdcTqGQPpX2ZOhmEfgelzN7WINpIF8rQHiMeVty8m3TG+zSTkc/Tj53UJaV8mjZ+cWSUAI7PFwIDbxeUcktfwV85yzpxAxu6Fln6h6fpxlmzy3DYhjBNTpMKYmjJX0ilomTCAivh31pfCMDOkoLwMmDQoov/bCPJfLej9RlhmC0Y1EswNL/IAbuINX3DNk2+G8i7yXUOE6FsUtDJ6WdVhSKw0BvCH/28oJ38rfx3aCcuLHjAJI23L5RjlQlqnVsGOZsDeJ5UWQGeBotYJWdfz1mSRAiPB4RE6dv9Ap0X90Y0MDYrJP2jW2FmIrY1R5UTh2XcvAomsToZdwLrolZIWe26RIn1yYRpGEf2wqg5sGQaOxQ39BB11Xhj2bzz96mnnqSP6GZiv52/cibVcp8VtErmClvF4OByPuKsswTUD8Fs9FYMNv+myfJ928PxuHmpjT99igMw7NNtbSD+lPckVSM9kKvUIuWxUgnSaly9FG2oP1DM2alkI9Vdc77EHW8Vjz5eID0EjM04rDKNvsbJygMCPF3XWaA2rpnUgcRB5Or0lCDe/z/zOoWK3p9N19TguH8y74cl0xd+jpkdfqfVEyUxqtTIG4/+0DZ8+VzPmOPArrFM51piby1Ym2L/J3Uuugiw1r8+RpRVdiTMLHKbe15KpuECf8W9KMpaYc7hzXo94aJXKvWuui1Y1vcrJhAXdN0ib8Wjz8473ecV/STAt5njB4dJiSjBfek+JYeXZz/Ft/fkPlvzW1DVbHx9RCmu068DWefuNvWMqJLr69pKCrea8PZXBJpit9tx/JSj454C1FOwigR+qsi24FOaaQ5Zy6m3VReW0cZ+9sQXLDwkjOfjvzJPFQ9A7kDTYOYzorjHPbCwy0JyXAxkHQ+wlV5+52WeM9uiTxAWtoyqcr+OhBb1btFqiaDhetH6LqxcGXm+0iLckp+cu4FY2t4eYY81PRKBUUCrdh8N0+N68P8XMht4rWIzeRzLVlY1PnFz0BDZa6IecwK2egOPmlH+xG8uhOYgIbbUE7nhcz8b1MDllGTOpTSG1e9UDJj8wBTWzeVIrVpJRztWjldY45skuAohNh7PxxDubeUv7701GVBqlg1mO2rb19evzDAMLUHF4i5exoWEy9uQqrF/qMT+W4I0zwJbgFHTs1HIpgQelm/gSysdnbnbQs14YceXv+BYMYurafh7N2lkUMnmkVkHpPk/08R0hCeOtKjkbSUCuOy9XPg153iJmxE3NCBeZl/gY2mmsMNtaswMEN05HKSkRqlu/CKedv/HrYYhXtdbaqkL8Ay0mcRtXimQCvr3aNQ9fcQLuLpmqJh5Uo= \ No newline at end of file diff -r d08feaca26c7 -r 0ec9db2b11aa src-core/src/org/openbravo/xmlEngine/DataTemplate.java --- a/src-core/src/org/openbravo/xmlEngine/DataTemplate.java Sat Aug 21 18:35:56 2010 +0530 +++ b/src-core/src/org/openbravo/xmlEngine/DataTemplate.java Thu Sep 23 12:25:41 2010 +0200 @@ -1,6 +1,6 @@ /* ************************************************************************************ - * Copyright (C) 2001-2006 Openbravo S.L.U. + * Copyright (C) 2001-2010 Openbravo S.L.U. * Licensed under the Apache Software License version 2.0 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software distributed @@ -23,7 +23,7 @@ class DataTemplate implements XmlComponentTemplate { String strName; // the name should be initialized - Vector<Object> vecSectionTemplate; + Vector<SectionTemplate> vecSectionTemplate; XmlVectorTemplate vecDetailTemplate; // vector of XmlComponents Vector<Object> vecFieldTemplate; // vector of FieldComponent's Vector<Object> vecParameterTemplate; // vector of ParameterTemplates for the @@ -46,7 +46,7 @@ public DataTemplate() { intTotalLevels = -1; log4jDataTemplate.debug("Initial value: " + intTotalLevels); - vecSectionTemplate = new Vector<Object>(); + vecSectionTemplate = new Vector<SectionTemplate>(); vecDetailTemplate = new XmlVectorTemplate(); vecFieldTemplate = new Vector<Object>(); vecParameterTemplate = new Vector<Object>(); diff -r d08feaca26c7 -r 0ec9db2b11aa src-core/src/org/openbravo/xmlEngine/DataValue.java --- a/src-core/src/org/openbravo/xmlEngine/DataValue.java Sat Aug 21 18:35:56 2010 +0530 +++ b/src-core/src/org/openbravo/xmlEngine/DataValue.java Thu Sep 23 12:25:41 2010 +0200 @@ -1,6 +1,6 @@ /* ************************************************************************************ - * Copyright (C) 2001-2006 Openbravo S.L.U. + * Copyright (C) 2001-2010 Openbravo S.L.U. * Licensed under the Apache Software License version 2.0 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software distributed @@ -36,7 +36,7 @@ PreparedStatement preparedStatement; ResultSet result; - Vector<Object> vecSectionValue; + Vector<SectionValue> vecSectionValue; XmlVectorValue vecDetailValue; // vector of XmlComponentValues Vector<Object> vecFieldValue; // vector of FieldValues Vector<Object> vecParameterValue; // vector of ParameterValues for the query @@ -94,9 +94,8 @@ // vector of Sections log4jDataValue.debug("vector of Sections"); - vecSectionValue = new Vector<Object>(); - for (Enumeration<Object> e1 = dataTemplate.vecSectionTemplate.elements(); e1.hasMoreElements();) { - SectionTemplate sectionTemplate = (SectionTemplate) e1.nextElement(); + vecSectionValue = new Vector<SectionValue>(); + for (SectionTemplate sectionTemplate : dataTemplate.vecSectionTemplate) { SectionValue sectionValue = sectionTemplate.createSectionValue(xmlDocument, this); vecSectionValue.addElement(sectionValue); if (sectionTemplate.name.equals(dataTemplate.firstSectionTemplate.name)) { @@ -356,8 +355,7 @@ private void init() { if (log4jDataValue.isDebugEnabled()) log4jDataValue.debug("DataValue: init"); - for (Enumeration<Object> e = vecSectionValue.elements(); e.hasMoreElements();) { - SectionValue section = (SectionValue) e.nextElement(); + for (SectionValue section : vecSectionValue) { log4jDataValue.debug("DataValue: init, section:" + section.sectionTemplate.name); section.init(); } @@ -372,8 +370,7 @@ } private void firstValues() { - for (Enumeration<Object> e = vecSectionValue.elements(); e.hasMoreElements();) { - SectionValue sectionValue = (SectionValue) e.nextElement(); + for (SectionValue sectionValue : vecSectionValue) { if (sectionValue.breakFieldValue != null) { sectionValue.breakFieldValue.savePrevious(); } @@ -387,12 +384,10 @@ } private void check() { - boolean checked = true; - for (Enumeration<Object> e = vecSectionValue.elements(); e.hasMoreElements() && checked;) { - SectionValue sectionValue = (SectionValue) e.nextElement(); + for (SectionValue sectionValue : vecSectionValue) { if (!sectionValue.check()) { - checked = false; sectionValue.close(); + return; } } } @@ -428,8 +423,7 @@ } public void acumulate() { - for (Enumeration<Object> e = vecSectionValue.elements(); e.hasMoreElements();) { - SectionValue sectionValue = (SectionValue) e.nextElement(); + for (SectionValue sectionValue : vecSectionValue) { sectionValue.acumulate(); } diff -r d08feaca26c7 -r 0ec9db2b11aa src-core/src/org/openbravo/xmlEngine/SectionValue.java --- a/src-core/src/org/openbravo/xmlEngine/SectionValue.java Sat Aug 21 18:35:56 2010 +0530 +++ b/src-core/src/org/openbravo/xmlEngine/SectionValue.java Thu Sep 23 12:25:41 2010 +0200 @@ -1,6 +1,6 @@ /* ************************************************************************************ - * Copyright (C) 2001-2006 Openbravo S.L.U. + * Copyright (C) 2001-2010 Openbravo S.L.U. * Licensed under the Apache Software License version 2.0 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software distributed @@ -63,7 +63,7 @@ functionInstance.init(); } if (sectionTemplate.intLevel != sectionTemplate.dataTemplate.intTotalLevels) { - SectionValue section = (SectionValue) dataValue.vecSectionValue + SectionValue section = dataValue.vecSectionValue .elementAt(sectionTemplate.intLevel + 1); section.strSection = new StringBuffer(); } else { @@ -75,7 +75,7 @@ log4jSectionValue.debug("(Close) Levels:" + sectionTemplate.dataTemplate.intTotalLevels + " actual level: " + sectionTemplate.intLevel); if (sectionTemplate.intLevel != sectionTemplate.dataTemplate.intTotalLevels) { - SectionValue section = (SectionValue) dataValue.vecSectionValue + SectionValue section = dataValue.vecSectionValue .elementAt(sectionTemplate.intLevel + 1); section.close(); } @@ -84,7 +84,7 @@ // add next section if (sectionTemplate.intLevel != sectionTemplate.dataTemplate.intTotalLevels) { - SectionValue section = (SectionValue) dataValue.vecSectionValue + SectionValue section = dataValue.vecSectionValue .elementAt(sectionTemplate.intLevel + 1); strSection.append(section.strSection); } else { diff -r d08feaca26c7 -r 0ec9db2b11aa src-core/src/org/openbravo/xmlEngine/XmlDocument.java --- a/src-core/src/org/openbravo/xmlEngine/XmlDocument.java Sat Aug 21 18:35:56 2010 +0530 +++ b/src-core/src/org/openbravo/xmlEngine/XmlDocument.java Thu Sep 23 12:25:41 2010 +0200 @@ -1,6 +1,6 @@ /* ************************************************************************************ - * Copyright (C) 2001-2009 Openbravo S.L.U. + * Copyright (C) 2001-2010 Openbravo S.L.U. * Licensed under the Apache Software License version 2.0 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software distributed @@ -13,8 +13,6 @@ import java.util.Enumeration; import java.util.Hashtable; -import java.util.Iterator; -import java.util.Vector; import org.apache.log4j.Logger; import org.openbravo.data.FieldProvider; @@ -305,58 +303,51 @@ * DataValue object that might contain sections to be translated */ private void translateDataValue(DataValue elementDataValue) { - if (elementDataValue.dataTemplate != null) { - DataTemplate dataTemplate = elementDataValue.dataTemplate; - if (dataTemplate.vecSectionTemplate != null) { - Vector<Object> vecSectionTemplate = dataTemplate.vecSectionTemplate; - for (Iterator<?> iterator = vecSectionTemplate.iterator(); iterator.hasNext();) { - SectionTemplate sectionTemplate = (SectionTemplate) iterator.next(); - if (sectionTemplate.vecHeadTemplate != null) { - XmlVectorTemplate template = sectionTemplate.vecHeadTemplate; - for (Iterator<?> iterator2 = template.iterator(); iterator2.hasNext();) { - Object componentTemplate = (Object) iterator2.next(); - if (CharacterComponent.class.isInstance(componentTemplate)) { - CharacterComponent charComponent = (CharacterComponent) componentTemplate; - if (charComponent.character != null && !charComponent.equals("")) { - String original = charComponent.character.trim(); - if (xmlVectorValue != null && xmlVectorValue.getTextMap() != null) { - String trl = xmlVectorValue.getTextMap().get(original); - if (trl != null && !trl.equals("")) - charComponent.character = trl; - } - } - componentTemplate = charComponent; - } - } - sectionTemplate.vecHeadTemplate = template; - } + if (xmlVectorValue == null || xmlVectorValue.getTextMap() == null) { + return; + } - if (sectionTemplate.vecFootTemplate != null) { - XmlVectorTemplate xmlFootTemplate = sectionTemplate.vecFootTemplate; - for (Iterator<?> iterator2 = xmlFootTemplate.iterator(); iterator2.hasNext();) { - Object componentTemplate = (Object) iterator2.next(); - if (CharacterComponent.class.isInstance(componentTemplate)) { - CharacterComponent charComponent = (CharacterComponent) componentTemplate; - if (charComponent.character != null && !charComponent.equals("")) { - String original = charComponent.character.trim(); - if (xmlVectorValue.getTextMap() != null) { - String trl = xmlVectorValue.getTextMap().get(original); - if (trl != null && !trl.equals("")) - charComponent.character = trl; - } - } - componentTemplate = charComponent; - } - } - sectionTemplate.vecFootTemplate = xmlFootTemplate; + if (elementDataValue.vecSectionValue == null) { + return; + } + + for (SectionValue sectionValue : elementDataValue.vecSectionValue) { + translateXmlVectorValue(sectionValue.vecHeadValue); + translateXmlVectorValue(sectionValue.vecFootValue); + } + } + + /** + * Utility method to translate all CharacterComponents contained in the passed translateXmlVectorValue. + */ + private void translateXmlVectorValue(XmlVectorValue vecXmlVectorValue) { + + if (vecXmlVectorValue == null) { + return; + } + + for (int i = 0; i < vecXmlVectorValue.size(); i++) { + Object componentTemplate = vecXmlVectorValue.get(i); + if (CharacterComponent.class.isInstance(componentTemplate)) { + CharacterComponent charComponent = (CharacterComponent) componentTemplate; + if (charComponent.character != null && !charComponent.character.equals("")) { + String original = charComponent.character.trim(); + String trl = xmlVectorValue.getTextMap().get(original); + if (trl != null && !trl.equals("")) { + /* + * Need to create a new instance here, instead of just modifying the attribute of the + * existing instance, as SectionTemplate and SectionValue do share the same + * CharacterComponent instances and do not copy them. Without the new instance here we + * would silently modify the templates' text also and effectively translating the + * (cached) template. + */ + charComponent = new CharacterComponent(trl); + vecXmlVectorValue.set(i, charComponent); } } - dataTemplate.vecSectionTemplate = vecSectionTemplate; } - elementDataValue.dataTemplate = dataTemplate; } - } public String printPrevious() { @@ -376,5 +367,5 @@ elementDataValue.connect(); } } - ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
