From b3980d7f3d013f82f20ac764c47e44358cdb00e0 Mon Sep 17 00:00:00 2001 From: Nikita Iarychenko Date: Fri, 7 Feb 2025 10:29:28 +0400 Subject: [PATCH] 243 feature/29/hightlight axiom jdk simple (cherry picked from commit 163535d225638bd26e63dbd4b14723e9ef3734d4) (cherry picked from commit e4517868e505203baf86a33401527332cd826a56) (cherry picked from commit e27fddc012a0193a9ef5358d29ebc764902d67fc) (cherry picked from commit 6ca0ab9d475c739ddde87d7f2c30808a65fc36a3) (cherry picked from commit 4036889dfa5a843c8d8ec041a407d3cf329cc5a1) --- .../impl/jdkDownloader/JdkDownloadDialog.kt | 16 ++++++++++++++-- .../projectRoots/impl/jdkDownloader/JdkList.kt | 4 ++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloadDialog.kt b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloadDialog.kt index 8634755a423f..922c5e22dae7 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloadDialog.kt +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloadDialog.kt @@ -117,7 +117,8 @@ private class JdkVersionVendorCombobox: ComboBox() { isSwingPopup = false renderer = listCellRenderer("") { - text(value.item.product.packagePresentationText) + val title = value.item.product.packagePresentationText.replace("Axiom JSC", "").trim() + text(title) text(value.item.jdkVersion) { foreground = greyForeground @@ -138,7 +139,18 @@ private class JdkVersionVendorCombobox: ComboBox() { } } -private fun List.sortedForUI() = this.sortedBy { it.item.product.packagePresentationText.lowercase() } + +private fun List.sortedForUI() = this + .sortedWith( + Comparator { i1, i2 -> + val s1: String = i1.item.product.packagePresentationText + val s2: String = i2.item.product.packagePresentationText + if (s1.contains("Axiom", ignoreCase = true)) -1 + else s1.compareTo(s2) + } + ) + +private fun isLicenseAcceptedJDK(vendor: JdkVersionVendorItem): Boolean = vendor.item.isLicenseAccepted @VisibleForTesting @Internal diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkList.kt b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkList.kt index 5cb4b411564d..d36f8d9e5fc9 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkList.kt +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkList.kt @@ -97,6 +97,8 @@ data class JdkItem( val jdkVendorVersion: String?, val suggestedSdkName: String, + val isLicenseAccepted: Boolean, + val os: String, /** * @see presentableArchIfNeeded @@ -484,6 +486,8 @@ object JdkListParser { jdkVendorVersion = (item["jdk_vendor_version"] as? JsonPrimitive)?.contentOrNull, suggestedSdkName = (item["suggested_sdk_name"] as? JsonPrimitive)?.contentOrNull ?: return emptyList(), + isLicenseAccepted = item["is_license_accepted"]?.let { filters.testPredicate(it) == true } ?: false, + os = (pkg["os"] as? JsonPrimitive)?.contentOrNull ?: return emptyList(), arch = (pkg["arch"] as? JsonPrimitive)?.contentOrNull ?: return emptyList(), packageType = (pkg["package_type"] as? JsonPrimitive)?.contentOrNull?.let(JdkPackageType.Companion::findType) ?: return emptyList(),