void (@Nullable IdeaPluginDescriptor descriptor) { String rating = null; String downloads = null; String size = null; Collection<String> requiredPluginNames = emptyList(); if (descriptor instanceof PluginNode pluginNode) { rating = pluginNode.getPresentableRating(); downloads = pluginNode.getPresentableDownloads(); size = pluginNode.getPresentableSize(); if (myReviewPanel != null) { updateReviews(pluginNode); } updateUrlComponent(myForumUrl, "plugins.configurable.forum.url", pluginNode.getForumUrl()); updateUrlComponent(myLicenseUrl, "plugins.configurable.license.url", pluginNode.getLicenseUrl()); updateUrlComponent(myBugtrackerUrl, "plugins.configurable.bugtracker.url", pluginNode.getBugtrackerUrl()); updateUrlComponent(myDocumentationUrl, "plugins.configurable.documentation.url", pluginNode.getDocumentationUrl()); updateUrlComponent(mySourceCodeUrl, "plugins.configurable.source.code", pluginNode.getSourceCodeUrl()); myVendorInfoPanel.show(pluginNode); requiredPluginNames = pluginNode.getDependencyNames() != null ? pluginNode.getDependencyNames() : emptyList(); } myRating.setText(myMultiTabs ? IdeBundle.message("plugins.configurable.rate.0", rating) : rating); myRating.setVisible(rating != null); myDownloads.setText(myMultiTabs ? IdeBundle.message("plugins.configurable.downloads.0", downloads) : downloads); myDownloads.setVisible(downloads != null); mySize.setText(IdeBundle.message("plugins.configurable.size.0", size)); mySize.setVisible(size != null); myRequiredPlugins.setText(IdeBundle.message("plugins.configurable.required.plugins.0", StringUtil.join(ContainerUtil.map(requiredPluginNames, x -> " • " + x), "\n"))); myRequiredPlugins.setVisible(!requiredPluginNames.isEmpty()); }