@ApiStatus.Internal
  public void uninstallAndUpdateUi(@NotNull IdeaPluginDescriptor descriptor) {
    boolean needRestartForUninstall = performUninstall((IdeaPluginDescriptorImpl)descriptor);
    needRestart |= descriptor.isEnabled() && needRestartForUninstall;

    PluginId pluginId = descriptor.getPluginId();

    List<ListPluginComponent> listComponents = myInstalledPluginComponentMap.get(pluginId);
    if (listComponents != null) {
      for (ListPluginComponent listComponent : listComponents) {
        listComponent.updateAfterUninstall(needRestartForUninstall);
      }
    }

    List<ListPluginComponent> marketplaceComponents = myMarketplacePluginComponentMap.get(pluginId);
    if (marketplaceComponents != null) {
      for (ListPluginComponent component : marketplaceComponents) {
        if (component.myInstalledDescriptorForMarketplace != null) {
          component.updateAfterUninstall(needRestartForUninstall);
        }
      }
    }

    for (ListPluginComponent component : myInstalledPluginComponents) {
      component.updateErrors();
    }
    for (List<ListPluginComponent> plugins : myMarketplacePluginComponentMap.values()) {
      for (ListPluginComponent plugin : plugins) {
        if (plugin.myInstalledDescriptorForMarketplace != null) {
          plugin.updateErrors();
        }
      }
    }

    for (PluginDetailsPageComponent panel : myDetailPanels) {
      if (panel.getDescriptorForActions() == descriptor) {
        panel.updateAfterUninstall(needRestartForUninstall);
      }
    }
  }
@ApiStatus.Internal
  public void uninstallAndUpdateUi(@NotNull IdeaPluginDescriptor descriptor)