From 86ab9b3493e40e782a771cf4dd03ffde2c311c13 Mon Sep 17 00:00:00 2001 From: Elaine Tan Date: Fri, 3 May 2013 15:45:51 +0800 Subject: [PATCH] IDEMPIERE-900 How To text vanishes after clicking on the Lookup icon - move the send event code from InfoPanel.dispose to WSearchEditor --- .../webui/adwindow/ADWindowContent.java | 2 +- .../webui/desktop/DashboardController.java | 7 ---- .../org/adempiere/webui/desktop/IDesktop.java | 6 ++++ .../adempiere/webui/editor/WSearchEditor.java | 14 ++++++++ .../org/adempiere/webui/panel/InfoPanel.java | 35 ------------------- .../adempiere/webui/part/WindowContainer.java | 8 ++--- 6 files changed, 24 insertions(+), 48 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java index 783d68c22f..27729bf928 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java @@ -210,7 +210,7 @@ public class ADWindowContent extends AbstractADWindowContent } } - static class ADWindowVlayout extends Vlayout { + public static class ADWindowVlayout extends Vlayout { /** * generated serial id */ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java index f3218d17c0..97a476aeb5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java @@ -33,7 +33,6 @@ import org.adempiere.webui.apps.graph.WPerformanceDetail; import org.adempiere.webui.component.ToolBarButton; import org.adempiere.webui.dashboard.DashboardPanel; import org.adempiere.webui.dashboard.DashboardRunnable; -import org.adempiere.webui.part.WindowContainer; import org.adempiere.webui.report.HTMLExtension; import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.theme.ThemeManager; @@ -48,7 +47,6 @@ import org.compiere.model.MPInstance; import org.compiere.model.MPInstancePara; import org.compiere.model.MProcess; import org.compiere.model.MSysConfig; -import org.compiere.model.X_AD_CtxHelp; import org.compiere.print.ReportEngine; import org.compiere.process.ProcessInfo; import org.compiere.util.CLogger; @@ -104,8 +102,6 @@ public class DashboardController implements EventListener { maximizedHolder = new Anchorchildren(); maximizedHolder.setAnchor("100% 100%"); maximizedHolder.setStyle("overflow: hidden; border: none; margin: 0; padding: 0;"); - - dashboardLayout.addEventListener(WindowContainer.ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT, this); } public void render(Component parent, IDesktop desktopImpl, boolean isShowInDashboard) { @@ -490,9 +486,6 @@ public class DashboardController implements EventListener { } } } - else if (event.getName().equals(WindowContainer.ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT)) { - SessionManager.getAppDesktop().updateHelpContext(X_AD_CtxHelp.CTXTYPE_Home, 0); - } } private void createDashboardPreference() diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/IDesktop.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/IDesktop.java index 5a28aff469..7c12de8ca5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/IDesktop.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/IDesktop.java @@ -67,6 +67,12 @@ public interface IDesktop extends UIPart { * @return boolean */ public boolean closeActiveWindow(); + + /** + * get active window + * @return Component + */ + public Component getActiveWindow(); /** * diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java index f6c3736802..568c842000 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java @@ -31,7 +31,10 @@ import org.adempiere.webui.ValuePreference; import org.adempiere.webui.adwindow.ADTabpanel; import org.adempiere.webui.adwindow.ADWindow; import org.adempiere.webui.adwindow.IFieldEditorContainer; +import org.adempiere.webui.adwindow.ADWindowContent.ADWindowVlayout; import org.adempiere.webui.apps.AEnv; +import org.adempiere.webui.apps.ProcessDialog; +import org.adempiere.webui.apps.wf.WFPanel; import org.adempiere.webui.component.Searchbox; import org.adempiere.webui.event.ContextMenuEvent; import org.adempiere.webui.event.ContextMenuListener; @@ -41,16 +44,20 @@ import org.adempiere.webui.event.ValueChangeListener; import org.adempiere.webui.exception.ApplicationException; import org.adempiere.webui.factory.InfoManager; import org.adempiere.webui.grid.WQuickEntry; +import org.adempiere.webui.panel.ADForm; import org.adempiere.webui.panel.InfoPanel; +import org.adempiere.webui.part.WindowContainer; import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.theme.ThemeManager; import org.adempiere.webui.window.WFieldRecordInfo; +import org.adempiere.webui.window.WTask; import org.compiere.model.GridField; import org.compiere.model.Lookup; import org.compiere.model.MLookup; import org.compiere.model.MLookupFactory; import org.compiere.model.MQuery; import org.compiere.model.MRole; +import org.compiere.model.X_AD_CtxHelp; import org.compiere.util.CLogger; import org.compiere.util.DB; import org.compiere.util.DisplayType; @@ -564,6 +571,13 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value @Override public void onEvent(Event event) throws Exception { + Component component = SessionManager.getAppDesktop().getActiveWindow(); + if (component instanceof ADWindowVlayout || component instanceof ADForm || component instanceof ProcessDialog + || component instanceof InfoPanel || component instanceof WFPanel || component instanceof WTask) + Events.sendEvent(new Event(WindowContainer.ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT, component)); + else + SessionManager.getAppDesktop().updateHelpContext(X_AD_CtxHelp.CTXTYPE_Home, 0); + boolean cancelled = ip.isCancelled(); Object[] result = ip.getSelectedKeys(); 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 166dd79e1c..e634f2e438 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 @@ -33,11 +33,8 @@ import java.util.Vector; import java.util.logging.Level; import org.adempiere.webui.AdempiereWebUI; -import org.adempiere.webui.adwindow.ADWindow; import org.adempiere.webui.apps.AEnv; import org.adempiere.webui.apps.BusyDialog; -import org.adempiere.webui.apps.ProcessDialog; -import org.adempiere.webui.apps.wf.WFPanel; import org.adempiere.webui.component.ConfirmPanel; import org.adempiere.webui.component.ListModelTable; import org.adempiere.webui.component.WListItemRenderer; @@ -52,7 +49,6 @@ import org.adempiere.webui.factory.InfoManager; import org.adempiere.webui.part.ITabOnSelectHandler; import org.adempiere.webui.part.WindowContainer; import org.adempiere.webui.session.SessionManager; -import org.adempiere.webui.window.WTask; import org.compiere.minigrid.ColumnInfo; import org.compiere.minigrid.IDColumn; import org.compiere.model.I_A_Asset; @@ -75,18 +71,15 @@ import org.compiere.util.KeyNamePair; import org.compiere.util.Msg; import org.compiere.util.ValueNamePair; import org.zkoss.zk.au.out.AuEcho; -import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Page; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.util.Clients; -import org.zkoss.zul.Anchorlayout; import org.zkoss.zul.Listhead; import org.zkoss.zul.Listheader; import org.zkoss.zul.Listitem; import org.zkoss.zul.Paging; -import org.zkoss.zul.Vlayout; import org.zkoss.zul.event.ZulEvents; import org.zkoss.zul.ext.Sortable; @@ -1324,35 +1317,7 @@ public abstract class InfoPanel extends Window implements EventListener, if (Window.MODE_EMBEDDED.equals(getAttribute(Window.MODE_KEY))) SessionManager.getAppDesktop().closeActiveWindow(); else - { - if (getWindowNo() > 0) - { - Object window = SessionManager.getAppDesktop().findWindow(getWindowNo()); - Component component = null; - if (window instanceof ADWindow) - { - ADWindow w = (ADWindow) window; - component = w.getADWindowContent().getComponent(); - } - else if (window instanceof ADForm || window instanceof ProcessDialog || window instanceof InfoPanel - || window instanceof WFPanel || window instanceof WTask) - { - component = (Component) window; - } - - if (component != null && - (component instanceof Vlayout || component instanceof ADForm || component instanceof ProcessDialog - || component instanceof InfoPanel || component instanceof Anchorlayout - || component instanceof WFPanel || component instanceof WTask)) - Events.sendEvent(new Event(WindowContainer.ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT, component)); - else - SessionManager.getAppDesktop().updateHelpContext(X_AD_CtxHelp.CTXTYPE_Home, 0); - } - else - SessionManager.getAppDesktop().updateHelpContext(X_AD_CtxHelp.CTXTYPE_Home, 0); - this.detach(); - } } // dispose public void sort(Comparator cmpr, boolean ascending) { 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 dd24b9dec8..7d3a9e0a5f 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 @@ -13,6 +13,7 @@ package org.adempiere.webui.part; +import org.adempiere.webui.adwindow.ADWindowContent.ADWindowVlayout; import org.adempiere.webui.apps.ProcessDialog; import org.adempiere.webui.apps.wf.WFPanel; import org.adempiere.webui.component.Tab; @@ -30,8 +31,6 @@ import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.SwipeEvent; -import org.zkoss.zul.Anchorlayout; -import org.zkoss.zul.Vlayout; /** * @@ -152,9 +151,8 @@ public class WindowContainer extends AbstractUIPart handler.onSelect(); } - if (component instanceof Vlayout || component instanceof ADForm || component instanceof ProcessDialog - || component instanceof InfoPanel || component instanceof Anchorlayout - || component instanceof WFPanel || component instanceof WTask) + if (component instanceof ADWindowVlayout || component instanceof ADForm || component instanceof ProcessDialog + || component instanceof InfoPanel || component instanceof WFPanel || component instanceof WTask) Events.sendEvent(new Event(ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT, component)); else SessionManager.getAppDesktop().updateHelpContext(X_AD_CtxHelp.CTXTYPE_Home, 0);