PY-33729 Packaging(fix): Differentiate conda- and pip-installed packages in the list

GitOrigin-RevId: 4cf31ad0ec6415d22c8410ca72ca65f5495d6af3
This commit is contained in:
Nikita.Ashihmin
2024-09-02 12:09:21 +00:00
committed by intellij-monorepo-bot
parent cb9efa4ec1
commit 3c9b04806c
2 changed files with 16 additions and 0 deletions
@@ -2,17 +2,32 @@
package com.jetbrains.python.packaging.toolwindow.model
import com.intellij.openapi.util.NlsSafe
import com.jetbrains.python.icons.PythonIcons
import com.jetbrains.python.packaging.PyPackageVersion
import com.jetbrains.python.packaging.PyPackageVersionComparator
import com.jetbrains.python.packaging.PyPackageVersionNormalizer
import com.jetbrains.python.packaging.common.PythonPackage
import com.jetbrains.python.packaging.conda.CondaPackage
import com.jetbrains.python.packaging.repository.PyPackageRepository
import com.jetbrains.python.psi.icons.PythonPsiApiIcons
import javax.swing.Icon
sealed class DisplayablePackage(@NlsSafe val name: String, val repository: PyPackageRepository)
class InstalledPackage(val instance: PythonPackage, repository: PyPackageRepository, val nextVersion: PyPackageVersion? = null) : DisplayablePackage(instance.name, repository) {
val currentVersion = PyPackageVersionNormalizer.normalize(instance.version)
val icon: Icon?
get() {
val condaPackage = instance as? CondaPackage ?: return null
return if (condaPackage.installedWithPip) {
PythonPsiApiIcons.Python
}
else {
PythonIcons.Python.Anaconda
}
}
val canBeUpdated: Boolean
get() {
currentVersion ?: return false
@@ -88,6 +88,7 @@ internal class PyPaginationAwareRenderer : DefaultTableCellRenderer() {
versionLabel.text = version
versionPanel.add(versionLabel)
}
versionLabel.icon = (value as? InstalledPackage)?.icon
return versionPanel
}