@Override
    protected JComponent buildComponent() {
      PluginManagerConfigurable configurable = new PluginManagerConfigurable();
      Disposer.register(parentDisposable, configurable::disposeUIResources);
      JComponent panel = createPluginsPanel(configurable);
      panel.addAncestorListener(new AncestorListenerAdapter() {
        @Override
        public void ancestorRemoved(AncestorEvent event) {
          if (!configurable.isModified()) {
            return;
          }
          ApplicationManager.getApplication().invokeLater(() -> {
            try {
              configurable.apply();
              WelcomeScreenEventCollector.logPluginsModified();
              InstalledPluginsState.getInstance().runShutdownCallback();
            }
            catch (ConfigurationException exception) {
              Logger.getInstance(PluginsTabFactory.class).error(exception);
            }
          }, ModalityState.nonModal());
        }
      });

      return panel;
    }
@Override
    protected JComponent buildComponent()