JComponent (@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")); }