@NotNull
    private JComponent createComponent(@NotNull DiffRequest request) {
      if (request instanceof ErrorDiffRequest) {
        // TODO: explain some of ErrorDiffRequest exceptions ?
        String message = ((ErrorDiffRequest)request).getMessage();
        return createReloadMessagePanel(myContext, message, DiffBundle.message("button.reload.diff.request"), null);
      }
      if (request instanceof MessageDiffRequest) {
        String message = ((MessageDiffRequest)request).getMessage();
        return DiffUtil.createMessagePanel(message);
      }
      if (request instanceof ComponentDiffRequest) {
        return ((ComponentDiffRequest)request).getComponent(myContext);
      }
      if (request instanceof ContentDiffRequest) {
        List<DiffContent> contents = ((ContentDiffRequest)request).getContents();
        for (final DiffContent content : contents) {
          if (content instanceof FileContent && FileTypes.UNKNOWN.equals(content.getContentType())) {
            final VirtualFile file = ((FileContent)content).getFile();
            return UnknownFileTypeDiffRequest.createComponent(file.getName(), myContext);
          }
        }

        if (ContainerUtil.all(contents, it -> it instanceof EmptyContent)) {
          return DiffUtil.createMessagePanel(NoDiffRequest.INSTANCE.getMessage());
        }
      }

      LOG.info("Can't show diff for " + request.getClass().getName());
      if (request instanceof ContentDiffRequest) {
        for (DiffContent content : ((ContentDiffRequest)request).getContents()) {
          String type = content.getContentType() != null ? content.getContentType().getName() : "null";
          LOG.info(String.format("      %s, content type: %s", content.getClass().getName(), type));
        }
      }

      return DiffUtil.createMessagePanel(DiffBundle.message("error.message.cannot.show.diff"));
    }
@NotNull
    private JComponent createComponent(@NotNull DiffRequest request)