IDEMPIERE-231 Zk6: Improve the tablet experience. Revert setPage call that cause intermitten javascript error.

This commit is contained in:
Heng Sin Low 2012-04-18 13:45:26 +08:00
parent bfa663b93b
commit 5e2d4a77ca
8 changed files with 48 additions and 26 deletions

View File

@ -772,4 +772,10 @@ public final class AEnv
} }
} }
} }
public static Desktop getDesktop() {
boolean inUIThread = Executions.getCurrent() != null;
return inUIThread ? Executions.getCurrent().getDesktop()
: (Desktop) Env.getCtx().get(AdempiereWebUI.ZK_DESKTOP_SESSION_KEY);
}
} // AEnv } // AEnv

View File

@ -16,6 +16,7 @@ package org.adempiere.webui.dashboard;
import java.util.Enumeration; import java.util.Enumeration;
import org.adempiere.exceptions.DBException; import org.adempiere.exceptions.DBException;
import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.event.TouchEventHelper; import org.adempiere.webui.event.TouchEventHelper;
import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.session.SessionManager;
import org.adempiere.webui.window.FDialog; import org.adempiere.webui.window.FDialog;
@ -25,6 +26,7 @@ import org.compiere.util.CLogger;
import org.compiere.util.DB; import org.compiere.util.DB;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.DropEvent; import org.zkoss.zk.ui.event.DropEvent;
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;
@ -47,6 +49,8 @@ import org.zkoss.zul.Vbox;
*/ */
public class DPFavourites extends DashboardPanel implements EventListener<Event> { public class DPFavourites extends DashboardPanel implements EventListener<Event> {
private static final String ON_ADD_TAP_EVENT_LISTENER = "onAddTapEventListener";
private static final String NODE_ID_ATTR = "Node_ID"; private static final String NODE_ID_ATTR = "Node_ID";
/** /**
@ -68,8 +72,6 @@ public class DPFavourites extends DashboardPanel implements EventListener<Event>
{ {
super(); super();
this.setPage(SessionManager.getAppDesktop().getComponent().getPage());
Panel panel = new Panel(); Panel panel = new Panel();
this.appendChild(panel); this.appendChild(panel);
@ -128,7 +130,15 @@ public class DPFavourites extends DashboardPanel implements EventListener<Event>
btnFavItem.addEventListener(Events.ON_CLICK, this); btnFavItem.addEventListener(Events.ON_CLICK, this);
btnFavItem.addEventListener(Events.ON_DROP, this); btnFavItem.addEventListener(Events.ON_DROP, this);
btnFavItem.setSclass("menu-href"); btnFavItem.setSclass("menu-href");
TouchEventHelper.addOnTapEventListener(btnFavItem, this);
if (getPage() != null)
{
TouchEventHelper.addOnTapEventListener(btnFavItem, this);
}
else
{
Executions.schedule(AEnv.getDesktop(), this, new Event(ON_ADD_TAP_EVENT_LISTENER, btnFavItem, null));
}
} }
} }
} }
@ -204,6 +214,10 @@ public class DPFavourites extends DashboardPanel implements EventListener<Event>
} }
} }
} }
else if (eventName.equals(ON_ADD_TAP_EVENT_LISTENER))
{
TouchEventHelper.addOnTapEventListener(event.getTarget(), this);
}
// //
} }
@ -276,7 +290,14 @@ public class DPFavourites extends DashboardPanel implements EventListener<Event>
btnFavItem.addEventListener(Events.ON_CLICK, this); btnFavItem.addEventListener(Events.ON_CLICK, this);
btnFavItem.addEventListener(Events.ON_DROP, this); btnFavItem.addEventListener(Events.ON_DROP, this);
btnFavItem.setSclass("menu-href"); btnFavItem.setSclass("menu-href");
TouchEventHelper.addOnTapEventListener(btnFavItem, this); if (getPage() != null)
{
TouchEventHelper.addOnTapEventListener(btnFavItem, this);
}
else
{
Executions.schedule(AEnv.getDesktop(), this, new Event(ON_ADD_TAP_EVENT_LISTENER, btnFavItem, null));
}
bxFav.removeChild(lblMsg); bxFav.removeChild(lblMsg);
bxFav.invalidate(); bxFav.invalidate();
} else { } else {

View File

@ -15,6 +15,7 @@ package org.adempiere.webui.dashboard;
import java.util.List; import java.util.List;
import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.event.TouchEventHelper; import org.adempiere.webui.event.TouchEventHelper;
import org.adempiere.webui.event.TouchEvents; import org.adempiere.webui.event.TouchEvents;
import org.adempiere.webui.session.SessionManager; import org.adempiere.webui.session.SessionManager;
@ -25,6 +26,7 @@ import org.compiere.model.MSysConfig;
import org.compiere.model.MTable; import org.compiere.model.MTable;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.DropEvent; import org.zkoss.zk.ui.event.DropEvent;
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;
@ -44,6 +46,8 @@ import org.zkoss.zul.Vbox;
*/ */
public class DPRecentItems extends DashboardPanel implements EventListener<Event> { public class DPRecentItems extends DashboardPanel implements EventListener<Event> {
private static final String ON_ADD_TAP_EVENT_LISTENER = "onAddTapEventListener";
private static final String AD_RECENT_ITEM_ID_ATTR = "AD_RecentItem_ID"; private static final String AD_RECENT_ITEM_ID_ATTR = "AD_RecentItem_ID";
/** /**
@ -59,8 +63,6 @@ public class DPRecentItems extends DashboardPanel implements EventListener<Event
{ {
super(); super();
this.setPage(SessionManager.getAppDesktop().getComponent().getPage());
Panel panel = new Panel(); Panel panel = new Panel();
this.appendChild(panel); this.appendChild(panel);
@ -131,6 +133,10 @@ public class DPRecentItems extends DashboardPanel implements EventListener<Event
} }
} }
} }
else if (eventName.equals(ON_ADD_TAP_EVENT_LISTENER))
{
TouchEventHelper.addOnTapEventListener(event.getTarget(), this);
}
} }
private void doOnClick(Component comp) { private void doOnClick(Component comp) {
@ -193,7 +199,14 @@ public class DPRecentItems extends DashboardPanel implements EventListener<Event
btnrecentItem.addEventListener(Events.ON_CLICK, this); btnrecentItem.addEventListener(Events.ON_CLICK, this);
btnrecentItem.addEventListener(Events.ON_DROP, this); btnrecentItem.addEventListener(Events.ON_DROP, this);
btnrecentItem.setSclass("menu-href"); btnrecentItem.setSclass("menu-href");
TouchEventHelper.addOnTapEventListener(btnrecentItem, this); if (getPage() != null)
{
TouchEventHelper.addOnTapEventListener(btnrecentItem, this);
}
else
{
Executions.schedule(AEnv.getDesktop(), this, new Event(ON_ADD_TAP_EVENT_LISTENER, btnrecentItem, null));
}
riShown++; riShown++;
if (riShown >= maxri) if (riShown >= maxri)

View File

@ -144,7 +144,7 @@ public class NavBarDesktop extends TabbedDesktop implements MenuListener, Serial
navigationPanel.setWidth("100%"); navigationPanel.setWidth("100%");
navigationPanel.setHeight("100%"); navigationPanel.setHeight("100%");
SidePanel pnlSide = new SidePanel(parent.getPage()); SidePanel pnlSide = new SidePanel(null);
pnlSide.getMenuPanel().addMenuListener(this); pnlSide.getMenuPanel().addMenuListener(this);
navigationPanel.add(pnlSide, "Application Menu"); navigationPanel.add(pnlSide, "Application Menu");

View File

@ -111,7 +111,6 @@ public abstract class TabbedDesktop extends AbstractDesktop {
ADWindow adWindow = new ADWindow(Env.getCtx(), windowId); ADWindow adWindow = new ADWindow(Env.getCtx(), windowId);
DesktopTabpanel tabPanel = new DesktopTabpanel(); DesktopTabpanel tabPanel = new DesktopTabpanel();
tabPanel.setPage(SessionManager.getAppDesktop().getComponent().getPage());
if (adWindow.createPart(tabPanel) != null) { if (adWindow.createPart(tabPanel) != null) {
preOpenNewTab(); preOpenNewTab();
windowContainer.addWindow(tabPanel, adWindow.getTitle(), true); windowContainer.addWindow(tabPanel, adWindow.getTitle(), true);
@ -132,7 +131,6 @@ public abstract class TabbedDesktop extends AbstractDesktop {
ADWindow adWindow = new ADWindow(Env.getCtx(), windowId, query); ADWindow adWindow = new ADWindow(Env.getCtx(), windowId, query);
DesktopTabpanel tabPanel = new DesktopTabpanel(); DesktopTabpanel tabPanel = new DesktopTabpanel();
tabPanel.setPage(SessionManager.getAppDesktop().getComponent().getPage());
if (adWindow.createPart(tabPanel) != null) { if (adWindow.createPart(tabPanel) != null) {
preOpenNewTab(); preOpenNewTab();
windowContainer.addWindow(tabPanel, adWindow.getTitle(), true); windowContainer.addWindow(tabPanel, adWindow.getTitle(), true);

View File

@ -35,7 +35,6 @@ import org.compiere.util.Env;
import org.compiere.util.Msg; import org.compiere.util.Msg;
import org.compiere.util.Util; import org.compiere.util.Util;
import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Page;
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;
@ -72,12 +71,6 @@ public class MenuPanel extends Panel implements EventListener<Event>
private ToolBarButton expandToggle; private ToolBarButton expandToggle;
public MenuPanel(Page page)
{
setPage(page);
init();
}
public MenuPanel(Component parent) public MenuPanel(Component parent)
{ {
if (parent != null) if (parent != null)

View File

@ -19,7 +19,6 @@ package org.adempiere.webui.panel;
import org.adempiere.webui.component.Panel; import org.adempiere.webui.component.Panel;
import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Page;
/** /**
* *
@ -35,12 +34,6 @@ public class SidePanel extends Panel
private static final long serialVersionUID = -3039805384016666481L; private static final long serialVersionUID = -3039805384016666481L;
private MenuPanel pnlMenu; private MenuPanel pnlMenu;
public SidePanel(Page page)
{
setPage(page);
init();
}
public SidePanel(Component parent) public SidePanel(Component parent)
{ {
setParent(parent); setParent(parent);

View File

@ -167,8 +167,6 @@ private A reportLink;
public ZkReportViewer(ReportEngine re, String title) { public ZkReportViewer(ReportEngine re, String title) {
super(); super();
setPage(SessionManager.getAppDesktop().getComponent().getPage());
log.info(""); log.info("");
m_WindowNo = SessionManager.getAppDesktop().registerWindow(this); m_WindowNo = SessionManager.getAppDesktop().registerWindow(this);
Env.setContext(re.getCtx(), m_WindowNo, "_WinInfo_IsReportViewer", "Y"); Env.setContext(re.getCtx(), m_WindowNo, "_WinInfo_IsReportViewer", "Y");