/** Invokes {@link #getDesktopCache}'s {@link DesktopCache#sessionWillPassivate}. */ public void sessionWillPassivate(Session sess) { final DesktopCache dc = ((SessionCtrl) sess).getDesktopCache(); if (dc != null) dc.sessionWillPassivate(sess); }
/** Invokes {@link #getDesktopCache}'s {@link DesktopCache#sessionDidActivate}. */ public void sessionDidActivate(Session sess) { final DesktopCache dc = ((SessionCtrl) sess).getDesktopCache(); if (dc != null) dc.sessionDidActivate(sess); }
public DesktopCache getDesktopCache(Session sess) { final SessionCtrl sessCtrl = (SessionCtrl) sess; DesktopCache dc = sessCtrl.getDesktopCache(); if (dc == null) { synchronized (this) { dc = sessCtrl.getDesktopCache(); if (dc == null) { dc = new SimpleDesktopCache(_wapp.getConfiguration()); sessCtrl.setDesktopCache(dc); } } } return dc; }
/** * Returns the desktop from the given websocket session. * * @param wsession websocket session * @return a desktop, null if desktop not found */ public static Desktop getDesktop(Session wsession) { org.zkoss.zk.ui.Session session = (org.zkoss.zk.ui.Session) wsession.getUserProperties() .get(ZKWebSocket.class.getName()); if (session == null) throw new IllegalStateException("ZK Session cannot be null!"); List<String> dtids = wsession.getRequestParameterMap().get("dtid"); if (dtids.isEmpty()) throw new IllegalStateException("the value of the key with 'dtid' cannot be null!"); DesktopCache desktopCache = ((SessionCtrl) session).getDesktopCache(); return desktopCache != null ? desktopCache.getDesktopIfAny(dtids.get(0)) : null; } }
public void sessionDestroyed(Session sess) { final SessionCtrl sessCtrl = (SessionCtrl) sess; final DesktopCache dc = sessCtrl.getDesktopCache(); if (dc != null) { sessCtrl.setDesktopCache(null); dc.stop(); } }