FR [ 2391012 ] Invoke AD_Form from button
- Port swing implementation to zk
This commit is contained in:
parent
1598f782e8
commit
7a6db0484c
|
|
@ -26,6 +26,7 @@ import org.adempiere.webui.exception.ApplicationException;
|
|||
import org.adempiere.webui.session.SessionManager;
|
||||
import org.adempiere.webui.util.ADClassNameMap;
|
||||
import org.compiere.model.MForm;
|
||||
import org.compiere.process.ProcessInfo;
|
||||
import org.compiere.util.CLogger;
|
||||
import org.compiere.util.Env;
|
||||
import org.zkoss.zk.ui.event.Event;
|
||||
|
|
@ -58,6 +59,9 @@ public abstract class ADForm extends Window implements EventListener
|
|||
|
||||
private String m_name;
|
||||
|
||||
|
||||
private ProcessInfo m_pi;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
|
|
@ -239,4 +243,19 @@ public abstract class ADForm extends Window implements EventListener
|
|||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param pi
|
||||
*/
|
||||
public void setProcessInfo(ProcessInfo pi) {
|
||||
m_pi = pi;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ProcessInfo
|
||||
*/
|
||||
public ProcessInfo getProcessInfo()
|
||||
{
|
||||
return m_pi;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ import org.compiere.model.GridTab;
|
|||
import org.compiere.model.GridWindow;
|
||||
import org.compiere.model.GridWindowVO;
|
||||
import org.compiere.model.Lookup;
|
||||
import org.compiere.model.MProcess;
|
||||
import org.compiere.model.MQuery;
|
||||
import org.compiere.model.MRole;
|
||||
import org.compiere.process.DocAction;
|
||||
|
|
@ -1773,6 +1774,25 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
|
|||
if (!getComponent().getDesktop().isServerPushEnabled())
|
||||
getComponent().getDesktop().enableServerPush(true);
|
||||
|
||||
// call form
|
||||
MProcess pr = new MProcess(ctx, wButton.getProcess_ID(), null);
|
||||
int adFormID = pr.getAD_Form_ID();
|
||||
if (adFormID != 0 )
|
||||
{
|
||||
String title = wButton.getDescription();
|
||||
if (title == null || title.length() == 0)
|
||||
title = wButton.getDisplay();
|
||||
ProcessInfo pi = new ProcessInfo (title, wButton.getProcess_ID(), table_ID, record_ID);
|
||||
pi.setAD_User_ID (Env.getAD_User_ID(ctx));
|
||||
pi.setAD_Client_ID (Env.getAD_Client_ID(ctx));
|
||||
ADForm form = ADForm.openForm(adFormID);
|
||||
form.setProcessInfo(pi);
|
||||
form.setAttribute(Window.MODE_KEY, Window.MODE_EMBEDDED);
|
||||
form.setAttribute(Window.INSERT_POSITION_KEY, Window.INSERT_NEXT);
|
||||
SessionManager.getAppDesktop().showWindow(form);
|
||||
}
|
||||
else
|
||||
{
|
||||
ProcessModalDialog dialog = new ProcessModalDialog(null,
|
||||
Env.getHeader(ctx, curWindowNo), this, curWindowNo,
|
||||
wButton.getProcess_ID(), table_ID, record_ID, startWOasking);
|
||||
|
|
@ -1784,6 +1804,7 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
|
|||
dialog.setPosition("center");
|
||||
AEnv.showWindow(dialog);
|
||||
}
|
||||
}
|
||||
} // actionButton
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue