フォームウィンドウは、1レコードを複数行に表示できる私が作成したプラグインです。
フォームウィンドウは基本的にはフォームなのでズームはできないのですが、標準ソースをちょっといじれば、プロセスからズームさせる事ができたので、備忘録としてその方法をメモしておきます。
TabbedDesktopクラスにメソッドを追加
public void openJPiereFormWindow(ADForm form, String title)
{
DesktopTabpanel tabPanel = new DesktopTabpanel();
form.setParent(tabPanel);
form.setTitle(null);
preOpenNewTab();
windowContainer.addWindow(tabPanel, title, true, null);
form.focus();
}
サンプルプロセス
package idempiere.lab.plugin.process;
import jpiere.plugin.webui.adwindow.JPiereADWindow;
import org.adempiere.util.Callback;
import org.adempiere.util.IProcessUI;
import org.adempiere.webui.desktop.TabbedDesktop;
import org.adempiere.webui.panel.CustomForm;
import org.adempiere.webui.session.SessionManager;
import org.compiere.model.MQuery;
import org.compiere.process.SvrProcess;
import org.compiere.util.Env;
public class OpenFormWindowProcess extends SvrProcess {
@Override
protected void prepare() {
}
@Override
protected String doIt() throws Exception {
IProcessUI processUI = Env.getProcessUI(getCtx());
processUI.ask("ズームしますか?", new Callback<Boolean>() {
@Override
public void onCallback(Boolean result)
{
if (result)
{
int AD_Window_ID = 1000004;
int Record_ID = 1000072;
MQuery query = new MQuery("C_Order");
query.addRestriction("C_Order_ID=" + Record_ID);
CustomForm form = new CustomForm();
JPiereADWindow adw = new JPiereADWindow(Env.getCtx(), AD_Window_ID, query);//Ctx, AD_Window_ID,MQuery
adw.createPart(form);
TabbedDesktop tabbedDesktop = (TabbedDesktop)SessionManager.getAppDesktop();
tabbedDesktop.openJPiereFormWindow(form,"タブのタイトル");
}else{
;//Nothing to do;
}
}
});//processUI.ask
return null;
}
}