void (@NotNull LightweightWindowEvent event) { @Nullable UsageNode node = getSelectedUsageNode(table); Usage usage = node != null ? node.getUsage() : null; UsageInfo2UsageAdapter usageAdapter = ObjectUtils.tryCast(usage, UsageInfo2UsageAdapter.class); UsageInfo usageInfo = usageAdapter != null ? usageAdapter.getUsageInfo() : null; int preselectedRowNumber = getRowNumber(preselectedRow.get(), table); int selectedRowNumber = getRowNumber(node, table); Long popupShownTime = popupShownTimeRef.get(); Long durationTime = popupShownTime != null ? System.currentTimeMillis() - popupShownTime : null; ReadAction.nonBlocking(() -> actionHandler.buildFinishEventData(usageInfo) ).submit(AppExecutorUtil.getAppExecutorService()).onSuccess((finishEventData) -> { UsageViewStatisticsCollector.logPopupClosed(project, usageView, event.isOk(), preselectedRowNumber, selectedRowNumber, visibleUsages.size(), durationTime, finishEventData ); }); }