From b81502f13806fa18516d9e39108a4092e03ee5cf Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Wed, 19 Jan 2011 11:10:47 +0800 Subject: [PATCH] Fixed tab context preparation error. --- .../src/org/adempiere/webui/component/AbstractADTab.java | 8 +++++++- .../WEB-INF/src/org/adempiere/webui/component/IADTab.java | 7 +++++++ .../org/adempiere/webui/panel/AbstractADWindowPanel.java | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AbstractADTab.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AbstractADTab.java index 667837cd37..126696ba6c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AbstractADTab.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AbstractADTab.java @@ -23,6 +23,7 @@ import java.util.List; import org.adempiere.webui.panel.ADSortTab; import org.adempiere.webui.panel.ADTabpanel; +import org.adempiere.webui.panel.AbstractADWindowPanel; import org.adempiere.webui.panel.IADTabpanel; import org.adempiere.webui.part.AbstractUIPart; import org.compiere.model.DataStatusEvent; @@ -48,6 +49,7 @@ public abstract class AbstractADTab extends AbstractUIPart implements IADTab /** Tabs associated to this tab box */ protected List tabPanelList = new ArrayList(); + protected AbstractADWindowPanel adWindowPanel; public AbstractADTab() { @@ -133,7 +135,7 @@ public abstract class AbstractADTab extends AbstractUIPart implements IADTab private void prepareContext(int newIndex, IADTabpanel newTab) { //update context - if (newTab != null) + if (newTab != null && (adWindowPanel == null || !adWindowPanel.isEmbedded())) { List parents = new ArrayList(); //get parent list, always include first tab (0) @@ -324,4 +326,8 @@ public abstract class AbstractADTab extends AbstractUIPart implements IADTab int oldIndex = getSelectedIndex(); updateSelectedIndex(oldIndex, newIndex); } + + public void setADWindowPanel(AbstractADWindowPanel abstractADWindowPanel) { + this.adWindowPanel = abstractADWindowPanel; + } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/IADTab.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/IADTab.java index b109672907..c40255e03d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/IADTab.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/IADTab.java @@ -12,6 +12,7 @@ *****************************************************************************/ package org.adempiere.webui.component; +import org.adempiere.webui.panel.AbstractADWindowPanel; import org.adempiere.webui.panel.IADTabpanel; import org.adempiere.webui.part.UIPart; import org.compiere.model.DataStatusEvent; @@ -125,4 +126,10 @@ public interface IADTab extends UIPart { * @return IADTabpanel or null if not found */ public IADTabpanel findADTabpanel(GridTab gTab); + + /** + * + * @param abstractADWindowPanel + */ + public void setADWindowPanel(AbstractADWindowPanel abstractADWindowPanel); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractADWindowPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractADWindowPanel.java index 8d3d015ddf..75eeb1bf72 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractADWindowPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractADWindowPanel.java @@ -209,6 +209,7 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To adTab = createADTab(); adTab.addSelectionEventListener(this); + adTab.setADWindowPanel(this); return super.createPart(parent); }