/** @return the renderer of intrinsic blip state. Subclasses may override. */ protected BlipQueueRenderer createBlipQueueRenderer() { DomAsViewProvider domAsView = stageOne.getDomAsViewProvider(); ReplyManager replyManager = new ReplyManager(getModelAsViewProvider()); // Add all doodads here. DocumentRegistries doodads = installDoodads(DocumentRegistries.builder()) // \u2620 .use(InlineAnchorLiveRenderer.installer(getViewIdMapper(), replyManager, domAsView)) .use(Gadget.install(getProfileManager(), getSupplement(), getSignedInUser())) .build(); LiveConversationViewRenderer live = LiveConversationViewRenderer.create( SchedulerInstance.getLowPriorityTimer(), getConversations(), getModelAsViewProvider(), getBlipDetailer(), replyManager, getThreadReadStateMonitor(), getProfileManager(), getSupplement()); live.init(); BlipPager pager = BlipPager.create( getDocumentRegistry(), doodads, domAsView, getModelAsViewProvider(), getBlipDetailer(), stageOne.getWavePanel().getGwtPanel()); // Collect various components required for paging blips in/out. PagingHandlerProxy pagingHandler = PagingHandlerProxy.create( // \u2620 // Enables and disables the document rendering, as well blip metadata. pager, // Registers and deregisters profile listeners for name changes. live); return BlipQueueRenderer.create(pagingHandler); }
/** @return the scheduler to use for RPCs. Subclasses may override. */ protected CollectiveScheduler createRpcScheduler() { // Use a scheduler that runs closely-timed tasks at the same time. return new OptimalGroupingScheduler(SchedulerInstance.getLowPriorityTimer()); }