package org.adempiere.webui.desktop;
import java.util.List;
import org.adempiere.model.MBrowse;
import org.adempiere.webui.apps.ProcessDialog;
import org.adempiere.webui.apps.wf.WFPanel;
import org.adempiere.webui.component.DesktopTabpanel;
import org.adempiere.webui.component.Tabbox;
import org.adempiere.webui.component.Tabpanel;
import org.adempiere.webui.component.Window;
import org.adempiere.webui.panel.ADForm;
import org.adempiere.webui.panel.CustomForm;
import org.adempiere.webui.part.WindowContainer;
import org.adempiere.webui.window.ADWindow;
import org.adempiere.webui.window.WTask;
import org.compiere.model.MQuery;
import org.compiere.model.MTask;
import org.compiere.util.Env;
import org.compiere.util.WebDoc;
import org.compiere.wf.MWorkflow;
import org.eevolution.form.WBrowser;
import org.zkoss.util.media.AMedia;
import org.zkoss.zk.ui.Component;
import org.zkoss.zul.Iframe;
import org.zkoss.zul.Tab;
import org.zkoss.zul.Tabpanels;
protected WindowContainer windowContainer;
super();
windowContainer = new WindowContainer();
}
ProcessDialog pd = new ProcessDialog (processId, soTrx);
if (pd.isValid()) {
DesktopTabpanel tabPanel = new DesktopTabpanel();
pd.setParent(tabPanel);
String title = pd.getTitle();
pd.setTitle(null);
preOpenNewTab();
windowContainer.addWindow(tabPanel, title, true);
}
return pd;
}
ADForm form = ADForm.openForm(formId);
DesktopTabpanel tabPanel = new DesktopTabpanel();
form.setParent(tabPanel);
form.setTitle(null);
preOpenNewTab();
windowContainer.addWindow(tabPanel, form.getFormName(), true);
return form;
}
{
MBrowse browse = new MBrowse(Env.getCtx(), AD_Browse_ID , null);
boolean modal = true;
int WindowNo = 0;
String value = "";
String keyColumn = "";
boolean multiSelection = true;
String whereClause = "";
CustomForm ff = new WBrowser(modal, WindowNo, value, browse, keyColumn, multiSelection, whereClause).getForm();
DesktopTabpanel tabPanel = new DesktopTabpanel();
ff.setParent(tabPanel);
preOpenNewTab();
windowContainer.addWindow(tabPanel, "Browse", true);
}
WFPanel p = new WFPanel();
p.load(workflow_ID);
DesktopTabpanel tabPanel = new DesktopTabpanel();
p.setParent(tabPanel);
preOpenNewTab();
windowContainer.addWindow(tabPanel, p.getWorkflow().get_Translation(MWorkflow.COLUMNNAME_Name), true);
}
ADWindow adWindow = new ADWindow(Env.getCtx(), windowId);
DesktopTabpanel tabPanel = new DesktopTabpanel();
if (adWindow.createPart(tabPanel) != null) {
preOpenNewTab();
windowContainer.addWindow(tabPanel, adWindow.getTitle(), true);
return adWindow;
} else {
return null;
}
}
public ADWindow
openWindow(
int windowId, MQuery query) {
ADWindow adWindow = new ADWindow(Env.getCtx(), windowId, query);
DesktopTabpanel tabPanel = new DesktopTabpanel();
if (adWindow.createPart(tabPanel) != null) {
preOpenNewTab();
windowContainer.addWindow(tabPanel, adWindow.getTitle(), true);
return adWindow;
} else {
return null;
}
}
MTask task = new MTask(Env.getCtx(), taskId, null);
new WTask(task.getName(), task);
}
public void showURL(String url,
boolean closeable)
{
showURL(url, url, closeable);
}
public void showURL(String url, String title,
boolean closeable)
{
Iframe iframe = new Iframe(url);
addWin(iframe, title, closeable);
}
public void showURL(WebDoc webDoc, String title,
boolean closeable)
{
Iframe iframe = new Iframe();
AMedia media = new AMedia(title, "html", "text/html", webDoc.toString().getBytes());
iframe.setContent(media);
addWin(iframe, title, closeable);
}
private void addWin(Iframe fr, String title,
boolean closeable)
{
fr.setWidth("100%");
fr.setHeight("100%");
fr.setStyle("padding: 0; margin: 0; border: none; position: absolute");
Window window = new Window();
window.setWidth("100%");
window.setHeight("100%");
window.setStyle("padding: 0; margin: 0; border: none");
window.appendChild(fr);
window.setStyle("position: absolute");
Tabpanel tabPanel = new Tabpanel();
window.setParent(tabPanel);
preOpenNewTab();
windowContainer.addWindow(tabPanel, title, closeable);
}
{
ADWindow wnd = new ADWindow(Env.getCtx(), AD_Window_ID, query);
DesktopTabpanel tabPanel = new DesktopTabpanel();
if (wnd.createPart(tabPanel) != null)
{
preOpenNewTab();
windowContainer.insertAfter(windowContainer.getSelectedTab(), tabPanel, wnd.getTitle(), true, true);
}
}
public void showWindow(
int AD_Window_ID, MQuery query)
{
openWindow(AD_Window_ID, query);
}
{
Tabpanel tabPanel = new Tabpanel();
window.setParent(tabPanel);
String title = window.getTitle();
window.setTitle(null);
preOpenNewTab();
if (Window.INSERT_NEXT.equals(window.getAttribute(Window.INSERT_POSITION_KEY)))
windowContainer.insertAfter(windowContainer.getSelectedTab(), tabPanel, title, true, true);
else
windowContainer.addWindow(tabPanel, title, true);
}
{
if (windowContainer.getSelectedTab() != null)
{
Tabpanel panel = (Tabpanel) windowContainer.getSelectedTab().getLinkedPanel();
Component component = panel.getFirstChild();
Object att = component.getAttribute(WINDOWNO_ATTRIBUTE);
if ( windowContainer.closeActiveWindow() )
{
if (att != null && (att instanceof Integer))
{
unregisterWindow((Integer) att);
}
return true;
}
else
{
return false;
}
}
return false;
}
{
return windowContainer.getSelectedTab().getLinkedPanel().getFirstChild();
}
{
Tabbox tabbox = windowContainer.getComponent();
Tabpanels panels = tabbox.getTabpanels();
List<?> childrens = panels.getChildren();
for (Object child : childrens)
{
Tabpanel panel = (Tabpanel) child;
Component component = panel.getFirstChild();
Object att = component.getAttribute(WINDOWNO_ATTRIBUTE);
if (att != null && (att instanceof Integer))
{
if (windowNo == (Integer)att)
{
Tab tab = panel.getLinkedTab();
panel.getLinkedTab().onClose();
if (tab.getParent() == null)
{
unregisterWindow(windowNo);
return true;
}
else
{
return false;
}
}
}
}
return false;
}
{
}
}