FR [ 2391012 ] Invoke AD_Form from button

- Port swing implementation to zk
This commit is contained in:
Heng Sin Low 2009-04-23 09:44:57 +00:00
parent 1598f782e8
commit 7a6db0484c
2 changed files with 322 additions and 282 deletions

View File

@ -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;
}
}

View File

@ -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
/**