@Override
  public @Nullable JComponent createComponent() {
    JBList<ProjectExternalDependency> dependenciesList = new JBList<>();
    dependenciesList.setCellRenderer(new ColoredListCellRenderer<>() {
      @Override
      protected void customizeCellRenderer(@NotNull JList<? extends ProjectExternalDependency> list, ProjectExternalDependency dependency,
                                           int index, boolean selected, boolean hasFocus) {
        if (dependency instanceof DependencyOnPlugin value) {
          append(getPluginNameById(value.getPluginId()), SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES);
          String minVersion = value.getMinVersion();
          String maxVersion = value.getMaxVersion();
          if (minVersion != null && minVersion.equals(maxVersion)) {
            append(IdeBundle.message("required.plugin.exact.version", minVersion));
          }
          else if (minVersion != null && maxVersion != null) {
            append(IdeBundle.message("required.plugin.between.versions", minVersion, maxVersion));
          }
          else if (minVersion != null) {
            append(IdeBundle.message("required.plugin.at.least.versions", minVersion));
          }
          else if (maxVersion != null) {
            append(IdeBundle.message("required.plugin.at.most.versions", maxVersion));
          }
        }
        else {
          LOG.error("Unsupported external dependency: " + dependency.getClass());
          @NlsSafe String dependencyDescription = dependency.toString();
          append(dependencyDescription);
        }
      }
    });
    new DoubleClickListener() {
      @Override
      protected boolean onDoubleClick(@NotNull MouseEvent e) {
        return editSelectedDependency(dependenciesList);
      }
    }.installOn(dependenciesList);

    dependenciesList.setModel(myListModel);
    JPanel dependenciesPanel = ToolbarDecorator.createDecorator(dependenciesList)
      .disableUpDownActions()
      .setAddAction(new AnActionButtonRunnable() {
        @Override
        public void run(AnActionButton button) {
          replaceDependency(new DependencyOnPlugin("", null, null), dependenciesList);
        }
      })
      .setEditAction(new AnActionButtonRunnable() {
        @Override
        public void run(AnActionButton button) {
          editSelectedDependency(dependenciesList);
        }
      })
      .createPanel();

    String text = XmlStringUtil
      .wrapInHtml(IdeBundle.message("settings.required.plugins.title", ApplicationNamesInfo.getInstance().getFullProductName()));
    JBLabel label = new JBLabel(text);
    label.setBorder(JBUI.Borders.emptyBottom(5));
    return JBUI.Panels.simplePanel(0, UIUtil.DEFAULT_VGAP).addToCenter(dependenciesPanel).addToTop(label);
  }
@Override
  public @Nullable JComponent createComponent()