@Override
  public @Nullable JComponent createComponent() {
    myModel.setColumnInfos(new ColumnInfo[]{new ColumnInfo<UrlInfo, String>("") {
      @Override
      public @Nullable String valueOf(UrlInfo info) {
        return info.name;
      }

      @Override
      public boolean isCellEditable(UrlInfo info) {
        return true;
      }

      @Override
      public void setValue(UrlInfo info, String value) {
        int row = myTable.getSelectedRow();
        if (StringUtil.isEmpty(value) && row >= 0 && row < myModel.getRowCount()) {
          myModel.removeRow(row);
        }
        else {
          info.name = correctRepositoryRule(value);
          validateRepositories(Collections.singletonList(info));
        }
      }
    }});

    myTable.getColumnModel().setColumnMargin(0);
    myTable.setShowColumns(false);
    myTable.setShowGrid(false);

    myTable.getEmptyText().setText(IdeBundle.message("update.no.update.hosts"));

    myTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    ExtendableTextField cellEditor = new ExtendableTextField();
    DefaultCellEditor editor = new StatefulValidatingCellEditor(cellEditor, myDisposable).
      withStateUpdater(vi -> ValidationUtils.setExtension(cellEditor, vi));
    editor.setClickCountToStart(1);
    myTable.setDefaultEditor(Object.class, editor);

    myTable.setDefaultRenderer(Object.class, new ValidatingTableCellRendererWrapper(new ColoredTableCellRenderer() {
        {
          setIpad(JBInsets.emptyInsets());}

        @Override
        protected void customizeCellRenderer(@NotNull JTable table, @Nullable Object value, boolean selected, boolean hasFocus, int row, int column) {
          if (row >= 0 && row < myModel.getRowCount()) {
            UrlInfo info = myModel.getRowValue(row);
            setForeground(selected ? table.getSelectionForeground() : table.getForeground());
            setBackground(selected ? table.getSelectionBackground() : table.getBackground());
            append(info.name, SimpleTextAttributes.REGULAR_ATTRIBUTES);
          }
        }

        @Override
        protected SimpleTextAttributes modifyAttributes(SimpleTextAttributes attributes) {
          return attributes;
        }
      }).
      bindToEditorSize(cellEditor::getPreferredSize).
      withCellValidator((value, row, column) -> {
        if (row >= 0 && row < myModel.getRowCount()) {
          UrlInfo info = myModel.getRowValue(row);
          return info.errorTooltip == null || info.progress ? null : new ValidationInfo(info.errorTooltip);
        }
        else {
          return null;
        }
      }));

    new CellTooltipManager(myDisposable).
      withCellComponentProvider(CellComponentProvider.forTable(myTable)).
      installOn(myTable);

    return ToolbarDecorator.createDecorator(myTable).disableUpDownActions().createPanel();
  }
@Override
  public @Nullable JComponent createComponent()