From 3a33c7aa602b06d9918fc1c00327958bcf0c78d0 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Fri, 30 Oct 2015 09:14:05 -0500 Subject: [PATCH] IDEMPIERE-2919 InfoBP don't take the first contact / IDEMPIERE-2230 --- .../src/org/adempiere/webui/panel/InfoPanel.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java index 47a060000b..e4bcb447f5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java @@ -1272,7 +1272,21 @@ public abstract class InfoPanel extends Window implements EventListener, recordSelectedData.put(keyCandidate, candidateRecord);// add or update selected record info }else{ if (recordSelectedData.containsKey(keyCandidate)){// unselected record - recordSelectedData.remove(keyCandidate); + List recordSelected = recordSelectedData.get(keyCandidate); + IDColumn idcSel = null; + if (recordSelected.get(0) instanceof IDColumn) { + idcSel = (IDColumn) recordSelected.get(0); + } + IDColumn idcCan = null; + if (candidateRecord.get(0) instanceof IDColumn) { + idcCan = (IDColumn) candidateRecord.get(0); + } + if (idcSel != null && idcCan != null && idcSel.getRecord_ID().equals(idcCan.getRecord_ID())) { + recordSelected.set(0, candidateRecord.get(0)); // set same IDColumn for comparison + } + if (recordSelected.equals(candidateRecord)) { + recordSelectedData.remove(keyCandidate); + } } }