DiffRequest (@Nullable Project project, @Nullable VirtualFile file, @NotNull List<String> contents, @Nullable @NlsContexts.DialogTitle String windowTitle, @NotNull List<@NlsContexts.Label String> titles) { assert contents.size() == 3; assert titles.size() == 3; if (windowTitle == null) windowTitle = getPatchTitle(file); String localTitle = StringUtil.notNullize(titles.get(0), VcsBundle.message("patch.apply.conflict.local.version")); String baseTitle = StringUtil.notNullize(titles.get(1), DiffBundle.message("merge.version.title.base")); String patchedTitle = StringUtil.notNullize(titles.get(2), VcsBundle.message("patch.apply.conflict.patched.version")); FileType fileType = file != null ? file.getFileType() : null; DiffContentFactory contentFactory = DiffContentFactory.getInstance(); DocumentContent localContent = file != null ? contentFactory.createDocument(project, file) : null; if (localContent == null) localContent = contentFactory.create(project, contents.get(0), fileType); DocumentContent baseContent = contentFactory.create(project, contents.get(1), fileType); DocumentContent patchedContent = contentFactory.create(project, contents.get(2), fileType); return new SimpleDiffRequest(windowTitle, localContent, baseContent, patchedContent, localTitle, baseTitle, patchedTitle); }