From 0050af3c3a937256c36765581de5e88187c6a399 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Wed, 22 Aug 2012 17:41:31 +0800 Subject: [PATCH] IDEMPIERE-357 Move the Menu to be a Portlet. Remove unnecessary appendChild. Always hide the popup container first before the opening of window. --- .../webui/panel/AbstractMenuPanel.java | 55 ++++++++++++------- .../adempiere/webui/panel/HeaderPanel.java | 28 ++++++++-- 2 files changed, 58 insertions(+), 25 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java index 6a3f567bb8..4d0264c520 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java @@ -40,6 +40,7 @@ import org.zkoss.zk.ui.event.EventQueues; import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.A; import org.zkoss.zul.Panel; +import org.zkoss.zul.Popup; import org.zkoss.zul.Toolbarbutton; import org.zkoss.zul.Tree; import org.zkoss.zul.Treecell; @@ -277,26 +278,7 @@ public abstract class AbstractMenuPanel extends Panel implements EventListener popMenu = new Popup(); popMenu.setId("menuTreePopup"); - popMenu.appendChild(new MenuTreePanel(popMenu)); + new MenuTreePanel(popMenu); popMenu.setWidth("600px"); - popMenu.setHeight("90%"); - popMenu.setParent(hbox); + popMenu.setHeight("90%"); btnMenu = new ToolBarButton(); btnMenu.setLabel(Util.cleanAmp(Msg.getMsg(Env.getCtx(),"Menu"))); LayoutUtils.addSclass("desktop-header-font", btnMenu); btnMenu.setParent(hbox); - btnMenu.setPopup("menuTreePopup"); btnMenu.addEventListener(Events.ON_CLICK, this); LayoutUtils.addSclass("desktop-header-left", west); @@ -130,4 +129,25 @@ public class HeaderPanel extends Panel implements EventListener } } } + + /* (non-Javadoc) + * @see org.zkoss.zk.ui.AbstractComponent#onPageAttached(org.zkoss.zk.ui.Page, org.zkoss.zk.ui.Page) + */ + @Override + public void onPageAttached(Page newpage, Page oldpage) { + super.onPageAttached(newpage, oldpage); + if (newpage != null) + popMenu.setPage(newpage); + } + + /* (non-Javadoc) + * @see org.zkoss.zk.ui.AbstractComponent#onPageDetached(org.zkoss.zk.ui.Page) + */ + @Override + public void onPageDetached(Page page) { + super.onPageDetached(page); + popMenu.setPage(null); + } + + }