From dc9b7d5829ce7d6269e387d1cd4791837b703953 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 7 Mar 2011 10:59:31 -0500 Subject: [PATCH] Improvements for zkwebui process parameter panel: - show mandatory fields similar to windows (marked with a red * at the end) - validate mandatory fields, inform the user and allow the user to fill them without cancelling the report/process (the user is notified immediately no need to push Parameter button to go back and fill the mandatory parameters - similar as swing client behaves) --- .../adempiere/webui/apps/ProcessDialog.java | 5 ++- .../webui/apps/ProcessParameterPanel.java | 35 ++++++++++++++++--- 2 files changed, 34 insertions(+), 6 deletions(-) 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 b8c9f2ec48..08759f89be 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 @@ -319,8 +319,11 @@ public class ProcessDialog extends Window implements EventListener//, ASyncProce if (component instanceof Button) { Button element = (Button)component; if ("Ok".equalsIgnoreCase(element.getId())) { - if (isParameterPage) + if (isParameterPage) { + if (!parameterPanel.validateParameters()) + return; this.startProcess(); + } else restart(); } else if ("Cancel".equalsIgnoreCase(element.getId())) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessParameterPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessParameterPanel.java index e5227ec775..ee9a9e55df 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessParameterPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/ProcessParameterPanel.java @@ -45,6 +45,7 @@ import org.compiere.process.ProcessInfo; import org.compiere.util.CLogger; import org.compiere.util.DB; import org.compiere.util.Env; +import org.zkoss.zul.Div; import org.zkoss.zul.Hbox; import org.zkoss.zul.Label; @@ -56,9 +57,12 @@ import org.zkoss.zul.Label; * @author Low Heng Sin * @version 2006-12-01 */ -@SuppressWarnings("serial") public class ProcessParameterPanel extends Panel implements ValueChangeListener, IProcessParameter { + /** + * + */ + private static final long serialVersionUID = 7163263872945366389L; private String width; /** @@ -285,7 +289,14 @@ public class ProcessParameterPanel extends Panel implements // m_wEditors.add(editor); // add to Editors - row.appendChild(editor.getLabel().rightAlign()); + Div div = new Div(); + div.setAlign("right"); + org.adempiere.webui.component.Label label = editor.getLabel(); + div.appendChild(label); + if (label.getDecorator() != null) + div.appendChild(label.getDecorator()); + row.appendChild(div); + // if (voF.isRange) { Hbox box = new Hbox(); @@ -326,11 +337,11 @@ public class ProcessParameterPanel extends Panel implements } // createField /** - * Save Parameter values + * Validate Parameter values * - * @return true if parameters saved + * @return true if parameters are valid */ - public boolean saveParameters() { + public boolean validateParameters() { log.config(""); /** @@ -377,6 +388,20 @@ public class ProcessParameterPanel extends Panel implements return false; } + return true; + } // validateParameters + + /** + * Save Parameter values + * + * @return true if parameters saved + */ + public boolean saveParameters() { + log.config(""); + + if (!validateParameters()) + return false; + /********************************************************************** * Save Now */