From 3e7dd1f7f79639be80b94304312d68557b90c1ea Mon Sep 17 00:00:00 2001 From: hengsin Date: Wed, 28 Jul 2021 03:43:28 +0800 Subject: [PATCH] =?UTF-8?q?IDEMPIERE-4410=20Review=20Shortcuts=20(probably?= =?UTF-8?q?=20ESC)=20for=20all=20popovers,=20moda=E2=80=A6=20(#795)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * IDEMPIERE-4410 Review Shortcuts (probably ESC) for all popovers, modals, dialogs add esc shortcut for customize grid view, attachment, csv import loader, export, file import loader, chat and post it dialogs. * IDEMPIERE-4410 Review Shortcuts (probably ESC) for all popovers, modals, dialogs - add esc handling to more dialog and popup. * IDEMPIERE-4410 Review Shortcuts (probably ESC) for all popovers, modals, dialogs - add esc shortcut to process modal dialog. * IDEMPIERE-4410 Review Shortcuts (probably ESC) for all popovers, modals, dialogs - Fix esc handling for numberbox, image dialog, email dialog, media dialog and cloud upload dialog. --- .../org/adempiere/webui/ValuePreference.java | 11 +++++-- .../webui/apps/ProcessModalDialog.java | 7 +++- .../adempiere/webui/component/NumberBox.java | 2 ++ .../webui/desktop/AbstractDesktop.java | 4 +++ .../adempiere/webui/editor/WBinaryEditor.java | 3 +- .../org/adempiere/webui/grid/WQuickEntry.java | 7 +++- .../webui/panel/CustomizeGridViewPanel.java | 32 +++++++++++++++---- .../adempiere/webui/panel/WAttachment.java | 9 ++++-- .../webui/panel/action/CSVImportAction.java | 7 +++- .../webui/panel/action/ExportAction.java | 7 +++- .../webui/panel/action/FileImportAction.java | 7 +++- .../webui/window/CustomizeGridViewDialog.java | 2 ++ .../adempiere/webui/window/InfoSchedule.java | 11 +++++-- .../webui/window/WAccountDialog.java | 10 ++++-- .../webui/window/WAssignmentDialog.java | 10 ++++-- .../src/org/adempiere/webui/window/WChat.java | 13 ++++++-- .../webui/window/WCtxHelpSuggestion.java | 8 ++++- .../adempiere/webui/window/WEMailDialog.java | 32 +++++++++++++------ .../webui/window/WFieldRecordInfo.java | 6 ++++ .../webui/window/WFieldSuggestion.java | 8 ++++- .../org/adempiere/webui/window/WGadgets.java | 7 +++- .../adempiere/webui/window/WImageDialog.java | 18 +++++++++-- .../webui/window/WLocationDialog.java | 9 ++++-- .../webui/window/WLocatorDialog.java | 9 ++++-- .../adempiere/webui/window/WMediaDialog.java | 17 +++++++--- .../webui/window/WPAttributeDialog.java | 13 +++++--- .../webui/window/WPAttributeInstance.java | 11 +++++-- .../org/adempiere/webui/window/WPostIt.java | 7 +++- .../adempiere/webui/window/WRecordInfo.java | 6 ++++ .../webui/window/WReportExportDialog.java | 8 ++++- .../webui/window/WReportUploadDialog.java | 17 ++++++++-- .../webui/window/WTextEditorDialog.java | 9 ++++-- 32 files changed, 266 insertions(+), 61 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ValuePreference.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ValuePreference.java index fa0d1e4744..c6642e7ef5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ValuePreference.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ValuePreference.java @@ -48,6 +48,7 @@ import org.compiere.util.Env; import org.compiere.util.Login; import org.compiere.util.Msg; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.Page; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; @@ -241,7 +242,8 @@ public class ValuePreference extends Window implements EventListener LayoutUtils.openOverlappedWindow(ref, this, "after_start"); } else { AEnv.showCenterScreen(this); - } + } + Executions.schedule(getDesktop(), e -> confirmPanel.getOKButton().focus(), new Event("onPostOpenValuePreferenceDialog")); } // ValuePreference @@ -467,6 +469,7 @@ public class ValuePreference extends Window implements EventListener confirmPanel.addActionListener(Events.ON_CLICK, this); bDelete = confirmPanel.getButton("Delete"); setExplanation(); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } // dynInit /** @@ -477,7 +480,7 @@ public class ValuePreference extends Window implements EventListener { if (e.getTarget().getId().equals("Cancel")) { - this.detach(); + onCancel(); } else if (e.getTarget().getId().equals("Ok")) { @@ -497,6 +500,10 @@ public class ValuePreference extends Window implements EventListener setExplanation(); } // actionPerformed + private void onCancel() { + this.detach(); + } + /** * Set Explanation */ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessModalDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessModalDialog.java index c7f07059bc..993bdab742 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessModalDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessModalDialog.java @@ -121,6 +121,7 @@ public class ProcessModalDialog extends AbstractProcessDialog implements EventLi log.log(Level.SEVERE, "", ex); } addEventListener(ON_OK_ECHO, this); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } public ProcessModalDialog (int WindowNo, int AD_Process_ID, int tableId, int recordId, boolean autoStart) @@ -222,12 +223,16 @@ public class ProcessModalDialog extends AbstractProcessDialog implements EventLi onOk(); } else if (component.equals(bCancel)) { super.onEvent(event); - cancelProcess(); + onCancel(); }else { super.onEvent(event); } } + private void onCancel() { + cancelProcess(); + } + private void onOk() { if (getParameterPanel().isWaitingForDialog()) { 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 8d45ef799a..afd09028d3 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 @@ -444,6 +444,8 @@ public class NumberBox extends Div popup.appendChild(vbox); popup.setWidgetListener("onOpen", "calc.clearAll('" + txtCalcId + "')"); + + popup.addEventListener(Events.ON_CANCEL, e -> popup.close()); return popup; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/AbstractDesktop.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/AbstractDesktop.java index e804aaa322..0a6edb8b28 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/AbstractDesktop.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/AbstractDesktop.java @@ -230,6 +230,7 @@ public abstract class AbstractDesktop extends AbstractUIPart implements IDesktop { win.setPage(page); win.doModal(); + win.focus(); } else { @@ -281,6 +282,7 @@ public abstract class AbstractDesktop extends AbstractUIPart implements IDesktop win.setPage(page); win.doPopup(); + win.focus(); } /** @@ -297,6 +299,7 @@ public abstract class AbstractDesktop extends AbstractUIPart implements IDesktop win.setPage(page); win.doOverlapped(); + win.focus(); } /** @@ -313,6 +316,7 @@ public abstract class AbstractDesktop extends AbstractUIPart implements IDesktop win.setPage(page); win.doHighlighted(); + win.focus(); } protected List getWindows(){ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java index 94b93a29d6..1523fbaf06 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WBinaryEditor.java @@ -181,9 +181,10 @@ public class WBinaryEditor extends WEditor content.getComponent().getParent().appendChild(dialog); content.showBusyMask(dialog); LayoutUtils.openOverlappedWindow(content.getComponent().getParent(), dialog, "middle_center"); + dialog.focus(); } else { AEnv.showWindow(dialog); - } + } } } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/grid/WQuickEntry.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/grid/WQuickEntry.java index d36db4734e..6fdfa64cf4 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/grid/WQuickEntry.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/grid/WQuickEntry.java @@ -171,6 +171,7 @@ public class WQuickEntry extends AbstractWQuickEntry implements EventListener onCancel()); if (ClientInfo.isMobile()) { @@ -525,10 +526,14 @@ public class WQuickEntry extends AbstractWQuickEntry implements EventListener orientation = ClientInfo.get().orientation; ClientInfo.onClientInfo(this, this::onClientInfo); } + addEventListener(Events.ON_CANCEL, e -> onCancel()); } protected void onClientInfo() @@ -621,8 +622,7 @@ public class WAttachment extends Window implements EventListener dispose(); } } else if (e.getTarget() == bCancel) { - // Cancel - dispose(); + onCancel(); } else if (e.getTarget() == bDeleteAll) { // Delete Attachment deleteAttachment(); @@ -644,6 +644,11 @@ public class WAttachment extends Window implements EventListener } // onEvent + private void onCancel() { + // Cancel + dispose(); + } + private void processUploadMedia(Media media) { if (media != null && media.getByteData().length>0) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/CSVImportAction.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/CSVImportAction.java index 6662edafb5..707c63039d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/CSVImportAction.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/CSVImportAction.java @@ -199,6 +199,7 @@ public class CSVImportAction implements EventListener LayoutUtils.addSclass("dialog-footer", confirmPanel); vb.appendChild(confirmPanel); confirmPanel.addActionListener(this); + winImportFile.addEventListener(Events.ON_CANCEL, e -> onCancel()); } panel.getComponent().getParent().appendChild(winImportFile); @@ -222,7 +223,7 @@ public class CSVImportAction implements EventListener UploadEvent ue = (UploadEvent) event; processUploadMedia(ue.getMedia()); } else if (event.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) { - winImportFile.onClose(); + onCancel(); } else if (event.getTarget() == fTemplates) { if (m_file_istream != null) { m_file_istream.close(); @@ -242,6 +243,10 @@ public class CSVImportAction implements EventListener } } + private void onCancel() { + winImportFile.onClose(); + } + private void fillImportMode() { final String sql= "" + "SELECT MAX(IsAllowInsert), " diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java index 1d66f579ab..b2daee0ec4 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/ExportAction.java @@ -167,6 +167,7 @@ public class ExportAction implements EventListener LayoutUtils.addSclass("dialog-footer", confirmPanel); vb.appendChild(confirmPanel); confirmPanel.addActionListener(this); + winExportFile.addEventListener(Events.ON_CANCEL, e -> onCancel()); } displayExportTabSelection(); panel.getComponent().getParent().appendChild(winExportFile); @@ -230,7 +231,7 @@ public class ExportAction implements EventListener @Override public void onEvent(Event event) throws Exception { if(event.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) - winExportFile.onClose(); + onCancel(); else if(event.getTarget().getId().equals(ConfirmPanel.A_OK)) exportFile(); else if (event.getName().equals(DialogEvents.ON_WINDOW_CLOSE)) { @@ -262,6 +263,10 @@ public class ExportAction implements EventListener winExportFile.onClose(); } } + + private void onCancel() { + winExportFile.onClose(); + } /** * get info of window export, diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/FileImportAction.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/FileImportAction.java index 9a61543a5d..f66c553da7 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/FileImportAction.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/action/FileImportAction.java @@ -217,6 +217,7 @@ public class FileImportAction implements EventListener LayoutUtils.addSclass("dialog-footer", confirmPanel); vb.appendChild(confirmPanel); confirmPanel.addActionListener(this); + winImportFile.addEventListener(Events.ON_CANCEL, e -> onCancel()); } panel.getComponent().getParent().appendChild(winImportFile); @@ -233,7 +234,7 @@ public class FileImportAction implements EventListener UploadEvent ue = (UploadEvent) event; processUploadMedia(ue.getMedia()); } else if (event.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) { - winImportFile.onClose(); + onCancel(); } else if (event.getTarget() == fCharset) { if (m_file_istream != null) { m_file_istream.close(); @@ -254,6 +255,10 @@ public class FileImportAction implements EventListener } } + private void onCancel() { + winImportFile.onClose(); + } + private void processUploadMedia(Media media) { if (media == null) return; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/CustomizeGridViewDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/CustomizeGridViewDialog.java index 1505544049..d551a42a55 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/CustomizeGridViewDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/CustomizeGridViewDialog.java @@ -18,6 +18,7 @@ import org.compiere.model.GridField; import org.compiere.util.Env; import org.compiere.util.Msg; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.Column; import org.zkoss.zul.Columns; @@ -87,6 +88,7 @@ public class CustomizeGridViewDialog extends Window { customizePanel.createUI(); customizePanel.query(); } + addEventListener(Events.ON_CANCEL, e -> customizePanel.onCancel()); } /** diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/InfoSchedule.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/InfoSchedule.java index c320d10b17..d4720e1329 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/InfoSchedule.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/InfoSchedule.java @@ -236,7 +236,8 @@ public class InfoSchedule extends Window implements EventListener } fieldResourceType.setMold("select"); - fieldResource.setMold("select"); + fieldResource.setMold("select"); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } // jbInit /** @@ -465,8 +466,7 @@ public class InfoSchedule extends Window implements EventListener m_cancel = false; dispose(); } else if (event.getTarget().getId().equals("Cancel")) { - m_cancel = true; - dispose(); + onCancel(); // } else if (event.getTarget() == fieldResourceType) { @@ -480,6 +480,11 @@ public class InfoSchedule extends Window implements EventListener displayCalendar(); // } + + private void onCancel() { + m_cancel = true; + dispose(); + } private void doEdit(CalendarsEvent event) { ListItem listItem = fieldResource.getSelectedItem(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAccountDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAccountDialog.java index 953e80049e..b7ad72a8e5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAccountDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAccountDialog.java @@ -308,6 +308,8 @@ public final class WAccountDialog extends Window if (ClientInfo.isMobile()) { ClientInfo.onClientInfo(this, this::onClientInfo); } + + addEventListener(Events.ON_CANCEL, e -> onCancel()); } // jbInit /** @@ -777,8 +779,7 @@ public final class WAccountDialog extends Window } else if (event.getTarget().getId().equals("Cancel")) { - m_changed = false; - dispose(); + onCancel(); } // else if (event.getTarget() == bSave) @@ -790,6 +791,11 @@ public final class WAccountDialog extends Window action_Find (true); } + private void onCancel() { + m_changed = false; + dispose(); + } + boolean needConfirm(WEditor editor, MAccount combiOrg) { if (editor != null ) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAssignmentDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAssignmentDialog.java index 093c0ac359..aeb84f3a2a 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAssignmentDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAssignmentDialog.java @@ -215,6 +215,8 @@ public class WAssignmentDialog extends Window implements EventListener row = new Row(); row.appendCellChild(confirmPanel, 3); rows.appendChild(row); + + addEventListener(Events.ON_CANCEL, e -> onCancel()); // } // jbInit @@ -397,8 +399,7 @@ public class WAssignmentDialog extends Window implements EventListener // cancel - return else if (e.getTarget().getId().equals("Cancel")) { - m_cancel = true; - detach(); + onCancel(); } // delete - delete and return @@ -422,6 +423,11 @@ public class WAssignmentDialog extends Window implements EventListener } } + private void onCancel() { + m_cancel = true; + detach(); + } + public void onShowSchedule() { InfoSchedule is = new InfoSchedule (m_mAssignment, true, this, new Callback() { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WChat.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WChat.java index 9f70cf947b..204cd8a676 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WChat.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WChat.java @@ -44,6 +44,7 @@ import org.compiere.util.Util; import org.zkoss.zk.ui.Component; 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.Borderlayout; import org.zkoss.zul.Center; import org.zkoss.zul.Div; @@ -126,7 +127,7 @@ public class WChat extends Window implements EventListener, DialogEvents private Borderlayout mainPanel = new Borderlayout(); private Textbox newText = new Textbox(); - private ConfirmPanel confirmPanel = new ConfirmPanel(false); + private ConfirmPanel confirmPanel = new ConfirmPanel(true); private Tree messageTree = new Tree(); private Button addButton; private Map entryMap = new HashMap(); @@ -198,6 +199,7 @@ public class WChat extends Window implements EventListener, DialogEvents orientation = ClientInfo.get().orientation; ClientInfo.onClientInfo(this, this::onClientInfo); } + addEventListener(Events.ON_CANCEL, e -> onCancel()); } protected void onClientInfo() @@ -389,6 +391,13 @@ public class WChat extends Window implements EventListener, DialogEvents } // actionPerformed public void onEvent(Event event) throws Exception { - actionPerformed(event); + if (event.getTarget() == confirmPanel.getOKButton()) + actionPerformed(event); + else if (event.getTarget() == confirmPanel.getButton(ConfirmPanel.A_CANCEL)) + onCancel(); + } + + private void onCancel() { + this.detach(); } } // WChat diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WCtxHelpSuggestion.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WCtxHelpSuggestion.java index c5177ec256..929a3d696d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WCtxHelpSuggestion.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WCtxHelpSuggestion.java @@ -30,6 +30,7 @@ import org.compiere.wf.MWorkflow; import org.zkforge.ckez.CKeditor; 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.Borderlayout; import org.zkoss.zul.Cell; import org.zkoss.zul.Center; @@ -157,6 +158,7 @@ public class WCtxHelpSuggestion extends Window implements EventListener { } else { setTitle(Msg.getElement(Env.getCtx(), "AD_CtxHelpSuggestion_ID")); } + addEventListener(Events.ON_CANCEL, e -> onCancel()); } @Override @@ -164,10 +166,14 @@ public class WCtxHelpSuggestion extends Window implements EventListener { if (event.getTarget() == confirmPanel.getButton(ConfirmPanel.A_OK)) { onSave(); } else if (event.getTarget() == confirmPanel.getButton(ConfirmPanel.A_CANCEL)) { - this.detach(); + onCancel(); } } + private void onCancel() { + this.detach(); + } + private void onSave() { String trxName = Trx.createTrxName(); Trx trx = Trx.get(trxName, true); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java index 69ac9aae1a..7acc529f7a 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java @@ -175,6 +175,7 @@ public class WEMailDialog extends Window implements EventListener, ValueC set(from, to, subject, message); setAttachment(attachment); setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } // commonInit @@ -272,7 +273,7 @@ public class WEMailDialog extends Window implements EventListener, ValueC div.appendChild(lFrom); row.appendChild(div); row.appendChild(fFrom); - ZKUpdateUtil.setHflex(fFrom, "1"); + ZKUpdateUtil.setWidth(fFrom, "100%"); row = new Row(); rows.appendChild(row); @@ -281,13 +282,13 @@ public class WEMailDialog extends Window implements EventListener, ValueC div.appendChild(lTo); row.appendChild(div); row.appendChild(fUser.getComponent()); - ZKUpdateUtil.setHflex(fUser.getComponent(), "1"); + ZKUpdateUtil.setWidth(fUser.getComponent(), "100%"); row = new Row(); rows.appendChild(row); row.appendChild(new Label("")); row.appendChild(fTo); - ZKUpdateUtil.setHflex(fTo, "1"); + ZKUpdateUtil.setWidth(fTo, "100%"); row = new Row(); rows.appendChild(row); @@ -296,13 +297,13 @@ public class WEMailDialog extends Window implements EventListener, ValueC div.appendChild(lCc); row.appendChild(div); row.appendChild(fCcUser.getComponent()); - ZKUpdateUtil.setHflex(fCcUser.getComponent(), "1"); + ZKUpdateUtil.setWidth(fCcUser.getComponent(), "100%"); row = new Row(); rows.appendChild(row); row.appendChild(new Label("")); row.appendChild(fCc); - ZKUpdateUtil.setHflex(fCc, "1"); + ZKUpdateUtil.setWidth(fCc, "100%"); row = new Row(); rows.appendChild(row); @@ -316,7 +317,7 @@ public class WEMailDialog extends Window implements EventListener, ValueC div.appendChild(lSubject); row.appendChild(div); row.appendChild(fSubject); - ZKUpdateUtil.setHflex(fSubject, "1"); + ZKUpdateUtil.setWidth(fSubject, "100%"); row = new Row(); rows.appendChild(row); @@ -376,7 +377,7 @@ public class WEMailDialog extends Window implements EventListener, ValueC Borderlayout borderlayout = new Borderlayout(); this.appendChild(borderlayout); - ZKUpdateUtil.setHflex(borderlayout, "1"); + ZKUpdateUtil.setWidth(borderlayout, "100%"); Center centerPane = new Center(); centerPane.setSclass("dialog-content"); @@ -522,9 +523,7 @@ public class WEMailDialog extends Window implements EventListener, ValueC */ public void onEvent(Event event) throws Exception { if (event.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) - onClose(); - - // Send + onCancel(); else if (event.getTarget().getId().equals(ConfirmPanel.A_OK)) { Clients.clearBusy(); @@ -590,6 +589,10 @@ public class WEMailDialog extends Window implements EventListener, ValueC addMailText(); } + private void onCancel() { + onClose(); + } + /** * @param dataSource * @param removeable @@ -861,4 +864,13 @@ public class WEMailDialog extends Window implements EventListener, ValueC } } + + @Override + public void focus() { + super.focus(); + if (fUser != null) + fUser.getComponent().focus(); + } + + } // WEMailDialog \ No newline at end of file diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WFieldRecordInfo.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WFieldRecordInfo.java index f7a591f7b3..0f7d1510bc 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WFieldRecordInfo.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WFieldRecordInfo.java @@ -163,6 +163,7 @@ public class WFieldRecordInfo extends Window implements EventListener south.appendChild(confirmPanel); confirmPanel.addActionListener(Events.ON_CLICK, this); + addEventListener(Events.ON_CANCEL, e -> onCancel()); setSclass("field-record-info-dialog"); } // init @@ -362,6 +363,11 @@ public class WFieldRecordInfo extends Window implements EventListener * @param event */ public void onEvent(Event event) throws Exception { + onCancel(); + } + + + private void onCancel() { this.detach(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WFieldSuggestion.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WFieldSuggestion.java index a1ceabee19..cba52ae924 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WFieldSuggestion.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WFieldSuggestion.java @@ -19,6 +19,7 @@ import org.compiere.util.Env; import org.compiere.util.Msg; 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.Borderlayout; import org.zkoss.zul.Center; import org.zkoss.zul.Label; @@ -125,6 +126,7 @@ public class WFieldSuggestion extends Window implements EventListener { this.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED); this.setSizable(true); this.setMaximizable(true); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } @Override @@ -132,10 +134,14 @@ public class WFieldSuggestion extends Window implements EventListener { if (event.getTarget() == confirmPanel.getButton(ConfirmPanel.A_OK)) { onSave(); } else if (event.getTarget() == confirmPanel.getButton(ConfirmPanel.A_CANCEL)) { - this.detach(); + onCancel(); } } + private void onCancel() { + this.detach(); + } + private void onSave() { MFieldSuggestion suggestion = new MFieldSuggestion(Env.getCtx(), 0, null); suggestion.setClientOrg(0, 0); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WGadgets.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WGadgets.java index f1f34cee37..2729d9395d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WGadgets.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WGadgets.java @@ -119,11 +119,15 @@ public class WGadgets extends Window implements EventListener{ } else if (panel.getButton("Cancel").equals(event.getTarget())) { - this.detach(); + onCancel(); } } } + + private void onCancel() { + this.detach(); + } public void init() { @@ -229,6 +233,7 @@ public class WGadgets extends Window implements EventListener{ vlayout.appendChild(panel); this.appendChild(vlayout); this.setBorder("normal"); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WImageDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WImageDialog.java index 825c847e2e..c7b2d216da 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WImageDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WImageDialog.java @@ -240,6 +240,7 @@ public class WImageDialog extends Window implements EventListener addEventListener(Events.ON_UPLOAD, this); addEventListener("onSave", this); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } // init public void onEvent(Event e) throws Exception { @@ -255,8 +256,7 @@ public class WImageDialog extends Window implements EventListener } else if (e.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) { - cancel = true; - detach(); + onCancel(); } else if (e.getTarget().getId().equals(ConfirmPanel.A_RESET)) { @@ -325,6 +325,11 @@ public class WImageDialog extends Window implements EventListener } } + private void onCancel() { + cancel = true; + detach(); + } + private void onSave() { if (image.getContent() != null) { @@ -419,5 +424,14 @@ public class WImageDialog extends Window implements EventListener */ public void setDefaultNameForCaptureImage(String defaultNameForCaptureImage) { this.defaultNameForCaptureImage = defaultNameForCaptureImage; + } + + @Override + public void focus() { + super.focus(); + if (fileButton != null) + fileButton.focus(); } + + } // WImageDialog diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocationDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocationDialog.java index c3544a901d..9d7f5fe656 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocationDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocationDialog.java @@ -512,6 +512,7 @@ public class WLocationDialog extends Window implements EventListener southPane.appendChild(confirmPanel); addEventListener("onSaveError", this); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } /** * Dynamically add fields to the Location dialog box @@ -756,8 +757,7 @@ public class WLocationDialog extends Window implements EventListener } else if (event.getTarget() == confirmPanel.getButton(ConfirmPanel.A_CANCEL)) { - m_change = false; - this.dispose(); + onCancel(); } else if (toLink.equals(event.getTarget())) { @@ -930,6 +930,11 @@ public class WLocationDialog extends Window implements EventListener } } + private void onCancel() { + m_change = false; + this.dispose(); + } + // LCO - address 1, region and city required private String validate_OK() { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocatorDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocatorDialog.java index 918f17580f..ca2fbf19e9 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocatorDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WLocatorDialog.java @@ -300,6 +300,7 @@ public class WLocatorDialog extends Window implements EventListener ZKUpdateUtil.setCSSWidth(this); }); } + addEventListener(Events.ON_CANCEL, e -> onCancel()); } private void initLocator() @@ -677,8 +678,7 @@ public class WLocatorDialog extends Window implements EventListener if (event.getTarget() == confirmPanel.getButton(ConfirmPanel.A_CANCEL)) { - m_change = false; - this.detach(); + onCancel(); } else if (event.getTarget() == confirmPanel.getButton(ConfirmPanel.A_OK)) { @@ -695,4 +695,9 @@ public class WLocatorDialog extends Window implements EventListener && (event.getTarget() == lstWarehouse || event.getTarget() == txtAisleX || event.getTarget() == txtBinY || event.getTarget() == txtLevelZ)) createValue(); } + + private void onCancel() { + m_change = false; + this.detach(); + } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java index f28e23a22d..b43a5b9722 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java @@ -211,6 +211,7 @@ public class WMediaDialog extends Window implements EventListener confirmPanel.appendChild(bOk); confirmPanel.appendChild(bCancel); confirmPanel.setStyle("float: right;"); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } private void afterPageAttached() { @@ -316,8 +317,7 @@ public class WMediaDialog extends Window implements EventListener else if (e.getTarget() == bCancel) { - m_cancel = true; - dispose(); + onCancel(); } // clear data @@ -341,6 +341,11 @@ public class WMediaDialog extends Window implements EventListener processUploadMedia(ue.getMedia()); } } // onEvent + + private void onCancel() { + m_cancel = true; + dispose(); + } private void processUploadMedia(Media media) { if (media == null) @@ -385,6 +390,10 @@ public class WMediaDialog extends Window implements EventListener public Object getData() { return m_data; } - - + + @Override + public void focus() { + super.focus(); + bLoad.focus(); + } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java index e848f16025..fc10402195 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java @@ -235,6 +235,7 @@ public class WPAttributeDialog extends Window implements EventListener centerLayout.setOddRowSclass("even"); // confirmPanel.addActionListener(Events.ON_CLICK, this); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } // init /** @@ -808,10 +809,7 @@ public class WPAttributeDialog extends Window implements EventListener // Cancel else if (e.getTarget().getId().equals("Cancel")) { - m_changed = false; - m_M_AttributeSetInstance_ID = 0; - m_M_Locator_ID = 0; - dispose(); + onCancel(); } // Zoom M_Lot else if (e.getTarget() == mZoom) @@ -822,6 +820,13 @@ public class WPAttributeDialog extends Window implements EventListener log.log(Level.SEVERE, "not found - " + e); } // actionPerformed + private void onCancel() { + m_changed = false; + m_M_AttributeSetInstance_ID = 0; + m_M_Locator_ID = 0; + dispose(); + } + private void cmd_existingCombo() { ListItem pp = existingCombo.getSelectedItem(); if (pp != null && (Integer)pp.getValue() != -1) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeInstance.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeInstance.java index 65b877065a..6326425cd8 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeInstance.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeInstance.java @@ -169,6 +169,7 @@ public class WPAttributeInstance extends Window implements EventListener south.setParent(mainLayout); south.appendChild(confirmPanel); confirmPanel.addActionListener(this); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } // jbInit /** Table Column Layout Info */ @@ -309,9 +310,7 @@ public class WPAttributeInstance extends Window implements EventListener detach(); else if (e.getTarget().getId().equals("Cancel")) { - m_M_AttributeSetInstance_ID = -1; - m_M_AttributeSetInstanceName = null; - detach(); + onCancel(); } else if (e.getTarget() == showAll) { @@ -322,6 +321,12 @@ public class WPAttributeInstance extends Window implements EventListener enableButtons(); } } // actionPerformed + + private void onCancel() { + m_M_AttributeSetInstance_ID = -1; + m_M_AttributeSetInstanceName = null; + detach(); + } /** * Enable/Set Buttons and set ID diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPostIt.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPostIt.java index c148d18800..01b85aadcf 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPostIt.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPostIt.java @@ -168,6 +168,7 @@ public class WPostIt extends Window implements EventListener{ } tabbox.addEventListener(Events.ON_SELECT, this); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } /** @@ -175,7 +176,7 @@ public class WPostIt extends Window implements EventListener{ */ public void onEvent(Event event) throws Exception { if (event.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) { - detach(); + onCancel(); } else if (event.getTarget().getId().equals(ConfirmPanel.A_OK)) { if (editable) { m_postIt.setText(textBox.getText()); @@ -201,6 +202,10 @@ public class WPostIt extends Window implements EventListener{ } } + private void onCancel() { + detach(); + } + private void updateStatus(int newLength) { if (status != null && maxSize > 0) { StringBuffer msg = new StringBuffer(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordInfo.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordInfo.java index 79978a935c..eb56f61344 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordInfo.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordInfo.java @@ -253,6 +253,7 @@ public class WRecordInfo extends Window implements EventListener hbox.appendChild(confirmPanel); confirmPanel.addActionListener(Events.ON_CLICK, this); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } // jbInit @@ -541,6 +542,11 @@ public class WRecordInfo extends Window implements EventListener public void onEvent(Event event) throws Exception { + onCancel(); + } + + + private void onCancel() { this.detach(); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WReportExportDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WReportExportDialog.java index cb24d9786f..8ea5716ce8 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WReportExportDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WReportExportDialog.java @@ -40,6 +40,7 @@ import org.compiere.util.Msg; import org.zkoss.util.media.AMedia; 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.Div; import org.zkoss.zul.Filedownload; import org.zkoss.zul.Hbox; @@ -119,16 +120,21 @@ public class WReportExportDialog extends Window implements EventListener vb.appendChild(confirmPanel); LayoutUtils.addSclass("dialog-footer", confirmPanel); confirmPanel.addActionListener(this); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } @Override public void onEvent(Event event) throws Exception { if(event.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) - onClose(); + onCancel(); else if(event.getTarget().getId().equals(ConfirmPanel.A_OK)) exportFile(); } + private void onCancel() { + onClose(); + } + private void exportFile() { try diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WReportUploadDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WReportUploadDialog.java index 395ff0bb39..a09c527aed 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WReportUploadDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WReportUploadDialog.java @@ -152,14 +152,14 @@ public class WReportUploadDialog extends Window implements EventListener LayoutUtils.addSclass("dialog-footer", confirmPanel); confirmPanel.addActionListener(this); - addEventListener(Events.ON_CANCEL, e -> onClose()); + addEventListener(Events.ON_CANCEL, e -> onCancel()); this.setVflex("min"); } @Override public void onEvent(Event event) throws Exception { if(event.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) { - onClose(); + onCancel(); } else if(event.getTarget().getId().equals(ConfirmPanel.A_OK)) { uploadFile(); } else if (event.getTarget() == cboType) { @@ -167,6 +167,10 @@ public class WReportUploadDialog extends Window implements EventListener } } + private void onCancel() { + onClose(); + } + private void onOutputTypeSelectionChanged() { Listitem li = cboType.getSelectedItem(); String ext = li.getValue().toString(); @@ -302,4 +306,13 @@ public class WReportUploadDialog extends Window implements EventListener FDialog.error(-1, this, "Error", e.getMessage(), this.getTitle()); } } + + @Override + public void focus() { + super.focus(); + if (cboType != null) + cboType.focus(); + } + + } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTextEditorDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTextEditorDialog.java index bdea6dbe55..f8ef8efb38 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTextEditorDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WTextEditorDialog.java @@ -185,6 +185,7 @@ public class WTextEditorDialog extends Window implements EventListener{ setClosable(true); setSizable(true); setMaximizable(true); + addEventListener(Events.ON_CANCEL, e -> onCancel()); } private void createEditor(org.zkoss.zul.Tabpanel tabPanel) { @@ -213,8 +214,7 @@ public class WTextEditorDialog extends Window implements EventListener{ */ public void onEvent(Event event) throws Exception { if (event.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) { - cancelled = true; - detach(); + onCancel(); } else if (event.getTarget().getId().equals(ConfirmPanel.A_OK)) { if (editable) { if (tabbox.getSelectedIndex() == 0) { @@ -249,6 +249,11 @@ public class WTextEditorDialog extends Window implements EventListener{ } } } + + private void onCancel() { + cancelled = true; + detach(); + } private void updateStatus(int newLength) { if (status != null && maxSize > 0) {