/** * Registers/unregisters a component newly attached to this page. * * @param component Component to register/unregister. * @param register If true, register the component. If false, unregister it. */ /*package*/ void registerComponent(BaseComponent component, boolean register) { if (getId() == null) { return; } String id = component.getId(); if (id == null) { id = nextComponentId(); component._setId(id); } if (register) { ids.put(id, component); } else { ids.remove(id); } Event event = new Event(register ? "register" : "unregister", this, component); fireEvent(event); }
@Override public void handleRequest(ClientRequest request) { Page page = request.getPage(); PageDefinition pageDefinition = PageDefinitionCache.getInstance().get(page.getSrc()); Synchronizer synchronizer = request.getSession().getSynchronizer(); synchronizer.startQueueing(); Page._init(page, request, synchronizer); Sessions.getInstance().notifyLifecycleListeners(request.getSession(), true); try { page.invoke("beforeInitialize", clientOptionMap); pageDefinition.materialize(page); page.invoke("afterInitialize"); page.fireEvent("afterInitialize"); } catch (Exception e) { synchronizer.clear(); throw new SessionInitException(e); } finally { synchronizer.stopQueueing(); } }