void (@NotNull ResolvedTracingResult resolvedTrace, @NotNull EvaluationContextImpl context) { if (Disposer.isDisposed(myDisposable)) { return; } final ResolvedStreamChain chain = resolvedTrace.getResolvedChain(); assert chain.length() == myTabContents.size(); final List<TraceControllerImpl> controllers = createControllers(resolvedTrace); if (controllers.isEmpty()) return; final List<TraceElement> trace = controllers.get(0).getTrace(); final CollectionTree tree = new CollectionTree(trace, context); final CollectionView sourceView = new CollectionView(tree); controllers.get(0).register(sourceView); myTabContents.get(0).setContent(sourceView, BorderLayout.CENTER); for (int i = 1; i < myTabContents.size(); i++) { if (i == myTabContents.size() - 1 && (resolvedTrace.exceptionThrown() || resolvedTrace.getSourceChain().getTerminationCall().getResultType().equals(JavaTypes.INSTANCE.getVOID()))) { break; } final MyPlaceholder tab = myTabContents.get(i); final TraceController previous = controllers.get(i - 1); final TraceController current = controllers.get(i); final StreamTracesMappingView view = new StreamTracesMappingView(context, previous, current); tab.setContent(view, BorderLayout.CENTER); } final TraceElement result = resolvedTrace.getResult(); final MyPlaceholder resultTab = myTabContents.get(myTabContents.size() - 1); if (resolvedTrace.exceptionThrown()) { JBLabel label = new JBLabel(StreamDebuggerBundle.message("tab.content.exception.thrown"), SwingConstants.CENTER); resultTab.setContent(label, BorderLayout.CENTER); setTitle(StreamDebuggerBundle.message("stream.debugger.dialog.with.exception.title")); final ExceptionView exceptionView = new ExceptionView(context, result); Disposer.register(myDisposable, exceptionView); myTabsPane.insertTab(StreamDebuggerBundle.message("exception.tab.name"), AllIcons.Nodes.ErrorIntroduction, exceptionView, "", 0); myTabsPane.setSelectedIndex(0); } else if (resolvedTrace.getSourceChain().getTerminationCall().getResultType().equals(JavaTypes.INSTANCE.getVOID())) { JBLabel label = new JBLabel(StreamDebuggerBundle.message("tab.content.no.result"), SwingConstants.CENTER); resultTab.setContent(label, BorderLayout.CENTER); } final FlatView flatView = new FlatView(controllers, context); myFlatContent.setContent(flatView, BorderLayout.CENTER); myCenterPane.revalidate(); myCenterPane.repaint(); }