IDEMPIERE-2389:Print format and Report type selection on process dialog
remove duplicate code (IDEMPIERE-1882) remain some issue relate UI
This commit is contained in:
parent
5b56659483
commit
57c729ea5b
|
@ -2428,7 +2428,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
|
||||||
|
|
||||||
final ProcessModalDialog dialog = new ProcessModalDialog(AbstractADWindowContent.this, getWindowNo(), AD_Process_ID,table_ID, record_ID, true);
|
final ProcessModalDialog dialog = new ProcessModalDialog(AbstractADWindowContent.this, getWindowNo(), AD_Process_ID,table_ID, record_ID, true);
|
||||||
if (dialog.isValid()) {
|
if (dialog.isValid()) {
|
||||||
dialog.setWidth("500px");
|
//dialog.setWidth("500px");
|
||||||
dialog.setBorder("normal");
|
dialog.setBorder("normal");
|
||||||
getComponent().getParent().appendChild(dialog);
|
getComponent().getParent().appendChild(dialog);
|
||||||
showBusyMask(dialog);
|
showBusyMask(dialog);
|
||||||
|
@ -2936,7 +2936,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
|
||||||
|
|
||||||
if (dialog.isValid())
|
if (dialog.isValid())
|
||||||
{
|
{
|
||||||
dialog.setWidth("500px");
|
//dialog.setWidth("500px");
|
||||||
dialog.setBorder("normal");
|
dialog.setBorder("normal");
|
||||||
getComponent().getParent().appendChild(dialog);
|
getComponent().getParent().appendChild(dialog);
|
||||||
showBusyMask(dialog);
|
showBusyMask(dialog);
|
||||||
|
|
|
@ -29,24 +29,28 @@ import org.adempiere.util.Callback;
|
||||||
import org.adempiere.util.ContextRunnable;
|
import org.adempiere.util.ContextRunnable;
|
||||||
import org.adempiere.util.IProcessUI;
|
import org.adempiere.util.IProcessUI;
|
||||||
import org.adempiere.util.ServerContext;
|
import org.adempiere.util.ServerContext;
|
||||||
|
import org.adempiere.webui.component.Button;
|
||||||
import org.adempiere.webui.component.Checkbox;
|
import org.adempiere.webui.component.Checkbox;
|
||||||
import org.adempiere.webui.component.Column;
|
import org.adempiere.webui.component.Column;
|
||||||
import org.adempiere.webui.component.Columns;
|
import org.adempiere.webui.component.Columns;
|
||||||
import org.adempiere.webui.component.ComboItem;
|
import org.adempiere.webui.component.ComboItem;
|
||||||
import org.adempiere.webui.component.Combobox;
|
import org.adempiere.webui.component.Combobox;
|
||||||
|
import org.adempiere.webui.component.ConfirmPanel;
|
||||||
import org.adempiere.webui.component.Grid;
|
import org.adempiere.webui.component.Grid;
|
||||||
import org.adempiere.webui.component.GridFactory;
|
import org.adempiere.webui.component.GridFactory;
|
||||||
import org.adempiere.webui.component.Label;
|
import org.adempiere.webui.component.Label;
|
||||||
import org.adempiere.webui.component.Panel;
|
import org.adempiere.webui.component.Listbox;
|
||||||
import org.adempiere.webui.component.Row;
|
import org.adempiere.webui.component.Row;
|
||||||
import org.adempiere.webui.component.Rows;
|
import org.adempiere.webui.component.Rows;
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.editor.WTableDirEditor;
|
import org.adempiere.webui.editor.WTableDirEditor;
|
||||||
import org.adempiere.webui.event.DialogEvents;
|
import org.adempiere.webui.event.DialogEvents;
|
||||||
|
import org.adempiere.webui.factory.ButtonFactory;
|
||||||
import org.adempiere.webui.process.WProcessInfo;
|
import org.adempiere.webui.process.WProcessInfo;
|
||||||
import org.adempiere.webui.window.FDialog;
|
import org.adempiere.webui.window.FDialog;
|
||||||
import org.adempiere.webui.window.MultiFileDownloadDialog;
|
import org.adempiere.webui.window.MultiFileDownloadDialog;
|
||||||
import org.compiere.Adempiere;
|
import org.compiere.Adempiere;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
import org.compiere.model.MAttachment;
|
import org.compiere.model.MAttachment;
|
||||||
import org.compiere.model.MClient;
|
import org.compiere.model.MClient;
|
||||||
import org.compiere.model.MLookup;
|
import org.compiere.model.MLookup;
|
||||||
|
@ -54,29 +58,41 @@ import org.compiere.model.MLookupFactory;
|
||||||
import org.compiere.model.MLookupInfo;
|
import org.compiere.model.MLookupInfo;
|
||||||
import org.compiere.model.MNote;
|
import org.compiere.model.MNote;
|
||||||
import org.compiere.model.MPInstance;
|
import org.compiere.model.MPInstance;
|
||||||
|
import org.compiere.model.MPInstancePara;
|
||||||
import org.compiere.model.MProcess;
|
import org.compiere.model.MProcess;
|
||||||
|
import org.compiere.model.MRole;
|
||||||
import org.compiere.model.MSysConfig;
|
import org.compiere.model.MSysConfig;
|
||||||
|
import org.compiere.model.MTable;
|
||||||
import org.compiere.model.MUser;
|
import org.compiere.model.MUser;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
|
import org.compiere.model.X_AD_ReportView;
|
||||||
|
import org.compiere.print.MPrintFormat;
|
||||||
import org.compiere.process.ProcessInfo;
|
import org.compiere.process.ProcessInfo;
|
||||||
import org.compiere.process.ProcessInfoUtil;
|
import org.compiere.process.ProcessInfoUtil;
|
||||||
import org.compiere.process.ServerProcessCtl;
|
import org.compiere.process.ServerProcessCtl;
|
||||||
|
import org.compiere.util.AdempiereSystemError;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
|
import org.compiere.util.DisplayType;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.Trx;
|
import org.compiere.util.Trx;
|
||||||
|
import org.compiere.util.Util;
|
||||||
import org.zkoss.zk.au.out.AuEcho;
|
import org.zkoss.zk.au.out.AuEcho;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.Desktop;
|
import org.zkoss.zk.ui.Desktop;
|
||||||
import org.zkoss.zk.ui.Executions;
|
import org.zkoss.zk.ui.Executions;
|
||||||
|
import org.zkoss.zk.ui.HtmlBasedComponent;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
import org.zkoss.zk.ui.util.Clients;
|
import org.zkoss.zk.ui.util.Clients;
|
||||||
|
import org.zkoss.zul.Comboitem;
|
||||||
import org.zkoss.zul.Div;
|
import org.zkoss.zul.Div;
|
||||||
|
import org.zkoss.zul.Hlayout;
|
||||||
import org.zkoss.zul.Html;
|
import org.zkoss.zul.Html;
|
||||||
import org.zkoss.zul.Space;
|
import org.zkoss.zul.Space;
|
||||||
|
import org.zkoss.zul.Vlayout;
|
||||||
|
|
||||||
public abstract class AbstractProcessDialog extends Window implements IProcessUI, EventListener<Event>
|
public abstract class AbstractProcessDialog extends Window implements IProcessUI, EventListener<Event>
|
||||||
{
|
{
|
||||||
|
@ -97,7 +113,6 @@ public abstract class AbstractProcessDialog extends Window implements IProcessUI
|
||||||
private boolean m_disposeOnComplete;
|
private boolean m_disposeOnComplete;
|
||||||
|
|
||||||
private Html message = null;
|
private Html message = null;
|
||||||
private Panel centerPanel = null;
|
|
||||||
|
|
||||||
private ProcessParameterPanel parameterPanel = null;
|
private ProcessParameterPanel parameterPanel = null;
|
||||||
private Checkbox runAsJobField = null;
|
private Checkbox runAsJobField = null;
|
||||||
|
@ -121,10 +136,21 @@ public abstract class AbstractProcessDialog extends Window implements IProcessUI
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
message = new Html();
|
message = new Html();
|
||||||
centerPanel = new Panel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean init(Properties ctx, int WindowNo, int AD_Process_ID, ProcessInfo pi, String innerWidth, boolean autoStart, boolean isDisposeOnComplete)
|
/**
|
||||||
|
* layout as below
|
||||||
|
*
|
||||||
|
* @param ctx
|
||||||
|
* @param WindowNo
|
||||||
|
* @param AD_Process_ID
|
||||||
|
* @param pi
|
||||||
|
* @param innerWidth
|
||||||
|
* @param autoStart
|
||||||
|
* @param isDisposeOnComplete
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
protected boolean init(Properties ctx, int WindowNo, int AD_Process_ID, ProcessInfo pi, boolean autoStart, boolean isDisposeOnComplete)
|
||||||
{
|
{
|
||||||
m_ctx = ctx;
|
m_ctx = ctx;
|
||||||
m_WindowNo = WindowNo;
|
m_WindowNo = WindowNo;
|
||||||
|
@ -194,11 +220,9 @@ public abstract class AbstractProcessDialog extends Window implements IProcessUI
|
||||||
m_pi.setAD_User_ID (Env.getAD_User_ID(Env.getCtx()));
|
m_pi.setAD_User_ID (Env.getAD_User_ID(Env.getCtx()));
|
||||||
m_pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx()));
|
m_pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx()));
|
||||||
m_pi.setTitle(m_Name);
|
m_pi.setTitle(m_Name);
|
||||||
parameterPanel = new ProcessParameterPanel(m_WindowNo, m_pi, innerWidth);
|
|
||||||
centerPanel.getChildren().clear();
|
parameterPanel = new ProcessParameterPanel(m_WindowNo, m_pi);
|
||||||
if ( parameterPanel.init() ) {
|
if ( !parameterPanel.init() ) {
|
||||||
centerPanel.appendChild(parameterPanel);
|
|
||||||
} else {
|
|
||||||
if (m_ShowHelp != null && m_ShowHelp.equals("N"))
|
if (m_ShowHelp != null && m_ShowHelp.equals("N"))
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|
||||||
|
@ -216,11 +240,83 @@ public abstract class AbstractProcessDialog extends Window implements IProcessUI
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
layout();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected HtmlBasedComponent topParameterLayout;
|
||||||
|
protected HtmlBasedComponent bottomParameterLayout;
|
||||||
|
protected HtmlBasedComponent mainParameterLayout;
|
||||||
|
private WTableDirEditor fPrintFormat;
|
||||||
|
private Listbox freportType;
|
||||||
|
private Checkbox chbIsSummary;
|
||||||
|
protected Button bOK;
|
||||||
|
protected Button bCancel;
|
||||||
|
protected Combobox fSavedName=new Combobox();
|
||||||
|
private Button bSave=ButtonFactory.createNamedButton("Save");
|
||||||
|
private Button bDelete=ButtonFactory.createNamedButton("Delete");
|
||||||
|
private List<MPInstance> savedParams;
|
||||||
|
private Label lSaved;
|
||||||
|
|
||||||
|
protected void layout(){
|
||||||
|
overalLayout();
|
||||||
|
topLayout(topParameterLayout);
|
||||||
|
bottomLayout(bottomParameterLayout);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void overalLayout(){
|
||||||
|
mainParameterLayout = new Div();
|
||||||
|
mainParameterLayout.setSclass("main-parameter-layout");
|
||||||
|
this.appendChild(mainParameterLayout);
|
||||||
|
// header and input component
|
||||||
|
topParameterLayout = new Vlayout();
|
||||||
|
topParameterLayout.setSclass("top-parameter-layout");
|
||||||
|
mainParameterLayout.appendChild(topParameterLayout);
|
||||||
|
topParameterLayout.setVflex("true");
|
||||||
|
// button and advanced control
|
||||||
|
bottomParameterLayout = new Vlayout();
|
||||||
|
bottomParameterLayout.setSclass("bottom-parameter-layout");
|
||||||
|
mainParameterLayout.appendChild(bottomParameterLayout);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void topLayout(HtmlBasedComponent topParameterLayout) {
|
||||||
|
// message
|
||||||
|
setHeadMessage (topParameterLayout, getMessageText().toString());
|
||||||
|
|
||||||
|
// input component
|
||||||
|
HtmlBasedComponent inputParameterLayout = new Div();
|
||||||
|
inputParameterLayout.setSclass("input-paramenter-layout");
|
||||||
|
topParameterLayout.appendChild(inputParameterLayout);
|
||||||
|
|
||||||
|
// input parameter content
|
||||||
|
inputParameterLayout(inputParameterLayout);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected HtmlBasedComponent setHeadMessage (HtmlBasedComponent parent, String contentMsg){
|
||||||
|
// message
|
||||||
|
HtmlBasedComponent messageParameterLayout = new Vlayout();
|
||||||
|
parent.appendChild(messageParameterLayout);
|
||||||
|
messageParameterLayout.setSclass("message-parameter-layout");
|
||||||
|
|
||||||
|
// header content
|
||||||
|
HtmlBasedComponent messageDiv = new Div();
|
||||||
|
Html content = new Html(contentMsg);
|
||||||
|
messageDiv.appendChild(content);
|
||||||
|
messageDiv.setSclass("message-paramenter");
|
||||||
|
messageParameterLayout.appendChild(messageDiv);
|
||||||
|
|
||||||
|
return messageParameterLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void inputParameterLayout (HtmlBasedComponent parent) {
|
||||||
|
parent.appendChild(parameterPanel);
|
||||||
|
|
||||||
if (MSysConfig.getBooleanValue(MSysConfig.BACKGROUND_JOB_ALLOWED, false))
|
if (MSysConfig.getBooleanValue(MSysConfig.BACKGROUND_JOB_ALLOWED, false))
|
||||||
{
|
{
|
||||||
Grid grid = GridFactory.newGridLayout();
|
Grid grid = GridFactory.newGridLayout();
|
||||||
centerPanel.appendChild(grid);
|
parent.appendChild(grid);
|
||||||
grid.setInnerWidth(innerWidth);
|
|
||||||
|
|
||||||
Columns columns = new Columns();
|
Columns columns = new Columns();
|
||||||
grid.appendChild(columns);
|
grid.appendChild(columns);
|
||||||
|
@ -270,8 +366,195 @@ public abstract class AbstractProcessDialog extends Window implements IProcessUI
|
||||||
runAsJobField.setChecked(MSysConfig.getBooleanValue(MSysConfig.BACKGROUND_JOB_BY_DEFAULT, false));
|
runAsJobField.setChecked(MSysConfig.getBooleanValue(MSysConfig.BACKGROUND_JOB_BY_DEFAULT, false));
|
||||||
notificationTypeField.getComponent().getParent().setVisible(runAsJobField.isChecked());
|
notificationTypeField.getComponent().getParent().setVisible(runAsJobField.isChecked());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
protected void bottomLayout(HtmlBasedComponent bottomParameterLayout) {
|
||||||
|
reportOptionLayout(bottomParameterLayout);
|
||||||
|
|
||||||
|
HtmlBasedComponent bottomContainer = new Div ();
|
||||||
|
bottomContainer.setSclass("bottom-container");
|
||||||
|
bottomParameterLayout.appendChild(bottomContainer);
|
||||||
|
|
||||||
|
MProcess process = MProcess.get(Env.getCtx(), m_AD_Process_ID);
|
||||||
|
int count = process.getParameters().length;
|
||||||
|
if (count > 0)
|
||||||
|
savePrameterLayout (bottomContainer);
|
||||||
|
|
||||||
|
buttonLayout (bottomContainer);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void reportOptionLayout(HtmlBasedComponent bottomParameterLayout) {
|
||||||
|
MProcess pr = new MProcess(m_ctx, m_AD_Process_ID, null);
|
||||||
|
boolean isReport = pr.isReport() && pr.getJasperReport() == null;
|
||||||
|
if (!isReport)
|
||||||
|
return;//if not a report not need show this pannel
|
||||||
|
|
||||||
|
// option control
|
||||||
|
HtmlBasedComponent reportOptionLayout = new Hlayout();
|
||||||
|
reportOptionLayout.setSclass("report-option-container");
|
||||||
|
bottomParameterLayout.appendChild(reportOptionLayout);
|
||||||
|
|
||||||
|
freportType = new Listbox();
|
||||||
|
freportType.setSclass("option-input-parameter");
|
||||||
|
chbIsSummary = new Checkbox();
|
||||||
|
chbIsSummary.setSclass("option-input-parameter");
|
||||||
|
Label lPrintFormat = new Label(Msg.translate(Env.getCtx(), "AD_PrintFormat_ID"));
|
||||||
|
lPrintFormat.setSclass("option-input-parameter");
|
||||||
|
Label lreportType = new Label(Msg.translate(Env.getCtx(), "view.report"));
|
||||||
|
lreportType.setSclass("option-input-parameter");
|
||||||
|
Label lIsSummary = new Label(Msg.translate(Env.getCtx(), "Summary"));
|
||||||
|
lIsSummary.setSclass("option-input-parameter");
|
||||||
|
|
||||||
|
listPrintFormat();
|
||||||
|
|
||||||
|
reportOptionLayout.appendChild(lPrintFormat);
|
||||||
|
reportOptionLayout.appendChild(fPrintFormat.getComponent());
|
||||||
|
fPrintFormat.getComponent().setSclass("option-input-parameter");
|
||||||
|
reportOptionLayout.appendChild(lreportType);
|
||||||
|
reportOptionLayout.appendChild(freportType);
|
||||||
|
reportOptionLayout.appendChild(lIsSummary);
|
||||||
|
reportOptionLayout.appendChild(chbIsSummary);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void savePrameterLayout(HtmlBasedComponent bottomParameterLayout) {
|
||||||
|
HtmlBasedComponent savePrameterLayout = new Div();
|
||||||
|
savePrameterLayout.setSclass("save-parameter-container");
|
||||||
|
bottomParameterLayout.appendChild(savePrameterLayout);
|
||||||
|
|
||||||
|
lSaved = new Label(Msg.getMsg(Env.getCtx(), "SavedParameter"));
|
||||||
|
savePrameterLayout.appendChild(lSaved);
|
||||||
|
fSavedName = new Combobox();
|
||||||
|
fSavedName.addEventListener(Events.ON_CHANGE, this);
|
||||||
|
savePrameterLayout.appendChild(fSavedName);
|
||||||
|
|
||||||
|
bSave.setEnabled(false);
|
||||||
|
bSave.addActionListener(this);
|
||||||
|
savePrameterLayout.appendChild(bSave);
|
||||||
|
|
||||||
|
bDelete.setEnabled(false);
|
||||||
|
bDelete.addActionListener(this);
|
||||||
|
savePrameterLayout.appendChild(bDelete);
|
||||||
|
|
||||||
|
querySaved();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void querySaved()
|
||||||
|
{
|
||||||
|
//user query
|
||||||
|
savedParams = MPInstance.get(Env.getCtx(), getAD_Process_ID(), Env.getContextAsInt(Env.getCtx(), "#AD_User_ID"));
|
||||||
|
fSavedName.removeAllItems();
|
||||||
|
for (MPInstance instance : savedParams)
|
||||||
|
{
|
||||||
|
String queries = instance.get_ValueAsString("Name");
|
||||||
|
fSavedName.appendItem(queries);
|
||||||
|
}
|
||||||
|
|
||||||
|
fSavedName.setValue("");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void buttonLayout (HtmlBasedComponent bottomParameterLayout) {
|
||||||
|
HtmlBasedComponent confParaPanel =new Div();
|
||||||
|
confParaPanel.setSclass("button-container");
|
||||||
|
bottomParameterLayout.appendChild(confParaPanel);
|
||||||
|
|
||||||
|
// Invert - Unify OK/Cancel IDEMPIERE-77
|
||||||
|
bOK = ButtonFactory.createNamedButton(ConfirmPanel.A_OK, true, true);
|
||||||
|
bOK.setId("Ok");
|
||||||
|
bOK.addEventListener(Events.ON_CLICK, this);
|
||||||
|
confParaPanel.appendChild(bOK);
|
||||||
|
|
||||||
|
bCancel = ButtonFactory.createNamedButton(ConfirmPanel.A_CANCEL, true, true);
|
||||||
|
bCancel.setId("Cancel");
|
||||||
|
bCancel.addEventListener(Events.ON_CLICK, this);
|
||||||
|
confParaPanel.appendChild(bCancel);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void listPrintFormat()
|
||||||
|
{
|
||||||
|
int AD_Column_ID = 0;
|
||||||
|
boolean m_isCanExport = false;
|
||||||
|
|
||||||
|
MProcess pr = new MProcess(m_ctx, m_AD_Process_ID, null);
|
||||||
|
int table_ID = 0;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (pr.getAD_ReportView_ID() > 0)
|
||||||
|
{
|
||||||
|
X_AD_ReportView m_Reportview = new X_AD_ReportView(m_ctx, pr.getAD_ReportView_ID(), null);
|
||||||
|
table_ID = m_Reportview.getAD_Table_ID();
|
||||||
|
}
|
||||||
|
else if (pr.getAD_PrintFormat_ID() > 0)
|
||||||
|
{
|
||||||
|
MPrintFormat format = new MPrintFormat(m_ctx, pr.getAD_PrintFormat_ID(), null);
|
||||||
|
table_ID = format.getAD_Table_ID();
|
||||||
|
}
|
||||||
|
String valCode = null;
|
||||||
|
if (table_ID > 0)
|
||||||
|
{
|
||||||
|
valCode = "AD_PrintFormat.AD_Table_ID=" + table_ID;
|
||||||
|
m_isCanExport = MRole.getDefault().isCanExport(table_ID);
|
||||||
|
}
|
||||||
|
Lookup lookup = MLookupFactory.get (Env.getCtx(), m_WindowNo,
|
||||||
|
AD_Column_ID, DisplayType.TableDir,
|
||||||
|
Env.getLanguage(Env.getCtx()), "AD_PrintFormat_ID", 0, false,
|
||||||
|
valCode);
|
||||||
|
|
||||||
|
fPrintFormat = new WTableDirEditor("AD_PrintFormat_ID", false, false, true, lookup);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.log(Level.SEVERE, e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
freportType.removeAllItems();
|
||||||
|
freportType.setMold("select");
|
||||||
|
freportType.appendItem("HTML", "HTML");
|
||||||
|
|
||||||
|
if (m_isCanExport)
|
||||||
|
{
|
||||||
|
freportType.appendItem("PDF", "PDF");
|
||||||
|
freportType.appendItem("Excel", "XLS");
|
||||||
|
}
|
||||||
|
freportType.setSelectedIndex(0);
|
||||||
|
|
||||||
|
String where = "AD_Process_ID = ? AND AD_User_ID = ? AND Name IS NULL ";
|
||||||
|
|
||||||
|
MPInstance lastrun = MTable.get(Env.getCtx(), MPInstance.Table_Name).createQuery(where, null).setOnlyActiveRecords(true).setClient_ID()
|
||||||
|
.setParameters(m_AD_Process_ID, Env.getContextAsInt(Env.getCtx(), "#AD_User_ID")).setOrderBy("Created DESC").first();
|
||||||
|
|
||||||
|
setReportTypeAndPrintFormat(lastrun);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setReportTypeAndPrintFormat(MPInstance instance)
|
||||||
|
{
|
||||||
|
if (fPrintFormat != null && instance != null) {
|
||||||
|
fPrintFormat.setValue((Integer) instance.getAD_PrintFormat_ID());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (freportType != null && instance != null) {
|
||||||
|
if (instance.getReportType() == null)
|
||||||
|
freportType.setValue("HTML");
|
||||||
|
else
|
||||||
|
freportType.setValue(instance.getReportType());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (instance != null)
|
||||||
|
chbIsSummary.setSelected(instance.getIsSummary());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void saveReportOption (){
|
||||||
|
if(freportType.getSelectedItem() != null) {
|
||||||
|
getProcessInfo().setReportType(freportType.getSelectedItem().getValue().toString());
|
||||||
|
}
|
||||||
|
if(fPrintFormat != null && fPrintFormat.getValue() != null) {
|
||||||
|
MPrintFormat format = new MPrintFormat(m_ctx, (Integer) fPrintFormat.getValue(), null);
|
||||||
|
if (format != null) {
|
||||||
|
getProcessInfo().setSerializableObject(format);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getProcessInfo().setIsSummary(chbIsSummary.isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void autoStart()
|
protected void autoStart()
|
||||||
|
@ -285,12 +568,121 @@ public abstract class AbstractProcessDialog extends Window implements IProcessUI
|
||||||
if (component == runAsJobField && event.getName().equals(Events.ON_CHECK))
|
if (component == runAsJobField && event.getName().equals(Events.ON_CHECK))
|
||||||
{
|
{
|
||||||
notificationTypeField.getComponent().getParent().setVisible(runAsJobField.isChecked());
|
notificationTypeField.getComponent().getParent().setVisible(runAsJobField.isChecked());
|
||||||
centerPanel.invalidate();
|
|
||||||
}
|
}
|
||||||
else if (event.getName().equals(ON_COMPLETE))
|
else if (event.getName().equals(ON_COMPLETE))
|
||||||
onComplete();
|
onComplete();
|
||||||
else if (event.getName().equals(ON_STATUS_UPDATE))
|
else if (event.getName().equals(ON_STATUS_UPDATE))
|
||||||
onStatusUpdate(event);
|
onStatusUpdate(event);
|
||||||
|
else if (event.getTarget().equals(bSave) || event.getTarget().equals(bDelete) || event.getTarget().equals(fSavedName)){
|
||||||
|
String saveName = null;
|
||||||
|
boolean lastRun = false;
|
||||||
|
if (fSavedName.getRawText() != null) {
|
||||||
|
saveName = fSavedName.getRawText();
|
||||||
|
lastRun = ("** " + Msg.getMsg(Env.getCtx(), "LastRun") + " **")
|
||||||
|
.equals(saveName);
|
||||||
|
}
|
||||||
|
if (bSave.equals(event.getTarget()))
|
||||||
|
updateSaveParameter(saveName);
|
||||||
|
else if (bDelete.equals(event.getTarget()))
|
||||||
|
deleteSaveParameter(saveName);
|
||||||
|
else
|
||||||
|
chooseSaveParameter(saveName, lastRun);
|
||||||
|
}else if (event.getTarget().equals(bOK)){
|
||||||
|
saveReportOption();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void updateSaveParameter(String saveName) {
|
||||||
|
// Update existing
|
||||||
|
if (fSavedName.getSelectedIndex() > -1 && savedParams != null) {
|
||||||
|
for (int i = 0; i < savedParams.size(); i++) {
|
||||||
|
if (savedParams.get(i).getName().equals(saveName)) {
|
||||||
|
getProcessInfo().setAD_PInstance_ID(savedParams.get(i)
|
||||||
|
.getAD_PInstance_ID());
|
||||||
|
for (MPInstancePara para : savedParams.get(i)
|
||||||
|
.getParameters()) {
|
||||||
|
para.deleteEx(true);
|
||||||
|
}
|
||||||
|
getParameterPanel().saveParameters();
|
||||||
|
savedParams.get(i).setAD_PrintFormat_ID((Integer)fPrintFormat.getValue());
|
||||||
|
savedParams.get(i).setReportType(freportType.getSelectedItem().getValue().toString());
|
||||||
|
savedParams.get(i).setIsSummary(chbIsSummary.isSelected());
|
||||||
|
savedParams.get(i).saveEx();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// create new
|
||||||
|
else {
|
||||||
|
MPInstance instance = null;
|
||||||
|
try {
|
||||||
|
instance = new MPInstance(Env.getCtx(),
|
||||||
|
getProcessInfo().getAD_Process_ID(), getProcessInfo().getRecord_ID());
|
||||||
|
instance.setName(saveName);
|
||||||
|
instance.setAD_PrintFormat_ID((Integer) fPrintFormat.getValue());
|
||||||
|
instance.setReportType(freportType.getSelectedItem().getValue().toString());
|
||||||
|
instance.setIsSummary(chbIsSummary.isSelected());
|
||||||
|
instance.saveEx();
|
||||||
|
getProcessInfo().setAD_PInstance_ID(instance.getAD_PInstance_ID());
|
||||||
|
// Get Parameters
|
||||||
|
if (getParameterPanel() != null) {
|
||||||
|
if (!getParameterPanel().saveParameters()) {
|
||||||
|
throw new AdempiereSystemError(Msg.getMsg(
|
||||||
|
Env.getCtx(), "SaveParameterError"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
querySaved();
|
||||||
|
fSavedName.setSelectedItem(getComboItem(saveName));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Comboitem getComboItem( String value) {
|
||||||
|
Comboitem item = null;
|
||||||
|
for (int i = 0; i < fSavedName.getItems().size(); i++) {
|
||||||
|
if (fSavedName.getItems().get(i) != null) {
|
||||||
|
item = (Comboitem)fSavedName.getItems().get(i);
|
||||||
|
if (value.equals(item.getLabel().toString())) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void deleteSaveParameter(String saveName) {
|
||||||
|
Object o = fSavedName.getSelectedItem();
|
||||||
|
if (savedParams != null && o != null) {
|
||||||
|
String selected = fSavedName.getSelectedItem().getLabel();
|
||||||
|
for (int i = 0; i < savedParams.size(); i++) {
|
||||||
|
if (savedParams.get(i).getName().equals(selected)) {
|
||||||
|
savedParams.get(i).deleteEx(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
querySaved();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void chooseSaveParameter(String saveName, boolean lastRun) {
|
||||||
|
if (savedParams != null && saveName != null) {
|
||||||
|
for (int i = 0; i < savedParams.size(); i++) {
|
||||||
|
if (savedParams.get(i).getName().equals(saveName)) {
|
||||||
|
loadSavedParams(savedParams.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
boolean enabled = !Util.isEmpty(saveName);
|
||||||
|
bSave.setEnabled(enabled && !lastRun);
|
||||||
|
bDelete.setEnabled(enabled && fSavedName.getSelectedIndex() > -1
|
||||||
|
&& !lastRun);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadSavedParams(MPInstance instance) {
|
||||||
|
getParameterPanel().loadParameters(instance);
|
||||||
|
setReportTypeAndPrintFormat(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void startProcess()
|
protected void startProcess()
|
||||||
|
@ -560,11 +952,6 @@ public abstract class AbstractProcessDialog extends Window implements IProcessUI
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Panel getCenterPanel()
|
|
||||||
{
|
|
||||||
return centerPanel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProcessParameterPanel getParameterPanel()
|
public ProcessParameterPanel getParameterPanel()
|
||||||
{
|
{
|
||||||
return parameterPanel;
|
return parameterPanel;
|
||||||
|
|
|
@ -23,27 +23,14 @@ import java.io.FileOutputStream;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.util.Callback;
|
import org.adempiere.util.Callback;
|
||||||
import org.adempiere.webui.LayoutUtils;
|
import org.adempiere.webui.LayoutUtils;
|
||||||
import org.adempiere.webui.component.Button;
|
|
||||||
import org.adempiere.webui.component.Checkbox;
|
|
||||||
import org.adempiere.webui.component.Combobox;
|
|
||||||
import org.adempiere.webui.component.ConfirmPanel;
|
|
||||||
import org.adempiere.webui.component.DocumentLink;
|
import org.adempiere.webui.component.DocumentLink;
|
||||||
import org.adempiere.webui.component.Grid;
|
|
||||||
import org.adempiere.webui.component.GridFactory;
|
|
||||||
import org.adempiere.webui.component.Listbox;
|
|
||||||
import org.adempiere.webui.component.Mask;
|
import org.adempiere.webui.component.Mask;
|
||||||
import org.adempiere.webui.component.Panel;
|
|
||||||
import org.adempiere.webui.component.Row;
|
|
||||||
import org.adempiere.webui.component.Rows;
|
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.desktop.IDesktop;
|
import org.adempiere.webui.desktop.IDesktop;
|
||||||
import org.adempiere.webui.editor.WTableDirEditor;
|
|
||||||
import org.adempiere.webui.factory.ButtonFactory;
|
|
||||||
import org.adempiere.webui.panel.IHelpContext;
|
import org.adempiere.webui.panel.IHelpContext;
|
||||||
import org.adempiere.webui.part.WindowContainer;
|
import org.adempiere.webui.part.WindowContainer;
|
||||||
import org.adempiere.webui.process.WProcessInfo;
|
import org.adempiere.webui.process.WProcessInfo;
|
||||||
|
@ -51,26 +38,15 @@ import org.adempiere.webui.session.SessionManager;
|
||||||
import org.adempiere.webui.theme.ThemeManager;
|
import org.adempiere.webui.theme.ThemeManager;
|
||||||
import org.adempiere.webui.window.FDialog;
|
import org.adempiere.webui.window.FDialog;
|
||||||
import org.adempiere.webui.window.SimplePDFViewer;
|
import org.adempiere.webui.window.SimplePDFViewer;
|
||||||
import org.compiere.model.Lookup;
|
|
||||||
import org.compiere.model.MLookupFactory;
|
|
||||||
import org.compiere.model.MPInstance;
|
|
||||||
import org.compiere.model.MPInstancePara;
|
|
||||||
import org.compiere.model.MProcess;
|
|
||||||
import org.compiere.model.MRole;
|
|
||||||
import org.compiere.model.MTable;
|
|
||||||
import org.compiere.model.X_AD_CtxHelp;
|
import org.compiere.model.X_AD_CtxHelp;
|
||||||
import org.compiere.model.X_AD_ReportView;
|
|
||||||
import org.compiere.print.MPrintFormat;
|
|
||||||
import org.compiere.print.ReportEngine;
|
import org.compiere.print.ReportEngine;
|
||||||
import org.compiere.process.ProcessInfo;
|
import org.compiere.process.ProcessInfo;
|
||||||
import org.compiere.process.ProcessInfoLog;
|
import org.compiere.process.ProcessInfoLog;
|
||||||
import org.compiere.process.ProcessInfoUtil;
|
import org.compiere.process.ProcessInfoUtil;
|
||||||
import org.compiere.util.AdempiereSystemError;
|
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DisplayType;
|
import org.compiere.util.DisplayType;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.Util;
|
|
||||||
import org.zkoss.zhtml.Table;
|
import org.zkoss.zhtml.Table;
|
||||||
import org.zkoss.zhtml.Td;
|
import org.zkoss.zhtml.Td;
|
||||||
import org.zkoss.zhtml.Text;
|
import org.zkoss.zhtml.Text;
|
||||||
|
@ -83,14 +59,8 @@ import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
import org.zkoss.zk.ui.util.Clients;
|
import org.zkoss.zk.ui.util.Clients;
|
||||||
import org.zkoss.zul.A;
|
import org.zkoss.zul.A;
|
||||||
import org.zkoss.zul.Borderlayout;
|
|
||||||
import org.zkoss.zul.Center;
|
|
||||||
import org.zkoss.zul.Comboitem;
|
|
||||||
import org.zkoss.zul.Div;
|
import org.zkoss.zul.Div;
|
||||||
import org.zkoss.zul.Hbox;
|
|
||||||
import org.zkoss.zul.Label;
|
import org.zkoss.zul.Label;
|
||||||
import org.zkoss.zul.North;
|
|
||||||
import org.zkoss.zul.South;
|
|
||||||
|
|
||||||
import com.lowagie.text.Document;
|
import com.lowagie.text.Document;
|
||||||
import com.lowagie.text.pdf.PdfContentByte;
|
import com.lowagie.text.pdf.PdfContentByte;
|
||||||
|
@ -117,27 +87,16 @@ public class ProcessDialog extends AbstractProcessDialog implements EventListene
|
||||||
|
|
||||||
public static final String ON_INITIAL_FOCUS_EVENT = "onInitialFocus";
|
public static final String ON_INITIAL_FOCUS_EVENT = "onInitialFocus";
|
||||||
|
|
||||||
private static final String MESSAGE_DIV_STYLE = "max-height: 150pt; overflow: auto; margin: 10px;";
|
|
||||||
|
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static CLogger log = CLogger.getCLogger(ProcessDialog.class);
|
private static CLogger log = CLogger.getCLogger(ProcessDialog.class);
|
||||||
//
|
//
|
||||||
|
|
||||||
private Div messageDiv;
|
|
||||||
private Center center;
|
|
||||||
private Table logMessageTable;
|
private Table logMessageTable;
|
||||||
private North north;
|
|
||||||
|
|
||||||
private int[] m_ids = null;
|
private int[] m_ids = null;
|
||||||
private Button bOK = null;
|
|
||||||
|
|
||||||
private boolean isParameterPage = true;
|
private boolean isParameterPage = true;
|
||||||
private Mask mask;
|
private Mask mask;
|
||||||
|
|
||||||
private boolean showLastRun = false;
|
|
||||||
|
|
||||||
private Grid southRowPanel = GridFactory.newGridLayout();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dialog to start a process/report
|
* Dialog to start a process/report
|
||||||
* @param ctx
|
* @param ctx
|
||||||
|
@ -156,17 +115,10 @@ public class ProcessDialog extends AbstractProcessDialog implements EventListene
|
||||||
int WindowNo = SessionManager.getAppDesktop().registerWindow(this);
|
int WindowNo = SessionManager.getAppDesktop().registerWindow(this);
|
||||||
this.setAttribute(IDesktop.WINDOWNO_ATTRIBUTE, WindowNo);
|
this.setAttribute(IDesktop.WINDOWNO_ATTRIBUTE, WindowNo);
|
||||||
Env.setContext(Env.getCtx(), WindowNo, "IsSOTrx", isSOTrx ? "Y" : "N");
|
Env.setContext(Env.getCtx(), WindowNo, "IsSOTrx", isSOTrx ? "Y" : "N");
|
||||||
m_ctx = Env.getCtx();
|
|
||||||
m_AD_Process_ID = AD_Process_ID;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MProcess process = MProcess.get(Env.getCtx(), AD_Process_ID);
|
init(Env.getCtx(), WindowNo, AD_Process_ID, null, false, false);
|
||||||
int count = process.getParameters().length;
|
|
||||||
if (count > 0)
|
|
||||||
showLastRun = true;
|
|
||||||
|
|
||||||
initComponents();
|
|
||||||
init(Env.getCtx(), WindowNo, AD_Process_ID, null, "70%", false, false);
|
|
||||||
querySaved();
|
querySaved();
|
||||||
addEventListener(WindowContainer.ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT, this);
|
addEventListener(WindowContainer.ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT, this);
|
||||||
addEventListener(ON_INITIAL_FOCUS_EVENT, this);
|
addEventListener(ON_INITIAL_FOCUS_EVENT, this);
|
||||||
|
@ -177,202 +129,6 @@ public class ProcessDialog extends AbstractProcessDialog implements EventListene
|
||||||
}
|
}
|
||||||
} // ProcessDialog
|
} // ProcessDialog
|
||||||
|
|
||||||
private void listPrintFormat()
|
|
||||||
{
|
|
||||||
int AD_Column_ID = 0;
|
|
||||||
boolean m_isCanExport = false;
|
|
||||||
|
|
||||||
MProcess pr = new MProcess(m_ctx, m_AD_Process_ID, null);
|
|
||||||
int table_ID = 0;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (pr.getAD_ReportView_ID() > 0)
|
|
||||||
{
|
|
||||||
X_AD_ReportView m_Reportview = new X_AD_ReportView(m_ctx, pr.getAD_ReportView_ID(), null);
|
|
||||||
table_ID = m_Reportview.getAD_Table_ID();
|
|
||||||
}
|
|
||||||
else if (pr.getAD_PrintFormat_ID() > 0)
|
|
||||||
{
|
|
||||||
MPrintFormat format = new MPrintFormat(m_ctx, pr.getAD_PrintFormat_ID(), null);
|
|
||||||
table_ID = format.getAD_Table_ID();
|
|
||||||
}
|
|
||||||
String valCode = null;
|
|
||||||
if (table_ID > 0)
|
|
||||||
{
|
|
||||||
valCode = "AD_PrintFormat.AD_Table_ID=" + table_ID;
|
|
||||||
m_isCanExport = MRole.getDefault().isCanExport(table_ID);
|
|
||||||
}
|
|
||||||
Lookup lookup = MLookupFactory.get (Env.getCtx(), m_WindowNo,
|
|
||||||
AD_Column_ID, DisplayType.TableDir,
|
|
||||||
Env.getLanguage(Env.getCtx()), "AD_PrintFormat_ID", 0, false,
|
|
||||||
valCode);
|
|
||||||
|
|
||||||
fPrintFormat = new WTableDirEditor("AD_PrintFormat_ID", false, false, true, lookup);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
log.log(Level.SEVERE, e.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
freportType.removeAllItems();
|
|
||||||
freportType.setMold("select");
|
|
||||||
freportType.appendItem("HTML", "HTML");
|
|
||||||
|
|
||||||
if (m_isCanExport)
|
|
||||||
{
|
|
||||||
freportType.appendItem("PDF", "PDF");
|
|
||||||
freportType.appendItem("Excel", "XLS");
|
|
||||||
}
|
|
||||||
freportType.setSelectedIndex(0);
|
|
||||||
|
|
||||||
String where = "AD_Process_ID = ? AND AD_User_ID = ? AND Name IS NULL ";
|
|
||||||
|
|
||||||
MPInstance lastrun = MTable.get(Env.getCtx(), MPInstance.Table_Name).createQuery(where, null).setOnlyActiveRecords(true).setClient_ID()
|
|
||||||
.setParameters(m_AD_Process_ID, Env.getContextAsInt(Env.getCtx(), "#AD_User_ID")).setOrderBy("Created DESC").first();
|
|
||||||
|
|
||||||
setReportTypeAndPrintFormat(lastrun);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void querySaved()
|
|
||||||
{
|
|
||||||
//user query
|
|
||||||
savedParams = MPInstance.get(Env.getCtx(), getAD_Process_ID(), Env.getContextAsInt(Env.getCtx(), "#AD_User_ID"));
|
|
||||||
fSavedName.removeAllItems();
|
|
||||||
for (MPInstance instance : savedParams)
|
|
||||||
{
|
|
||||||
String queries = instance.get_ValueAsString("Name");
|
|
||||||
fSavedName.appendItem(queries);
|
|
||||||
}
|
|
||||||
|
|
||||||
fSavedName.setValue("");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initComponents() {
|
|
||||||
this.setStyle("position: absolute; width: 100%; height: 100%");
|
|
||||||
Borderlayout layout = new Borderlayout();
|
|
||||||
layout.setStyle("position: absolute; width: 100%; height: 100%; border: none;");
|
|
||||||
messageDiv = new Div();
|
|
||||||
messageDiv.appendChild(getMessage());
|
|
||||||
messageDiv.setStyle(MESSAGE_DIV_STYLE);
|
|
||||||
messageDiv.setId("message");
|
|
||||||
|
|
||||||
north = new North();
|
|
||||||
north.appendChild(messageDiv);
|
|
||||||
layout.appendChild(north);
|
|
||||||
north.setAutoscroll(true);
|
|
||||||
north.setStyle("border: none;");
|
|
||||||
|
|
||||||
center = new Center();
|
|
||||||
layout.appendChild(center);
|
|
||||||
center.appendChild(getCenterPanel());
|
|
||||||
getCenterPanel().setHflex("1");
|
|
||||||
getCenterPanel().setVflex("1");
|
|
||||||
center.setAutoscroll(true);
|
|
||||||
center.setStyle("border: none");
|
|
||||||
|
|
||||||
Rows rows = southRowPanel.newRows();
|
|
||||||
rows.getParent().getId();
|
|
||||||
Row row1 = rows.newRow();
|
|
||||||
Row row = rows.newRow();
|
|
||||||
|
|
||||||
Hbox hBox = new Hbox();
|
|
||||||
Hbox hBox1 = new Hbox();
|
|
||||||
|
|
||||||
lSaved = new Label(Msg.getMsg(Env.getCtx(), "SavedParameter"));
|
|
||||||
hBox1.appendChild(lSaved);
|
|
||||||
fSavedName.addEventListener(Events.ON_CHANGE, this);
|
|
||||||
hBox.appendChild(fSavedName);
|
|
||||||
|
|
||||||
bSave.setEnabled(false);
|
|
||||||
bSave.addActionListener(this);
|
|
||||||
hBox.appendChild(bSave);
|
|
||||||
|
|
||||||
bDelete.setEnabled(false);
|
|
||||||
bDelete.addActionListener(this);
|
|
||||||
hBox.appendChild(bDelete);
|
|
||||||
|
|
||||||
hBox.setStyle("margin-right:30px;");
|
|
||||||
hBox1.setStyle("margin-right:30px;");
|
|
||||||
row1.appendChild(hBox1);
|
|
||||||
row.appendChild(hBox);
|
|
||||||
|
|
||||||
// Print format on report para
|
|
||||||
MProcess pr = new MProcess(m_ctx, m_AD_Process_ID, null);
|
|
||||||
if (pr.isReport() && pr.getJasperReport() == null)
|
|
||||||
{
|
|
||||||
listPrintFormat();
|
|
||||||
|
|
||||||
hBox = new Hbox();
|
|
||||||
hBox1 = new Hbox();
|
|
||||||
hBox1.appendChild(lPrintFormat);
|
|
||||||
hBox.appendChild(fPrintFormat.getComponent());
|
|
||||||
row1.appendChild(hBox1);
|
|
||||||
row.appendChild(hBox);
|
|
||||||
|
|
||||||
hBox = new Hbox();
|
|
||||||
hBox1 = new Hbox();
|
|
||||||
hBox1.appendChild(lreportType);
|
|
||||||
hBox.appendChild(freportType);
|
|
||||||
row1.appendChild(hBox1);
|
|
||||||
row.appendChild(hBox);
|
|
||||||
|
|
||||||
hBox = new Hbox();
|
|
||||||
hBox1 = new Hbox();
|
|
||||||
hBox1.appendChild(lIsSummary);
|
|
||||||
hBox.appendChild(chbIsSummary);
|
|
||||||
row1.appendChild(hBox1);
|
|
||||||
row.appendChild(hBox);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!showLastRun)
|
|
||||||
{
|
|
||||||
hBox.setVisible(false);
|
|
||||||
hBox1.setVisible(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
Panel confParaPanel =new Panel();
|
|
||||||
confParaPanel.setStyle("float:right");
|
|
||||||
// Invert - Unify OK/Cancel IDEMPIERE-77
|
|
||||||
bOK = ButtonFactory.createNamedButton(ConfirmPanel.A_OK, true, true);
|
|
||||||
bOK.setId("Ok");
|
|
||||||
bOK.setWidth("50%");
|
|
||||||
bOK.addEventListener(Events.ON_CLICK, this);
|
|
||||||
confParaPanel.appendChild(bOK);
|
|
||||||
|
|
||||||
bCancel = ButtonFactory.createNamedButton(ConfirmPanel.A_CANCEL, true, true);
|
|
||||||
bCancel.setId("Cancel");
|
|
||||||
bCancel.setWidth("50%");
|
|
||||||
bCancel.addEventListener(Events.ON_CLICK, this);
|
|
||||||
confParaPanel.appendChild(bCancel);
|
|
||||||
row.appendChild(confParaPanel);
|
|
||||||
|
|
||||||
South south = new South();
|
|
||||||
south.setSclass("dialog-footer");
|
|
||||||
layout.appendChild(south);
|
|
||||||
south.appendChild(southRowPanel);
|
|
||||||
this.appendChild(layout);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Button bCancel = null;
|
|
||||||
|
|
||||||
//saved parameters
|
|
||||||
private Combobox fSavedName=new Combobox();
|
|
||||||
private Button bSave=ButtonFactory.createNamedButton("Save");
|
|
||||||
private Button bDelete=ButtonFactory.createNamedButton("Delete");
|
|
||||||
private List<MPInstance> savedParams;
|
|
||||||
private Label lSaved;
|
|
||||||
|
|
||||||
private Properties m_ctx;
|
|
||||||
private int m_AD_Process_ID;
|
|
||||||
|
|
||||||
// Print Format and View Report
|
|
||||||
private WTableDirEditor fPrintFormat = null;
|
|
||||||
private Listbox freportType = new Listbox();
|
|
||||||
private Label lPrintFormat = new Label(Msg.translate(Env.getCtx(), "AD_PrintFormat_ID"));
|
|
||||||
private Label lreportType = new Label(Msg.translate(Env.getCtx(), "view.report"));
|
|
||||||
private Label lIsSummary = new Label(Msg.translate(Env.getCtx(), "Summary"));
|
|
||||||
private Checkbox chbIsSummary = new Checkbox();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Visible
|
* Set Visible
|
||||||
* (set focus to OK if visible)
|
* (set focus to OK if visible)
|
||||||
|
@ -395,112 +151,19 @@ public class ProcessDialog extends AbstractProcessDialog implements EventListene
|
||||||
public void onEvent(Event event) {
|
public void onEvent(Event event) {
|
||||||
Component component = event.getTarget();
|
Component component = event.getTarget();
|
||||||
|
|
||||||
String saveName = null;
|
|
||||||
boolean lastRun = false;
|
|
||||||
if (fSavedName.getRawText() != null) {
|
|
||||||
saveName = fSavedName.getRawText();
|
|
||||||
lastRun = ("** " + Msg.getMsg(Env.getCtx(), "LastRun") + " **")
|
|
||||||
.equals(saveName);
|
|
||||||
}
|
|
||||||
if(component instanceof A && event.getName().equals((Events.ON_CLICK))){
|
if(component instanceof A && event.getName().equals((Events.ON_CLICK))){
|
||||||
doOnClick((A)component);
|
doOnClick((A)component);
|
||||||
} else if (component instanceof Button) {
|
} else if (bOK.equals(component)) {
|
||||||
Button element = (Button)component;
|
super.onEvent(event);
|
||||||
if ("Ok".equalsIgnoreCase(element.getId())) {
|
|
||||||
if(freportType.getSelectedItem() != null) {
|
|
||||||
getProcessInfo().setReportType(freportType.getSelectedItem().getValue().toString());
|
|
||||||
}
|
|
||||||
if(fPrintFormat != null && fPrintFormat.getValue() != null) {
|
|
||||||
MPrintFormat format = new MPrintFormat(m_ctx, (Integer) fPrintFormat.getValue(), null);
|
|
||||||
if (format != null) {
|
|
||||||
getProcessInfo().setSerializableObject(format);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getProcessInfo().setIsSummary(chbIsSummary.isChecked());
|
|
||||||
|
|
||||||
if (isParameterPage)
|
if (isParameterPage)
|
||||||
startProcess();
|
startProcess();
|
||||||
else
|
else
|
||||||
restart();
|
restart();
|
||||||
} else if ("Cancel".equalsIgnoreCase(element.getId())) {
|
}else if (bCancel.equals(component)){
|
||||||
cancelProcess();
|
cancelProcess();
|
||||||
|
|
||||||
} else if (event.getTarget().equals(bSave) && fSavedName != null
|
|
||||||
&& !lastRun) {
|
|
||||||
|
|
||||||
// Update existing
|
|
||||||
if (fSavedName.getSelectedIndex() > -1 && savedParams != null) {
|
|
||||||
for (int i = 0; i < savedParams.size(); i++) {
|
|
||||||
if (savedParams.get(i).getName().equals(saveName)) {
|
|
||||||
getProcessInfo().setAD_PInstance_ID(savedParams.get(i)
|
|
||||||
.getAD_PInstance_ID());
|
|
||||||
for (MPInstancePara para : savedParams.get(i)
|
|
||||||
.getParameters()) {
|
|
||||||
para.deleteEx(true);
|
|
||||||
}
|
|
||||||
getParameterPanel().saveParameters();
|
|
||||||
savedParams.get(i).setAD_PrintFormat_ID((Integer)fPrintFormat.getValue());
|
|
||||||
savedParams.get(i).setReportType(freportType.getSelectedItem().getValue().toString());
|
|
||||||
savedParams.get(i).setIsSummary(chbIsSummary.isSelected());
|
|
||||||
savedParams.get(i).saveEx();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// create new
|
|
||||||
else {
|
|
||||||
MPInstance instance = null;
|
|
||||||
try {
|
|
||||||
instance = new MPInstance(Env.getCtx(),
|
|
||||||
getProcessInfo().getAD_Process_ID(), getProcessInfo().getRecord_ID());
|
|
||||||
instance.setName(saveName);
|
|
||||||
instance.setAD_PrintFormat_ID((Integer) fPrintFormat.getValue());
|
|
||||||
instance.setReportType(freportType.getSelectedItem().getValue().toString());
|
|
||||||
instance.setIsSummary(chbIsSummary.isSelected());
|
|
||||||
instance.saveEx();
|
|
||||||
getProcessInfo().setAD_PInstance_ID(instance.getAD_PInstance_ID());
|
|
||||||
// Get Parameters
|
|
||||||
if (getParameterPanel() != null) {
|
|
||||||
if (!getParameterPanel().saveParameters()) {
|
|
||||||
throw new AdempiereSystemError(Msg.getMsg(
|
|
||||||
Env.getCtx(), "SaveParameterError"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
log.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
querySaved();
|
|
||||||
fSavedName.setSelectedItem(getComboItem(saveName));
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (event.getTarget().equals(bDelete) && fSavedName != null
|
|
||||||
&& !lastRun) {
|
|
||||||
Object o = fSavedName.getSelectedItem();
|
|
||||||
if (savedParams != null && o != null) {
|
|
||||||
String selected = fSavedName.getSelectedItem().getLabel();
|
|
||||||
for (int i = 0; i < savedParams.size(); i++) {
|
|
||||||
if (savedParams.get(i).getName().equals(selected)) {
|
|
||||||
savedParams.get(i).deleteEx(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
querySaved();
|
|
||||||
}
|
|
||||||
} else if (event.getName().equals(WindowContainer.ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT)) {
|
} else if (event.getName().equals(WindowContainer.ON_WINDOW_CONTAINER_SELECTION_CHANGED_EVENT)) {
|
||||||
SessionManager.getAppDesktop().updateHelpContext(X_AD_CtxHelp.CTXTYPE_Process, getAD_Process_ID());
|
SessionManager.getAppDesktop().updateHelpContext(X_AD_CtxHelp.CTXTYPE_Process, getAD_Process_ID());
|
||||||
} else if (event.getTarget().equals(fSavedName)) {
|
|
||||||
if (savedParams != null && saveName != null) {
|
|
||||||
for (int i = 0; i < savedParams.size(); i++) {
|
|
||||||
if (savedParams.get(i).getName().equals(saveName)) {
|
|
||||||
loadSavedParams(savedParams.get(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
boolean enabled = !Util.isEmpty(saveName);
|
|
||||||
bSave.setEnabled(enabled && !lastRun);
|
|
||||||
bDelete.setEnabled(enabled && fSavedName.getSelectedIndex() > -1
|
|
||||||
&& !lastRun);
|
|
||||||
} else if (event.getName().equals(ON_INITIAL_FOCUS_EVENT)) {
|
} else if (event.getName().equals(ON_INITIAL_FOCUS_EVENT)) {
|
||||||
if (!isUILocked())
|
if (!isUILocked())
|
||||||
{
|
{
|
||||||
|
@ -514,41 +177,6 @@ public class ProcessDialog extends AbstractProcessDialog implements EventListene
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Comboitem getComboItem( String value) {
|
|
||||||
Comboitem item = null;
|
|
||||||
for (int i = 0; i < fSavedName.getItems().size(); i++) {
|
|
||||||
if (fSavedName.getItems().get(i) != null) {
|
|
||||||
item = (Comboitem)fSavedName.getItems().get(i);
|
|
||||||
if (value.equals(item.getLabel().toString())) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return item;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setReportTypeAndPrintFormat(MPInstance instance)
|
|
||||||
{
|
|
||||||
if (fPrintFormat != null && instance != null) {
|
|
||||||
fPrintFormat.setValue((Integer) instance.getAD_PrintFormat_ID());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (freportType != null && instance != null) {
|
|
||||||
if (instance.getReportType() == null)
|
|
||||||
freportType.setValue("HTML");
|
|
||||||
else
|
|
||||||
freportType.setValue(instance.getReportType());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (instance != null)
|
|
||||||
chbIsSummary.setSelected(instance.getIsSummary());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void loadSavedParams(MPInstance instance) {
|
|
||||||
getParameterPanel().loadParameters(instance);
|
|
||||||
setReportTypeAndPrintFormat(instance);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void doOnClick(A btn) {
|
private void doOnClick(A btn) {
|
||||||
int Record_ID = 0;
|
int Record_ID = 0;
|
||||||
int AD_Table_ID =0;
|
int AD_Table_ID =0;
|
||||||
|
@ -623,18 +251,16 @@ public class ProcessDialog extends AbstractProcessDialog implements EventListene
|
||||||
|
|
||||||
bOK.setLabel(Msg.getMsg(Env.getCtx(), "Parameter"));
|
bOK.setLabel(Msg.getMsg(Env.getCtx(), "Parameter"));
|
||||||
bOK.setImage(ThemeManager.getThemeResource("images/Reset16.png"));
|
bOK.setImage(ThemeManager.getThemeResource("images/Reset16.png"));
|
||||||
|
|
||||||
|
bCancel.setLabel(Msg.getMsg(Env.getCtx(), "Close"));
|
||||||
|
bCancel.setImage(ThemeManager.getThemeResource("images/Cancel16.png"));
|
||||||
isParameterPage = false;
|
isParameterPage = false;
|
||||||
|
|
||||||
m_ids = pi.getIDs();
|
m_ids = pi.getIDs();
|
||||||
|
|
||||||
//move message div to center to give more space to display potentially very long log info
|
//move message div to center to give more space to display potentially very long log info
|
||||||
getCenterPanel().detach();
|
topParameterLayout.detach();
|
||||||
messageDiv.detach();
|
//TODO:hieplq show result
|
||||||
messageDiv.setStyle("");
|
|
||||||
north.setVisible(false);
|
|
||||||
center.appendChild(messageDiv);
|
|
||||||
messageDiv.setVflex("1");
|
|
||||||
messageDiv.setHflex("1");
|
|
||||||
invalidate();
|
invalidate();
|
||||||
|
|
||||||
Clients.response(new AuEcho(this, "onAfterProcess", null));
|
Clients.response(new AuEcho(this, "onAfterProcess", null));
|
||||||
|
@ -713,22 +339,17 @@ public class ProcessDialog extends AbstractProcessDialog implements EventListene
|
||||||
tr.appendChild(td);
|
tr.appendChild(td);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
messageDiv.appendChild(logMessageTable);
|
//messageDiv.appendChild(logMessageTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void restart() {
|
private void restart() {
|
||||||
setMessageText(new StringBuffer(getInitialMessage()));
|
setMessageText(new StringBuffer(getInitialMessage()));
|
||||||
getMessage().setContent(getInitialMessage());
|
getMessage().setContent(getInitialMessage());
|
||||||
|
|
||||||
north.setVisible(true);
|
|
||||||
messageDiv.detach();
|
|
||||||
if(logMessageTable!=null){
|
if(logMessageTable!=null){
|
||||||
messageDiv.removeChild(logMessageTable);
|
//messageDiv.removeChild(logMessageTable);
|
||||||
}
|
}
|
||||||
messageDiv.setStyle(MESSAGE_DIV_STYLE);
|
//messageDiv.setStyle(MESSAGE_DIV_STYLE);
|
||||||
north.appendChild(messageDiv);
|
|
||||||
|
|
||||||
center.appendChild(getCenterPanel());
|
|
||||||
|
|
||||||
isParameterPage = true;
|
isParameterPage = true;
|
||||||
|
|
||||||
|
|
|
@ -20,10 +20,8 @@ import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.webui.LayoutUtils;
|
import org.adempiere.webui.LayoutUtils;
|
||||||
import org.adempiere.webui.component.Button;
|
import org.adempiere.webui.component.Button;
|
||||||
import org.adempiere.webui.component.ConfirmPanel;
|
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.event.DialogEvents;
|
import org.adempiere.webui.event.DialogEvents;
|
||||||
import org.adempiere.webui.factory.ButtonFactory;
|
|
||||||
import org.adempiere.webui.session.SessionManager;
|
import org.adempiere.webui.session.SessionManager;
|
||||||
import org.compiere.process.ProcessInfo;
|
import org.compiere.process.ProcessInfo;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
|
@ -31,11 +29,6 @@ import org.compiere.util.Env;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
|
||||||
import org.zkoss.zul.Div;
|
|
||||||
import org.zkoss.zul.Hlayout;
|
|
||||||
import org.zkoss.zul.Layout;
|
|
||||||
import org.zkoss.zul.Vlayout;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -89,8 +82,9 @@ public class ProcessModalDialog extends AbstractProcessDialog implements EventLi
|
||||||
log.info("Process=" + pi.getAD_Process_ID());
|
log.info("Process=" + pi.getAD_Process_ID());
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
initComponents();
|
init(Env.getCtx(), WindowNo, pi.getAD_Process_ID(), pi, autoStart, true);
|
||||||
init(Env.getCtx(), WindowNo, pi.getAD_Process_ID(), pi, "100%", autoStart, true);
|
mainParameterLayout.setStyle("max-height:" + (SessionManager.getAppDesktop().getClientInfo().desktopHeight - 150) + "px");
|
||||||
|
this.setSclass("popup-dialog");
|
||||||
}
|
}
|
||||||
catch(Exception ex)
|
catch(Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -135,50 +129,6 @@ public class ProcessModalDialog extends AbstractProcessDialog implements EventLi
|
||||||
this(WindowNo, AD_Process_ID, tableId, recordId, autoStart);
|
this(WindowNo, AD_Process_ID, tableId, recordId, autoStart);
|
||||||
} // ProcessDialog
|
} // ProcessDialog
|
||||||
|
|
||||||
private void initComponents() {
|
|
||||||
this.setBorder("normal");
|
|
||||||
Layout dialogBody = new Vlayout();
|
|
||||||
dialogBody.setHflex("1");
|
|
||||||
dialogBody.setStyle(dialogBody.getStyle() + ";max-height:" + (SessionManager.getAppDesktop().getClientInfo().desktopHeight - 100) + "px");
|
|
||||||
|
|
||||||
|
|
||||||
Vlayout dialogContent = new Vlayout();
|
|
||||||
dialogContent.setHflex("1");
|
|
||||||
dialogContent.setVflex("1");
|
|
||||||
dialogContent.setSclass("dialog-content");
|
|
||||||
dialogContent.setStyle("overflow-y: auto;");
|
|
||||||
dialogBody.appendChild(dialogContent);
|
|
||||||
// description
|
|
||||||
Div div = new Div();
|
|
||||||
div.setId("message");
|
|
||||||
div.appendChild(getMessage());
|
|
||||||
div.setStyle("max-height: 150pt; overflow: auto;");
|
|
||||||
dialogContent.appendChild(div);
|
|
||||||
|
|
||||||
dialogContent.appendChild(getCenterPanel());
|
|
||||||
// button panel
|
|
||||||
Layout hbox = new Hlayout();
|
|
||||||
hbox.setStyle("bottom:0;text-align:right");
|
|
||||||
dialogBody.appendChild(hbox);
|
|
||||||
hbox.setWidth("100%");
|
|
||||||
hbox.setSclass("dialog-footer");
|
|
||||||
|
|
||||||
Button btn = ButtonFactory.createNamedButton(ConfirmPanel.A_OK);
|
|
||||||
btn.setId("Ok");
|
|
||||||
btn.addEventListener(Events.ON_CLICK, this);
|
|
||||||
hbox.appendChild(btn);
|
|
||||||
|
|
||||||
btn = ButtonFactory.createNamedButton(ConfirmPanel.A_CANCEL);
|
|
||||||
btn.setId("Cancel");
|
|
||||||
btn.addEventListener(Events.ON_CLICK, this);
|
|
||||||
hbox.appendChild(btn);
|
|
||||||
dialogBody.appendChild(hbox);
|
|
||||||
this.appendChild(dialogBody);
|
|
||||||
|
|
||||||
this.setSclass("popup-dialog");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Visible
|
* Set Visible
|
||||||
* (set focus to OK if visible)
|
* (set focus to OK if visible)
|
||||||
|
|
|
@ -79,8 +79,6 @@ public class ProcessParameterPanel extends Panel implements
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -5730428618898681676L;
|
private static final long serialVersionUID = -5730428618898681676L;
|
||||||
|
|
||||||
private String width;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dynamic generated Parameter panel.
|
* Dynamic generated Parameter panel.
|
||||||
*
|
*
|
||||||
|
@ -90,23 +88,10 @@ public class ProcessParameterPanel extends Panel implements
|
||||||
* process info
|
* process info
|
||||||
*/
|
*/
|
||||||
public ProcessParameterPanel(int WindowNo, ProcessInfo pi) {
|
public ProcessParameterPanel(int WindowNo, ProcessInfo pi) {
|
||||||
this(WindowNo, pi, "100%");
|
|
||||||
} // ProcessParameterPanel
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dynamic generated Parameter panel.
|
|
||||||
*
|
|
||||||
* @param WindowNo
|
|
||||||
* window
|
|
||||||
* @param pi
|
|
||||||
* process info
|
|
||||||
*/
|
|
||||||
public ProcessParameterPanel(int WindowNo, ProcessInfo pi, String width) {
|
|
||||||
//
|
//
|
||||||
m_WindowNo = WindowNo;
|
m_WindowNo = WindowNo;
|
||||||
m_processInfo = pi;
|
m_processInfo = pi;
|
||||||
m_AD_Window_ID = AEnv.getADWindowID (WindowNo);
|
m_AD_Window_ID = AEnv.getADWindowID (WindowNo);
|
||||||
this.width = width;
|
|
||||||
this.m_InfoWindowID = pi.getAD_InfoWindow_ID();
|
this.m_InfoWindowID = pi.getAD_InfoWindow_ID();
|
||||||
//
|
//
|
||||||
initComponent();
|
initComponent();
|
||||||
|
@ -115,7 +100,6 @@ public class ProcessParameterPanel extends Panel implements
|
||||||
|
|
||||||
private void initComponent() {
|
private void initComponent() {
|
||||||
centerPanel = GridFactory.newGridLayout();
|
centerPanel = GridFactory.newGridLayout();
|
||||||
centerPanel.setInnerWidth(width);
|
|
||||||
this.appendChild(centerPanel);
|
this.appendChild(centerPanel);
|
||||||
|
|
||||||
// setup columns
|
// setup columns
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class WProcessCtl extends AbstractProcessCtl {
|
||||||
ProcessModalDialog para = new ProcessModalDialog(listener, WindowNo, pi, false);
|
ProcessModalDialog para = new ProcessModalDialog(listener, WindowNo, pi, false);
|
||||||
if (para.isValid())
|
if (para.isValid())
|
||||||
{
|
{
|
||||||
para.setWidth("500px");
|
//para.setWidth("500px");
|
||||||
para.setVisible(true);
|
para.setVisible(true);
|
||||||
para.setPosition("center");
|
para.setPosition("center");
|
||||||
para.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);
|
para.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);
|
||||||
|
|
|
@ -428,7 +428,7 @@ public class WPaySelect extends PaySelect
|
||||||
AD_Proces_ID, X_C_PaySelection.Table_ID, m_ps.getC_PaySelection_ID(), false);
|
AD_Proces_ID, X_C_PaySelection.Table_ID, m_ps.getC_PaySelection_ID(), false);
|
||||||
if (dialog.isValid()) {
|
if (dialog.isValid()) {
|
||||||
try {
|
try {
|
||||||
dialog.setWidth("500px");
|
//dialog.setWidth("500px");
|
||||||
dialog.setVisible(true);
|
dialog.setVisible(true);
|
||||||
dialog.setPage(form.getPage());
|
dialog.setPage(form.getPage());
|
||||||
dialog.doHighlighted();
|
dialog.doHighlighted();
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
/* .z-window.z-window-noborder.z-window-noheader.z-window-embedded
|
||||||
|
.z-window.z-window-noborder.z-window-noheader.z-window-embedded .z-window-content
|
||||||
|
twwo css make height of window always 100% its parent,
|
||||||
|
it fix some issue relate resize, but can make side effect
|
||||||
|
when detect side effect, fix to only apply for parameter window*/
|
||||||
|
.z-window.z-window-noborder.z-window-noheader.z-window-embedded,
|
||||||
|
.z-window.z-window-noborder.z-window-noheader.z-window-embedded .z-window-content,
|
||||||
|
.main-parameter-layout{
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-parameter-layout,
|
||||||
|
.top-parameter-layout,
|
||||||
|
.bottom-parameter-layout,
|
||||||
|
.message-parameter-layout,
|
||||||
|
.input-paramenter-layout,
|
||||||
|
.option-paramenter-layout,
|
||||||
|
.report-option-container,
|
||||||
|
.bottom-container{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.top-parameter-layout{
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-parameter-layout{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-paramenter{
|
||||||
|
max-height: 150pt;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.option-input-parameter{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-container{
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-container{
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.save-parameter-container{
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-dialog.z-window.z-window-overlapped.z-window-shadow,
|
||||||
|
.popup-dialog.z-window.z-window-noborder.z-window-highlighted.z-window-shadow{
|
||||||
|
width:600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-paramenter-layout{
|
||||||
|
width: 70%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup-dialog .input-paramenter-layout{
|
||||||
|
width: 90%;
|
||||||
|
}
|
|
@ -81,3 +81,5 @@ table.z-vbox > tbody > tr > td > table {
|
||||||
<c:include page="fragment/help-window.css.dsp" />
|
<c:include page="fragment/help-window.css.dsp" />
|
||||||
|
|
||||||
<c:include page="fragment/borderlayout.css.dsp" />
|
<c:include page="fragment/borderlayout.css.dsp" />
|
||||||
|
|
||||||
|
<c:include page="fragment/parameter-process.css.dsp" />
|
||||||
|
|
Loading…
Reference in New Issue