From 38fae63d1bb5aab0454aa3c241579638fad5b27c Mon Sep 17 00:00:00 2001 From: hieplq Date: Sat, 15 Jul 2017 01:13:17 +0700 Subject: [PATCH] IDEMPIERE-3426:improve tab behavior drag&drop for home tab case --- .../org/adempiere/webui/component/Tab.java | 19 +++++++++++++++++-- .../org/adempiere/webui/component/Tabbox.java | 2 +- .../org/adempiere/webui/component/Tabs.java | 6 ++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tab.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tab.java index bcf01e980f..e736c76d67 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tab.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tab.java @@ -32,11 +32,13 @@ import org.zkoss.zul.impl.LabelImageElement; */ public class Tab extends org.zkoss.zul.Tab { + /** * */ - private static final long serialVersionUID = -5146887728183695020L; - + private static final long serialVersionUID = -7504310693884092219L; + private boolean isDisableDraggDrop = false; + public Tab(String str) { this.setLabel(str); @@ -60,6 +62,19 @@ public class Tab extends org.zkoss.zul.Tab } } + public boolean isDisableDraggDrop() { + return isDisableDraggDrop; + } + + /** + * home tab don't want to drag and drop. + * {@link Tab} like that can be set true for this properties + * @param isDisableDraggDrop + */ + public void setDisableDraggDrop(boolean isDisableDraggDrop) { + this.isDisableDraggDrop = isDisableDraggDrop; + } + /** * class contain decorate info * at the moment, has only image info diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabbox.java index 8bc88bfb32..7ff4277a9f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabbox.java @@ -33,7 +33,7 @@ public class Tabbox extends org.zkoss.zul.Tabbox * */ private static final long serialVersionUID = 1400484283064851775L; - private boolean isSupportTabDragDrop; + private boolean isSupportTabDragDrop = false; public Tabpanel getTabpanel(int index) { 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 31597846d7..78bc14fc9a 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 @@ -174,6 +174,12 @@ public class Tabs extends org.zkoss.zul.Tabs implements EventListener if ((dropComp instanceof Tab && this != dropComp.getParent()) || this != draggComp.getParent())// make sure drag and drop on same tabbox return false; + if ((dropComp instanceof org.adempiere.webui.component.Tab && ((org.adempiere.webui.component.Tab)dropComp).isDisableDraggDrop()) + || (draggComp instanceof org.adempiere.webui.component.Tab && ((org.adempiere.webui.component.Tab)draggComp).isDisableDraggDrop()) + ) { + return false; + } + return true; } }