From ec8c384c5fb3920a601ceee550641df7c58bed1d Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Sun, 23 Dec 2018 15:29:09 +0100 Subject: [PATCH] backout f018794 - IDEMPIERE-611 Zk: number editor popup auto close immediately. - seems like in newer versions of zk the previous patch was correct to get the focus on calculator and latest patch didn't get focus --- .../adempiere/webui/component/NumberBox.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java index 27701017fb..97f11373e6 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java @@ -28,7 +28,9 @@ import org.adempiere.webui.util.ZKUpdateUtil; import org.compiere.model.MSysConfig; import org.compiere.util.DisplayType; import org.compiere.util.Env; +import org.zkoss.zk.ui.HtmlBasedComponent; 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.zul.Decimalbox; @@ -127,9 +129,20 @@ public class NumberBox extends Div btn.setImage(ThemeManager.getThemeResource("images/Calculator16.png")); btn.setTabindex(-1); ZKUpdateUtil.setHflex(btn, "0"); - btn.setWidgetListener("onClick", "try{var id=this.getPopup(); zk.Widget.$(id.substring(5, id.length - 1)).focus_(100);" + - "} catch(error) {}"); - + btn.addEventListener(Events.ON_CLICK, new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + if (btn.getPopup() != null) { + String uid = btn.getPopup(); + if (uid.startsWith("uuid(")) + uid = uid.substring(5, uid.length()-1); + HtmlBasedComponent comp = (HtmlBasedComponent) btn.getDesktop().getComponentByUuidIfAny(uid); + if (comp != null) { + comp.focus(); + } + } + } + }); LayoutUtils.addSclass("editor-button", btn); appendChild(btn);