void (@NotNull AnActionEvent e) { final Project project = e.getRequiredData(CommonDataKeys.PROJECT); if (ChangeListManager.getInstance(project).isFreezedWithNotification(VcsBundle.message("patch.apply.cannot.apply.now"))) return; FileDocumentManager.getInstance().saveAllDocuments(); VirtualFile vFile = null; final String place = e.getPlace(); if (ActionPlaces.isPopupPlace(e.getPlace()) || ActionPlaces.MAIN_MENU.equals(place)) { vFile = e.getData(CommonDataKeys.VIRTUAL_FILE); } if (isPatchFile(vFile)) { showApplyPatch(project, vFile); } else { final FileChooserDescriptor descriptor = ApplyPatchDifferentiatedDialog.createSelectPatchDescriptor(); final VcsApplicationSettings settings = VcsApplicationSettings.getInstance(); final VirtualFile toSelect = settings.PATCH_STORAGE_LOCATION == null ? null : LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(settings.PATCH_STORAGE_LOCATION)); FileChooser.chooseFile(descriptor, project, toSelect, file -> { final VirtualFile parent = file.getParent(); if (parent != null) { settings.PATCH_STORAGE_LOCATION = parent.getPath(); } showApplyPatch(project, file); }); } }