void (@NotNull List<UnknownMissingSdkFixLocal> localFixes) { if (localFixes.isEmpty()) return; Set<@Nls String> usages = new TreeSet<>(); for (var entry : localFixes) { UnknownSdkLocalSdkFix fix = entry.getLocalSdkFix(); String usageText = ProjectBundle.message("notification.text.sdk.usage.is.set.to", entry.getSdkNameForUi(), fix.getVersionString()); usages.add(new HtmlBuilder() .append(usageText) .append(HtmlChunk.br()) .append(SdkListPresenter.presentDetectedSdkPath(fix.getExistingSdkHome())) .toString()); } @Nls String message = StringUtil.join(usages, "<br/><br/>"); String title, change; if (localFixes.size() == 1) { var entry = localFixes.iterator().next(); UnknownSdk info = entry.getUnknownSdk(); String sdkTypeName = info.getSdkType().getPresentableName(); title = ProjectBundle.message("notification.title.sdk.configured", sdkTypeName); change = ProjectBundle.message("notification.link.change.sdk", sdkTypeName); } else { title = ProjectBundle.message("notification.title.sdks.configured"); change = ProjectBundle.message("notification.link.change.sdks"); } if (message.isBlank()) return; NotificationGroupManager.getInstance().getNotificationGroup("Missing SDKs") .createNotification(title, message, NotificationType.INFORMATION) .setImportant(true) .addAction(createSimple( change, () -> ProjectSettingsService.getInstance(myProject).openProjectSettings())) .notify(myProject); }