mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EA-70816 - NPE: ProjectImportProvider.canImport
This commit is contained in:
@@ -177,7 +177,7 @@ public class ImportModuleAction extends AnAction {
|
||||
@Nullable
|
||||
public static AddModuleWizard createImportWizard(@Nullable final Project project,
|
||||
@Nullable Component dialogParent,
|
||||
final VirtualFile file,
|
||||
@NotNull final VirtualFile file,
|
||||
ProjectImportProvider... providers) {
|
||||
List<ProjectImportProvider> available = ContainerUtil.filter(providers, new Condition<ProjectImportProvider>() {
|
||||
@Override
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.intellij.ide.util.projectWizard;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.projectImport.ProjectImportProvider;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
@@ -31,7 +32,7 @@ public class ModuleImportProvider extends ProjectImportProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canImport(VirtualFile fileOrDirectory, Project project) {
|
||||
public boolean canImport(@NotNull VirtualFile fileOrDirectory, Project project) {
|
||||
return project != null && !fileOrDirectory.isDirectory() && "iml".equals(fileOrDirectory.getExtension());
|
||||
}
|
||||
|
||||
|
||||
@@ -17,12 +17,14 @@ package com.intellij.openapi.vcs.checkout;
|
||||
|
||||
import com.intellij.ide.actions.ImportModuleAction;
|
||||
import com.intellij.ide.util.newProjectWizard.AddModuleWizard;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.vcs.VcsBundle;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.projectImport.ProjectImportProvider;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
@@ -31,14 +33,17 @@ import java.io.File;
|
||||
* Proposes to create a new project from the checked out sources.
|
||||
*/
|
||||
public class NewProjectCheckoutListener implements CheckoutListener {
|
||||
private static final Logger LOG = Logger.getInstance(NewProjectCheckoutListener.class);
|
||||
|
||||
@Override
|
||||
public boolean processCheckedOutDirectory(Project project, File directory) {
|
||||
VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(directory);
|
||||
LOG.assertTrue(file != null, "Can't find " + directory);
|
||||
int rc = Messages.showYesNoDialog(project, VcsBundle.message("checkout.create.project.prompt",
|
||||
ProjectCheckoutListener.getProductNameWithArticle(),
|
||||
directory.getAbsolutePath()),
|
||||
VcsBundle.message("checkout.title"), Messages.getQuestionIcon());
|
||||
if (rc == Messages.YES) {
|
||||
VirtualFile file = LocalFileSystem.getInstance().findFileByIoFile(directory);
|
||||
AddModuleWizard wizard = createImportWizard(file);
|
||||
if (wizard == null) return false;
|
||||
if (wizard.showAndGet()) {
|
||||
@@ -50,7 +55,7 @@ public class NewProjectCheckoutListener implements CheckoutListener {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected AddModuleWizard createImportWizard(VirtualFile file) {
|
||||
protected AddModuleWizard createImportWizard(@NotNull VirtualFile file) {
|
||||
return ImportModuleAction.createImportWizard(null, null, file, ProjectImportProvider.PROJECT_IMPORT_PROVIDER.getExtensions());
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ public abstract class ProjectImportProvider {
|
||||
return getBuilder().getIcon();
|
||||
}
|
||||
|
||||
public boolean canImport(VirtualFile fileOrDirectory, @Nullable Project project) {
|
||||
public boolean canImport(@NotNull VirtualFile fileOrDirectory, @Nullable Project project) {
|
||||
if (fileOrDirectory.isDirectory()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user