in src/org/jetbrains/r/packages/remote/ui/RInstalledPackagesPanelBase.java [684:714]
public Component getTableCellRendererComponent(final JTable table, final Object value, final boolean isSelected,
final boolean hasFocus, final int row, final int column) {
RInstalledPackage aPackage = getInstalledPackageAt(table, row);
if (aPackage == null) return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (column == PACKAGE_NAME_COLUMN) {
PointerInfo info = MouseInfo.getPointerInfo();
Point columnRow = (info != null) ? getMouseColumnRow(info.getLocation(), table) : new Point(-1, -1);
myPackageNameLinkLabel.setText(aPackage.getName());
myPackageNameLinkLabel.setUnderline(columnRow.x == column && columnRow.y == row);
return myPackageNameLinkLabel;
}
if (column == BROWSE_COLUMN) {
myLabel.setText("");
myLabel.setIcon(AllIcons.General.Web);
return myLabel;
}
if (column == UNINSTALL_COLUMN) {
myLabel.setText("");
var canUninstall = myPackageManagementService.canUninstallPackage(aPackage);
var icon = canUninstall ? AllIcons.Diff.Remove : null;
myLabel.setIcon(icon);
return myLabel;
}
if (column == IS_LOADED_COLUMN) {
myIsLoadedCheckBox.setText("");
myIsLoadedCheckBox.setBackground(myPackagesTable.getBackground());
myIsLoadedCheckBox.setSelected(myPackageManagementService.isPackageLoaded(aPackage.getName()));
return myIsLoadedCheckBox;
}
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}