From dc793044189c6ccd0527f13b83fec04e934465ca Mon Sep 17 00:00:00 2001 From: hieplq Date: Tue, 18 Jul 2017 20:03:27 +0700 Subject: [PATCH] IDEMPIERE-3426:improve tab behavior drag&drop fix drop index > drag index --- .../org/adempiere/webui/component/Tabs.java | 18 ++++++++++++------ .../adempiere/webui/part/WindowContainer.java | 3 +++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabs.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabs.java index 78bc14fc9a..8336a3157c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabs.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabs.java @@ -148,14 +148,20 @@ public class Tabs extends org.zkoss.zul.Tabs implements EventListener int draggIndex = this.getChildren().indexOf(draggComp); Component draggPanel = tabpanels.getChildren().get(draggIndex); - if (dropIndex == -1 || draggIndex > dropIndex) {//drop to end or to before drop tab - insertBefore(draggComp, dropComp); - tabpanels.insertBefore(draggPanel, dropPanel); - }else { - insertBefore(dropComp, draggComp); - tabpanels.insertBefore(dropPanel, draggPanel); + if (dropIndex != -1 && draggIndex < dropIndex) { + if (dropComp.getNextSibling() == null) { + dropIndex = -1;// drop to end + dropComp = null; + dropPanel = null; + }else { + dropIndex = dropIndex + 1;// insert before of tab next to drop tab + dropComp = dropComp.getNextSibling(); + dropPanel = tabpanels.getChildren().get(dropIndex); + } } + insertBefore(draggComp, dropComp); + tabpanels.insertBefore(draggPanel, dropPanel); } /** diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/part/WindowContainer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/part/WindowContainer.java index f1f3191e83..825c7291c5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/part/WindowContainer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/part/WindowContainer.java @@ -213,6 +213,9 @@ public class WindowContainer extends AbstractUIPart implements EventListener