From 65fcc299e3c2b705eae02e2e1199c45272e2dd3e Mon Sep 17 00:00:00 2001 From: Elaine Tan Date: Fri, 3 May 2013 17:32:44 +0800 Subject: [PATCH] IDEMPIERE-900 How To text vanishes after clicking on the Lookup icon - use IHelpContext interface in component classes that support the use of help context --- .../webui/adwindow/ADWindowContent.java | 3 ++- .../adempiere/webui/apps/ProcessDialog.java | 3 ++- .../org/adempiere/webui/apps/wf/WFPanel.java | 3 ++- .../adempiere/webui/editor/WSearchEditor.java | 9 ++----- .../src/org/adempiere/webui/panel/ADForm.java | 2 +- .../adempiere/webui/panel/IHelpContext.java | 24 +++++++++++++++++++ .../org/adempiere/webui/panel/InfoPanel.java | 2 +- .../adempiere/webui/part/WindowContainer.java | 10 ++------ .../src/org/adempiere/webui/window/WTask.java | 3 ++- 9 files changed, 38 insertions(+), 21 deletions(-) create mode 100644 org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/IHelpContext.java 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 27729bf928..d49e5a0010 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 @@ -28,6 +28,7 @@ import java.util.Properties; import org.adempiere.webui.LayoutUtils; import org.adempiere.webui.component.Tabpanel; import org.adempiere.webui.component.ToolBarButton; +import org.adempiere.webui.panel.IHelpContext; import org.adempiere.webui.panel.ITabOnCloseHandler; import org.adempiere.webui.part.WindowContainer; import org.adempiere.webui.session.SessionManager; @@ -210,7 +211,7 @@ public class ADWindowContent extends AbstractADWindowContent } } - public static class ADWindowVlayout extends Vlayout { + public static class ADWindowVlayout extends Vlayout implements IHelpContext { /** * generated serial id */ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessDialog.java index 3b32b86bb8..236f7e3809 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessDialog.java @@ -28,6 +28,7 @@ import org.adempiere.webui.component.Panel; import org.adempiere.webui.component.Window; import org.adempiere.webui.desktop.IDesktop; import org.adempiere.webui.factory.ButtonFactory; +import org.adempiere.webui.panel.IHelpContext; import org.adempiere.webui.part.WindowContainer; import org.adempiere.webui.process.WProcessInfo; import org.adempiere.webui.session.SessionManager; @@ -101,7 +102,7 @@ import com.lowagie.text.pdf.PdfWriter; * @author arboleda - globalqss * - Implement ShowHelp option on processes and reports */ -public class ProcessDialog extends Window implements EventListener, IProcessUI +public class ProcessDialog extends Window implements EventListener, IProcessUI, IHelpContext { /** * generate serial version ID diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFPanel.java index 0c0072553f..bff9f74f4d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFPanel.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.List; import java.util.logging.Level; +import org.adempiere.webui.panel.IHelpContext; import org.adempiere.webui.part.WindowContainer; import org.adempiere.webui.session.SessionManager; import org.compiere.apps.wf.WFGraphLayout; @@ -46,7 +47,7 @@ import org.zkoss.zul.Html; * * @author Low Heng Sin */ -public class WFPanel extends Borderlayout implements EventListener +public class WFPanel extends Borderlayout implements EventListener, IHelpContext { /** * 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 568c842000..2ecb7ccb37 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,10 +31,7 @@ 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; @@ -44,13 +41,12 @@ 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.IHelpContext; 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; @@ -572,8 +568,7 @@ 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) + if (component instanceof IHelpContext) Events.sendEvent(new Event(WindowContainer.ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT, component)); else SessionManager.getAppDesktop().updateHelpContext(X_AD_CtxHelp.CTXTYPE_Home, 0); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/ADForm.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/ADForm.java index b94f8f1415..8ea1a2a8b4 100755 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/ADForm.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/ADForm.java @@ -39,7 +39,7 @@ import org.zkoss.zk.ui.event.EventListener; * * @author Andrew Kimball */ -public abstract class ADForm extends Window implements EventListener +public abstract class ADForm extends Window implements EventListener, IHelpContext { /** * diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/IHelpContext.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/IHelpContext.java new file mode 100644 index 0000000000..1ecec94fe2 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/IHelpContext.java @@ -0,0 +1,24 @@ +/****************************************************************************** + * Copyright (C) 2013 Elaine Tan * + * Copyright (C) 2013 Trek Global + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + *****************************************************************************/ + +package org.adempiere.webui.panel; + +/** + * + * @author Elaine + * + */ +public interface IHelpContext { + +} 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 e634f2e438..42f7d848df 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 @@ -93,7 +93,7 @@ import org.zkoss.zul.ext.Sortable; * @author Elaine * @version Info.java Adempiere Swing UI 3.4.1 */ -public abstract class InfoPanel extends Window implements EventListener, WTableModelListener, Sortable +public abstract class InfoPanel extends Window implements EventListener, WTableModelListener, Sortable, IHelpContext { /** 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 7d3a9e0a5f..0289cc2cec 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,18 +13,13 @@ 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; import org.adempiere.webui.component.Tabbox; import org.adempiere.webui.component.Tabpanel; import org.adempiere.webui.component.Tabpanels; import org.adempiere.webui.component.Tabs; -import org.adempiere.webui.panel.ADForm; -import org.adempiere.webui.panel.InfoPanel; +import org.adempiere.webui.panel.IHelpContext; import org.adempiere.webui.session.SessionManager; -import org.adempiere.webui.window.WTask; import org.compiere.model.X_AD_CtxHelp; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; @@ -151,8 +146,7 @@ public class WindowContainer extends AbstractUIPart handler.onSelect(); } - if (component instanceof ADWindowVlayout || component instanceof ADForm || component instanceof ProcessDialog - || component instanceof InfoPanel || component instanceof WFPanel || component instanceof WTask) + if (component instanceof IHelpContext) Events.sendEvent(new Event(ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT, component)); else SessionManager.getAppDesktop().updateHelpContext(X_AD_CtxHelp.CTXTYPE_Home, 0); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTask.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTask.java index 0432d95b7a..8a85aca810 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTask.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTask.java @@ -21,6 +21,7 @@ import java.util.logging.Level; import org.adempiere.webui.LayoutUtils; import org.adempiere.webui.component.ConfirmPanel; import org.adempiere.webui.component.Window; +import org.adempiere.webui.panel.IHelpContext; import org.adempiere.webui.part.WindowContainer; import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.util.OSTask; @@ -48,7 +49,7 @@ import org.zkoss.zul.Html; * * @author Low Heng Sin */ -public class WTask extends Window implements EventListener +public class WTask extends Window implements EventListener, IHelpContext { /** *