/** Unlock User Interface. Called from the Worker when processing is done */ public void unlockUI() { if (progressWindow != null) { progressWindow.dispose(); progressWindow = null; } }
@SuppressWarnings("serial") protected Component doCreatePart(Component parent) { PageDefinition pagedef = Executions.getCurrent() .getPageDefinition(ThemeManager.getThemeResource("zul/desktop/desktop.zul")); Component page = Executions.createComponents(pagedef, parent, null); layout = (Borderlayout) page.getFellow("layout"); headerContainer = page.getFellow("northBody"); pnlHead = (HeaderPanel) headerContainer.getFellow("header"); layout.addEventListener("onZoom", this); layout.addEventListener(DrillEvent.ON_DRILL_DOWN, this); West w = layout.getWest(); w.addEventListener( Events.ON_OPEN, new EventListener<Event>() { @Override public void onEvent(Event event) throws Exception { OpenEvent oe = (OpenEvent) event; updateMenuCollapsedPreference(!oe.isOpen()); } }); w.addEventListener( Events.ON_SWIPE, new EventListener<SwipeEvent>() { @Override public void onEvent(SwipeEvent event) throws Exception { if ("left".equals(event.getSwipeDirection())) { West w = (West) event.getTarget(); if (w.isOpen()) { w.setOpen(false); updateMenuCollapsedPreference(true); } } } }); w.addEventListener( Events.ON_SIZE, new EventListener<Event>() { @Override public void onEvent(Event event) throws Exception { West west = (West) event.getTarget(); updateSideControllerWidthPreference(west.getWidth()); } }); UserPreference pref = SessionManager.getSessionApplication().getUserPreference(); boolean menuCollapsed = pref.isPropertyBool(UserPreference.P_MENU_COLLAPSED); w.setOpen(!menuCollapsed); East e = layout.getEast(); e.addEventListener( Events.ON_OPEN, new EventListener<Event>() { @Override public void onEvent(Event event) throws Exception { OpenEvent oe = (OpenEvent) event; updateHelpCollapsedPreference(!oe.isOpen()); HtmlBasedComponent comp = windowContainer.getComponent(); if (comp != null) { contextHelp.setVisible(!oe.isOpen()); if (!oe.isOpen()) layout.getEast().setVisible(false); } } }); e.addEventListener( Events.ON_SWIPE, new EventListener<SwipeEvent>() { @Override public void onEvent(SwipeEvent event) throws Exception { if ("right".equals(event.getSwipeDirection())) { East e = (East) event.getTarget(); if (e.isOpen()) { e.setOpen(false); updateHelpCollapsedPreference(true); } } } }); e.addEventListener( Events.ON_SIZE, new EventListener<Event>() { @Override public void onEvent(Event event) throws Exception { East east = (East) event.getTarget(); updateHelpWidthPreference(east.getWidth()); } }); String westWidth = getWestWidthPreference(); String eastWidth = getEastWidthPreference(); // Set preference width if (westWidth != null || eastWidth != null) { // If both panels have prefered size check that the sum is not bigger than the browser if (westWidth != null && eastWidth != null) { ClientInfo browserInfo = getClientInfo(); int browserWidth = browserInfo.desktopWidth; int wWidth = Integer.valueOf(westWidth.replace("px", "")); int eWidth = Integer.valueOf(eastWidth.replace("px", "")); if (eWidth + wWidth <= browserWidth) { w.setWidth(westWidth); e.setWidth(eastWidth); } } else if (westWidth != null) w.setWidth(westWidth); else if (eastWidth != null) e.setWidth(eastWidth); } boolean helpCollapsed = pref.isPropertyBool(UserPreference.P_HELP_COLLAPSED); e.setVisible(!helpCollapsed); helpController.render(e, this); Center windowArea = layout.getCenter(); windowContainer.createPart(windowArea); homeTab = new Tabpanel(); windowContainer.addWindow( homeTab, Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Home")), false, null); homeTab.getLinkedTab().setSclass("desktop-hometab"); homeTab.setSclass("desktop-home-tabpanel"); BusyDialog busyDialog = new BusyDialog(); busyDialog.setShadow(false); homeTab.appendChild(busyDialog); // register as 0 registerWindow(homeTab); BroadcastMessageWindow messageWindow = new BroadcastMessageWindow(pnlHead); BroadcastMsgUtil.showPendingMessage(Env.getAD_User_ID(Env.getCtx()), messageWindow); if (!layout.getDesktop().isServerPushEnabled()) { layout.getDesktop().enableServerPush(true); } Runnable runnable = new Runnable() { public void run() { try { Thread.sleep(100); } catch (InterruptedException e) { } IServerPushCallback callback = new IServerPushCallback() { public void updateUI() { Properties ctx = (Properties) layout .getDesktop() .getSession() .getAttribute(SessionContextListener.SESSION_CTX); try { ServerContext.setCurrentInstance(ctx); renderHomeTab(); } finally { ServerContext.dispose(); } } }; ServerPushTemplate template = new ServerPushTemplate(layout.getDesktop()); template.executeAsync(callback); } }; Adempiere.getThreadPoolExecutor().submit(new DesktopRunnable(runnable, layout.getDesktop())); ToolBar toolbar = new ToolBar(); windowContainer.getComponent().appendChild(toolbar); showHeader = new ToolBarButton() { @Override public void onPageDetached(Page page) { super.onPageDetached(page); if (DefaultDesktop.this.headerPopup != null) { DefaultDesktop.this.headerPopup.setPage(null); } } }; toolbar.appendChild(showHeader); showHeader.setImage(ThemeManager.getThemeResource(IMAGES_THREELINE_MENU_PNG)); showHeader.addEventListener(Events.ON_CLICK, this); showHeader.setSclass("window-container-toolbar-btn"); showHeader.setStyle("cursor: pointer; border: 1px solid transparent; padding: 2px;"); showHeader.setVisible(false); max = new ToolBarButton(); toolbar.appendChild(max); max.setImage(ThemeManager.getThemeResource(IMAGES_UPARROW_PNG)); max.addEventListener(Events.ON_CLICK, this); max.setSclass("window-container-toolbar-btn"); max.setStyle("cursor: pointer; border: 1px solid transparent; padding: 2px;"); contextHelp = new ToolBarButton(); toolbar.appendChild(contextHelp); contextHelp.setImage(ThemeManager.getThemeResource(IMAGES_CONTEXT_HELP_PNG)); contextHelp.addEventListener(Events.ON_CLICK, this); contextHelp.setSclass("window-container-toolbar-btn context-help-btn"); contextHelp.setStyle("cursor: pointer; border: 1px solid transparent; padding: 2px;"); contextHelp.setTooltiptext(Util.cleanAmp(Msg.getElement(Env.getCtx(), "AD_CtxHelp_ID"))); contextHelp.setVisible(!e.isVisible()); boolean headerCollapsed = pref.isPropertyBool(UserPreference.P_HEADER_COLLAPSED); if (headerCollapsed) { collapseHeader(); } return layout; }
/** * Lock User Interface. Called from the Worker before processing * * @param pi process info */ public void lockUI() { progressWindow = new BusyDialog(); progressWindow.setPage(this.getPage()); progressWindow.doHighlighted(); } // lockUI