/**
   * Refresh the contents of the panel with the provided server descriptor.
   *
   * @param desc the server descriptor.
   */
  private void refreshContents(final ServerDescriptor desc) {
    super.updateIndexMap(desc, hmIndexes);
    filterIndexes(hmIndexes);

    updateBaseDNComboBoxModel((DefaultComboBoxModel) baseDNs.getModel(), desc);

    // Check that all backends
    boolean allDisabled = false;
    for (BackendDescriptor backend : desc.getBackends()) {
      if (displayBackend(backend)) {
        if (backend.isEnabled()) {
          allDisabled = false;
          break;
        }
      }
    }
    if (!allDisabled) {
      updateErrorPaneAndOKButtonIfAuthRequired(
          desc,
          isLocal()
              ? INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_FOR_DISABLE_BACKEND.get()
              : INFO_CTRL_PANEL_CANNOT_CONNECT_TO_REMOTE_DETAILS.get(desc.getHostname()));
    }
    SwingUtilities.invokeLater(
        new Runnable() {
          /** {@inheritDoc} */
          public void run() {
            ViewPositions pos;
            JScrollPane scroll = Utilities.getContainingScroll(RebuildIndexPanel.this);
            if (scroll != null) {
              pos = Utilities.getViewPositions(scroll);
            } else {
              pos = Utilities.getViewPositions(RebuildIndexPanel.this);
            }

            boolean comboVisible = baseDNs.getModel().getSize() > 0;
            baseDNs.setVisible(comboVisible);
            lNoBaseDNsFound.setVisible(!comboVisible);
            addRemove.getAvailableList().repaint();
            addRemove.getSelectedList().repaint();

            Utilities.updateViewPositions(pos);
            if (!desc.isLocal()) {
              displayErrorMessage(
                  INFO_CTRL_PANEL_SERVER_REMOTE_SUMMARY.get(),
                  INFO_CTRL_PANEL_SERVER_MUST_BE_LOCAL_REBUILD_INDEX_SUMMARY.get());
              setEnabledOK(false);
            } else {
              displayMainPanel();
              setEnabledOK(true);
            }
          }
        });
  }