in src/org/jetbrains/r/packages/remote/ui/RInstalledPackagesPanelBase.java [561:600]
public void doUpdatePackages(final @NotNull RPackageManagementService packageManagementService) {
onUpdateStarted();
ProgressManager.getInstance().run(new Task.Backgroundable(myProject,
LOADING_PACKAGES_LIST_TITLE,
true,
PerformInBackgroundOption.ALWAYS_BACKGROUND) {
@Override
public void run(@NotNull ProgressIndicator indicator) {
List<RInstalledPackage> packages = List.of();
try {
packages = packageManagementService.getInstalledPackagesList();
}
finally {
List<Object[]> rows = ContainerUtil.map(packages,
pkg -> new Object[]{
"",
pkg,
pkg.getDescription().get(TITLE),
pkg.getVersion(),
"",
""
});
final boolean shouldFetchLatestVersionsForOnlyInstalledPackages = shouldFetchLatestVersionsForOnlyInstalledPackages();
UIUtil.invokeLaterIfNeeded(() -> {
if (packageManagementService == myPackageManagementService) {
myPackagesTableModel.getDataVector().clear();
for (Object[] row : rows) {
myPackagesTableModel.addRow(row);
}
onUpdateFinished();
if (shouldFetchLatestVersionsForOnlyInstalledPackages) {
setLatestVersionsForInstalledPackages();
}
}
});
}
}
});
}