From 76adcb1f98b7da6691d271e017089d8f7ed47546 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Thu, 30 May 2024 12:25:49 +0200 Subject: [PATCH] Revert "IDEMPIERE-5923 Info Window should use key and display columns setting from lookup (#2108)" This reverts commit 6f484ee7013318d32c1278e618ecc22b2022958d. --- .../webui/factory/DefaultInfoFactory.java | 53 +++------ .../adempiere/webui/factory/IInfoFactory.java | 16 --- .../adempiere/webui/info/InfoAssetWindow.java | 21 ---- .../webui/info/InfoAssignmentWindow.java | 22 ---- .../webui/info/InfoBPartnerWindow.java | 21 ---- .../adempiere/webui/info/InfoInOutWindow.java | 22 ---- .../webui/info/InfoInvoiceWindow.java | 23 +--- .../adempiere/webui/info/InfoOrderWindow.java | 21 ---- .../webui/info/InfoPaymentWindow.java | 21 ---- .../webui/info/InfoProductWindow.java | 21 ---- .../org/adempiere/webui/info/InfoWindow.java | 106 +++++++++--------- 11 files changed, 65 insertions(+), 282 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java index cb61611e36..62e1ac5672 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java @@ -56,13 +56,6 @@ public class DefaultInfoFactory implements IInfoFactory { value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, null, null); } - @Override - public InfoPanel create(int WindowNo, String tableName, String keyColumn, String value, boolean multiSelection, - String whereClause, int AD_InfoWindow_ID, Lookup lookup) { - return create(WindowNo, tableName, keyColumn, - value, multiSelection, whereClause, AD_InfoWindow_ID, (lookup != null), null, null, lookup); - } - @Override public InfoPanel create(int WindowNo, String tableName, String keyColumn, String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field) { @@ -83,40 +76,20 @@ public class DefaultInfoFactory implements IInfoFactory { * @param predefinedContextVariables * @param field * @return InfoPanel - */ + */ public InfoPanel create(int WindowNo, String tableName, String keyColumn, String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, String predefinedContextVariables, GridField field) { - return create(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, predefinedContextVariables, field, - (field != null ? field.getLookup() : null)); - } - - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param value - * @param multiSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param predefinedContextVariables - * @param field - * @param lookupModel - * @return InfoPanel - */ - public InfoPanel create(int WindowNo, String tableName, String keyColumn, - String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, String predefinedContextVariables, GridField field, Lookup lookupModel) { InfoPanel info = null; setSOTrxBasedOnDocType(WindowNo); if (tableName.equals("C_BPartner")) { - info = new InfoBPartnerWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel); + info = new InfoBPartnerWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); if (!info.loadedOK()) { info = new InfoBPartnerPanel (value,WindowNo, !Env.getContext(Env.getCtx(), WindowNo, "IsSOTrx").equals("N"), multiSelection, whereClause, lookup); } } else if (tableName.equals("M_Product")) { - info = new InfoProductWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel); + info = new InfoProductWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); if (!info.loadedOK()) { info = new InfoProductPanel ( WindowNo, Env.getContextAsInt(Env.getCtx(), WindowNo, "M_Warehouse_ID"), @@ -124,31 +97,31 @@ public class DefaultInfoFactory implements IInfoFactory { multiSelection, value,whereClause, lookup); } } else if (tableName.equals("C_Invoice")) { - info = new InfoInvoiceWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel); + info = new InfoInvoiceWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); if (!info.loadedOK()) { info = new InfoInvoicePanel ( WindowNo, value, multiSelection, whereClause, lookup); } } else if (tableName.equals("A_Asset")) { - info = new InfoAssetWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel); + info = new InfoAssetWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); if (!info.loadedOK()) { info = new InfoAssetPanel (WindowNo, 0, value, multiSelection, whereClause, lookup); } } else if (tableName.equals("C_Order")) { - info = new InfoOrderWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel); + info = new InfoOrderWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); if (!info.loadedOK()) { info = new InfoOrderPanel ( WindowNo, value, multiSelection, whereClause, lookup); } } else if (tableName.equals("M_InOut")) { - info = new InfoInOutWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel); + info = new InfoInOutWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); if (!info.loadedOK()) { info = new InfoInOutPanel (WindowNo, value, multiSelection, whereClause, lookup); } } else if (tableName.equals("C_Payment")) { - info = new InfoPaymentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel); + info = new InfoPaymentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); if (!info.loadedOK()) { info = new InfoPaymentPanel (WindowNo, value, multiSelection, whereClause, lookup); } @@ -156,13 +129,13 @@ public class DefaultInfoFactory implements IInfoFactory { info = new InfoCashLinePanel (WindowNo, value, multiSelection, whereClause, lookup); } else if (tableName.equals("S_ResourceAssignment")) { - info = new InfoAssignmentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel); + info = new InfoAssignmentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); if (!info.loadedOK()) { info = new InfoAssignmentPanel (WindowNo, value, multiSelection, whereClause, lookup); } } else { - info = new InfoWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel); + info = new InfoWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); if (!info.loadedOK()) { info = new InfoGeneralPanel (value, WindowNo, tableName, keyColumn, @@ -191,7 +164,7 @@ public class DefaultInfoFactory implements IInfoFactory { if (col.equals("M_Product_ID")) { - InfoWindow infoWindow = new InfoProductWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field, null, lookup); + InfoWindow infoWindow = new InfoProductWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field); if (infoWindow.loadedOK()) return infoWindow; @@ -222,7 +195,7 @@ public class DefaultInfoFactory implements IInfoFactory { String tempIsSOTrx = ("Y".equals(originalIsSOTrx) ? "N" : "Y"); Env.setContext(Env.getCtx(), lookup.getWindowNo(), "IsSOTrx", tempIsSOTrx); } - InfoWindow infoWindow = new InfoBPartnerWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field, null, lookup); + InfoWindow infoWindow = new InfoBPartnerWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field); if (infoWindow.loadedOK()) return infoWindow; } finally { @@ -240,7 +213,7 @@ public class DefaultInfoFactory implements IInfoFactory { } else // General Info { - info = create(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, (String)null, field, lookup); + info = create(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field); } return info; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IInfoFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IInfoFactory.java index eaf4fbb124..c3b7433a68 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IInfoFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IInfoFactory.java @@ -39,22 +39,6 @@ public interface IInfoFactory { public InfoPanel create (int WindowNo, String tableName, String keyColumn, String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup); - - /** - * - * @param WindowNo - * @param tableName - * @param keyColumn - * @param value - * @param multiSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @return {@link InfoPanel} - */ - public InfoPanel create (int WindowNo, - String tableName, String keyColumn, String value, - boolean multiSelection, String whereClause, int AD_InfoWindow_ID, Lookup lookup); /** * diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssetWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssetWindow.java index f4f3591760..fb9554823c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssetWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssetWindow.java @@ -25,7 +25,6 @@ package org.adempiere.webui.info; import org.compiere.model.GridField; -import org.compiere.model.Lookup; import org.compiere.model.MAsset; import org.compiere.util.Env; @@ -92,26 +91,6 @@ public class InfoAssetWindow extends InfoWindow { whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); } - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param queryValue - * @param multipleSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param field - * @param predefinedContextVariables - * @param lookupModel - */ - public InfoAssetWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, - String predefinedContextVariables, Lookup lookupModel) { - super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, - predefinedContextVariables, lookupModel); - } - @Override protected void saveSelectionDetail() { int row = contentPanel.getSelectedRow(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssignmentWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssignmentWindow.java index 92288d542f..afc83d8890 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssignmentWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssignmentWindow.java @@ -25,7 +25,6 @@ package org.adempiere.webui.info; import org.compiere.model.GridField; -import org.compiere.model.Lookup; /** * Info window for S_ResourceAssignment @@ -90,25 +89,4 @@ public class InfoAssignmentWindow extends InfoWindow { super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); } - - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param queryValue - * @param multipleSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param field - * @param predefinedContextVariables - * @param lookupModel - */ - public InfoAssignmentWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, - String predefinedContextVariables, Lookup lookupModel) { - super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, - predefinedContextVariables, lookupModel); - } - } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoBPartnerWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoBPartnerWindow.java index 2d2c9d1d3d..52b3ffb4f0 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoBPartnerWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoBPartnerWindow.java @@ -28,7 +28,6 @@ import java.util.logging.Level; import org.adempiere.webui.panel.InvoiceHistory; import org.compiere.model.GridField; -import org.compiere.model.Lookup; import org.compiere.model.MBPartner; import org.compiere.util.Env; @@ -96,26 +95,6 @@ public class InfoBPartnerWindow extends InfoWindow { whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); } - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param queryValue - * @param multipleSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param field - * @param predefinedContextVariables - * @param lookupModel - */ - public InfoBPartnerWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, - String predefinedContextVariables, Lookup lookupModel) { - super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, - predefinedContextVariables, lookupModel); - } - /** * Has History * @return true diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInOutWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInOutWindow.java index 79d055ebc8..e301f49d75 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInOutWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInOutWindow.java @@ -25,7 +25,6 @@ package org.adempiere.webui.info; import org.compiere.model.GridField; -import org.compiere.model.Lookup; /** * Info window for M_InOut @@ -89,25 +88,4 @@ public class InfoInOutWindow extends InfoWindow { super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); } - - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param queryValue - * @param multipleSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param field - * @param predefinedContextVariables - * @param lookupModel - */ - public InfoInOutWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, - String predefinedContextVariables, Lookup lookupModel) { - super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, - predefinedContextVariables, lookupModel); - } - } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInvoiceWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInvoiceWindow.java index 2d5fc8b108..d15d43ec08 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInvoiceWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInvoiceWindow.java @@ -25,7 +25,6 @@ package org.adempiere.webui.info; import org.compiere.model.GridField; -import org.compiere.model.Lookup; import org.compiere.model.MInvoice; import org.compiere.util.Env; @@ -91,27 +90,7 @@ public class InfoInvoiceWindow extends InfoWindow { super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); } - - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param queryValue - * @param multipleSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param field - * @param predefinedContextVariables - * @param lookupModel - */ - public InfoInvoiceWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, - String predefinedContextVariables, Lookup lookupModel) { - super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, - predefinedContextVariables, lookupModel); - } - + @Override protected void saveSelectionDetail() { int row = contentPanel.getSelectedRow(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoOrderWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoOrderWindow.java index cd1ca8282e..4276ce61c6 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoOrderWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoOrderWindow.java @@ -25,7 +25,6 @@ package org.adempiere.webui.info; import org.compiere.model.GridField; -import org.compiere.model.Lookup; /** * Info window for C_Order @@ -90,24 +89,4 @@ public class InfoOrderWindow extends InfoWindow { whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); } - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param queryValue - * @param multipleSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param field - * @param predefinedContextVariables - * @param lookupModel - */ - public InfoOrderWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, - String predefinedContextVariables, Lookup lookupModel) { - super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, - predefinedContextVariables, lookupModel); - } - } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPaymentWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPaymentWindow.java index 70263e43eb..a5141d89e1 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPaymentWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPaymentWindow.java @@ -25,7 +25,6 @@ package org.adempiere.webui.info; import org.compiere.model.GridField; -import org.compiere.model.Lookup; /** * Info window for C_Payment @@ -90,24 +89,4 @@ public class InfoPaymentWindow extends InfoWindow { whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); } - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param queryValue - * @param multipleSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param field - * @param predefinedContextVariables - * @param lookupModel - */ - public InfoPaymentWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, - String predefinedContextVariables, Lookup lookupModel) { - super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, - predefinedContextVariables, lookupModel); - } - } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java index 19f4fae4df..7ef815a03d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java @@ -55,7 +55,6 @@ import org.adempiere.webui.util.ZKUpdateUtil; import org.compiere.minigrid.ColumnInfo; import org.compiere.minigrid.EmbedWinInfo; import org.compiere.model.GridField; -import org.compiere.model.Lookup; import org.compiere.model.MDocType; import org.compiere.model.MInfoWindow; import org.compiere.model.MProduct; @@ -183,26 +182,6 @@ public class InfoProductWindow extends InfoWindow { whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables); } - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param queryValue - * @param multipleSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param field - * @param predefinedContextVariables - * @param lookupModel - */ - public InfoProductWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, - String predefinedContextVariables, Lookup lookupModel) { - super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, - predefinedContextVariables, lookupModel); - } - @Override protected String getSQLWhere() { /** diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java index 79410e7273..c0a40f04ea 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java @@ -31,6 +31,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.function.Consumer; import java.util.Properties; import java.util.TreeMap; import java.util.logging.Level; @@ -224,10 +225,6 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL /** true to auto collapse parameter panel after execution of query */ private boolean autoCollapsedParameterPanel = false; - - protected Lookup lookupModel = null; - - private ArrayList lookupIdentifiers; /** * @param WindowNo @@ -288,25 +285,6 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL */ public InfoWindow(int WindowNo, String tableName, String keyColumn, String queryValue, boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, String predefinedContextVariables) { - this(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, - (field != null ? field.getLookup() : null)); - } - - /** - * @param WindowNo - * @param tableName - * @param keyColumn - * @param queryValue - * @param multipleSelection - * @param whereClause - * @param AD_InfoWindow_ID - * @param lookup - * @param field - * @param predefinedContextVariables - * @param lookupModel - */ - public InfoWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, String predefinedContextVariables, Lookup lookupModel) { super(WindowNo, tableName, keyColumn, multipleSelection, whereClause, lookup, AD_InfoWindow_ID, queryValue); this.m_gridfield = field; @@ -337,14 +315,6 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL Env.setPredefinedVariables(Env.getCtx(), getWindowNo(), predefinedContextVariables); infoContext = new Properties(Env.getCtx()); - if (lookupModel != null) { - this.lookupModel = lookupModel; - if (lookupModel instanceof MLookup mLookup) { - if (mLookup.getLookupInfo().lookupDisplayColumnNames != null && mLookup.getLookupInfo().lookupDisplayColumnNames.size() > 0) { - this.lookupIdentifiers = new ArrayList(mLookup.getLookupInfo().lookupDisplayColumnNames); - } - } - } p_loadedOK = loadInfoDefinition(); // make process button only in window mode @@ -743,12 +713,57 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL } protected void testQueryForSplit(String [] values) { - // do fill value to editor - for(int i = 0; i < values.length && i < identifiers.size(); i++) { - WEditor editor = identifiers.get(i); - editor.setValue(values[i].trim()); + // store identifiers on info window, sort to follow identifier on m_table + List fillIdentifiers = new ArrayList<>(); + // store query value, ignore value for identifier not exists on info window + // this list is sync with fillIdentifiers (size and order) + List fillValues = new ArrayList<>(); + + List tableIdentifiers = null; + if (m_gridfield != null && m_gridfield.getLookup() != null + && m_gridfield.getLookup() instanceof MLookup) { + + MLookup mLookup = (MLookup)m_gridfield.getLookup(); + if (mLookup.getLookupInfo().lookupDisplayColumnNames.size() > 0) + tableIdentifiers = mLookup.getLookupInfo().lookupDisplayColumnNames; + } + + if (tableIdentifiers != null) { + for (int i = 0; i < tableIdentifiers.size(); i++) { + // final local variable to access inside lambda expression + int indexFinal = i; + List tableIdentifiersFinal = tableIdentifiers; + + // sort identifiers of info window to follow m_table + // ignore identifiers exists on m_table but not exists on info window + identifiers.forEach((Consumer)(identifierEditor) -> { + if (identifierEditor.getColumnName().equals(tableIdentifiersFinal.get(indexFinal))) { + fillIdentifiers.add(identifierEditor); + fillValues.add(values[indexFinal]); + } + }); + } + } + + // case not exists mLookup.getLookupInfo().lookupDisplayColumnNames + // or no identifiers on info window exists on m_table + // fall back to old logic and just set values to identifiers + if (fillIdentifiers.size() == 0) { + for(int i = 0; i < values.length && i < identifiers.size(); i++) { + fillIdentifiers.add(identifiers.get(i)); + fillValues.add(values[i]); + } + } + + + + // do fill value to editor (for both corrected order and fall back) + for(int i = 0; i < fillIdentifiers.size(); i++) { + WEditor editor = fillIdentifiers.get(i); + editor.setValue(fillValues.get(i).trim()); } testCount(false); + } @Override @@ -1888,20 +1903,6 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL if (!isAutoComplete) dynamicDisplay(null); - - //if using lookupIdentifiers, sort identifiers in the order of lookupIdentifiers - if (lookupIdentifiers != null && lookupIdentifiers.size() > 0 && identifiers.size() > 0) { - List list = new ArrayList(); - for(String columnName : lookupIdentifiers) { - for(WEditor editor : identifiers) { - if (columnName.equals(editor.getColumnName())) { - list.add(editor); - break; - } - } - } - identifiers = list; - } } /** @@ -2020,12 +2021,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL editor.showMenu(); - //if MLookup is available, use display columns of MLookup instead of InfoColumn's IsIdentifier flag - if (lookupIdentifiers != null && lookupIdentifiers.size() > 0) { - if (lookupIdentifiers.contains(infoColumn.getColumnName()) ) { - identifiers.add(editor); - } - } else if (infoColumn.isIdentifier()) { + if (infoColumn.isIdentifier()) { identifiers.add(editor); }