void (final boolean testingFinished) { if (myFailedTestCount > 0) { myStatusLine.setStatusColor(ColorProgressBar.RED); } // launchedAndFinished - is launched and not in progress. If we remove "launched' that onTestingStarted() before // initializing will be "launchedAndFinished" final boolean launchedAndFinished = myTestsRootNode.wasLaunched() && !myTestsRootNode.isInProgress(); if (!TestsPresentationUtil.hasNonDefaultCategories(myMentionedCategories)) { myStatusLine.formatTestMessage(isUndefined() ? -1 : myTotalTestCount, myFinishedTestCount, myFailedTestCount, myIgnoredTestCount, myTestsRootNode.getDuration(), myEndTime); } else { myStatusLine.setText(TestsPresentationUtil.getProgressStatus_Text(myStartTime, myEndTime, myTotalTestCount, myFinishedTestCount, myFailedTestCount, myMentionedCategories, launchedAndFinished)); } if (testingFinished) { boolean noTestsWereRun = myTotalTestCount == 0 && (myTestsRootNode.wasLaunched() || !myTestsRootNode.isTestsReporterAttached()); myStatusLine.onTestsDone(noTestsWereRun ? null : () -> { TestStateInfo.Magnitude magnitude = myTestsRootNode.getMagnitudeInfo(); if (magnitude == null) return null; return TestIconMapper.getToolbarIcon(magnitude, myTestsRootNode.hasErrors(), () -> myTestsRootNode.hasPassedTests()); }); final Color editorBackground = EditorColorsManager.getInstance().getGlobalScheme().getDefaultBackground(); myConsole.setBorder(new CompoundBorder(IdeBorderFactory.createBorder(SideBorder.RIGHT | SideBorder.TOP), new SideBorder(editorBackground, SideBorder.LEFT))); revalidate(); repaint(); // else color will be according failed/passed tests } UIUtil.invokeLaterIfNeeded(() -> { myTreeView.setAccessibleStatus(myStatusLine.getStateText()); }); }