mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
do not 'import' or 'create' already opened project (EA-73474)
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
package com.intellij.ide.actions;
|
||||
|
||||
import com.intellij.ide.impl.NewProjectUtil;
|
||||
import com.intellij.ide.impl.ProjectUtil;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.ide.util.newProjectWizard.AbstractProjectWizard;
|
||||
import com.intellij.ide.util.newProjectWizard.AddModuleWizard;
|
||||
@@ -30,9 +31,9 @@ import com.intellij.openapi.fileChooser.FileChooserFactory;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.roots.ui.configuration.actions.NewModuleAction;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.projectImport.ProjectImportProvider;
|
||||
@@ -132,6 +133,12 @@ public class ImportModuleAction extends AnAction {
|
||||
}
|
||||
|
||||
final VirtualFile file = files[0];
|
||||
for (Project p : ProjectManager.getInstance().getOpenProjects()) {
|
||||
if (ProjectUtil.isSameProject(file.getPath(), p)) {
|
||||
ProjectUtil.focusProjectWindow(p, false);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
PropertiesComponent.getInstance().setValue(LAST_IMPORTED_LOCATION, file.getPath());
|
||||
return createImportWizard(project, dialogParent, file, providers);
|
||||
}
|
||||
|
||||
@@ -84,6 +84,13 @@ public class NewProjectUtil {
|
||||
private static Project doCreate(final AbstractProjectWizard dialog, @Nullable Project projectToClose) throws IOException {
|
||||
final ProjectManagerEx projectManager = ProjectManagerEx.getInstanceEx();
|
||||
final String projectFilePath = dialog.getNewProjectFilePath();
|
||||
for (Project p : ProjectManager.getInstance().getOpenProjects()) {
|
||||
if (ProjectUtil.isSameProject(projectFilePath, p)) {
|
||||
ProjectUtil.focusProjectWindow(p, false);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
final ProjectBuilder projectBuilder = dialog.getProjectBuilder();
|
||||
|
||||
try {
|
||||
|
||||
@@ -17,12 +17,14 @@ package com.intellij.ide.util.projectWizard;
|
||||
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.ide.highlighter.ProjectFileType;
|
||||
import com.intellij.ide.impl.ProjectUtil;
|
||||
import com.intellij.ide.util.BrowseFilesListener;
|
||||
import com.intellij.openapi.application.ApplicationInfo;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -161,7 +163,12 @@ public class NamePathComponent extends JPanel{
|
||||
|
||||
File file = new File(projectDirectory);
|
||||
if (file.exists() && !file.canWrite()) {
|
||||
throw new ConfigurationException(String.format("Directory '%s' is not writable!\nPlease choose another project location.", projectDirectory));
|
||||
throw new ConfigurationException(String.format("Directory '%s' is not seem to be writable. Please consider another location.", projectDirectory));
|
||||
}
|
||||
for (Project p : ProjectManager.getInstance().getOpenProjects()) {
|
||||
if (ProjectUtil.isSameProject(projectDirectory, p)) {
|
||||
throw new ConfigurationException(String.format("Directory '%s' is already taken by the project '%s'. Please consider another location.", projectDirectory, p.getName()));
|
||||
}
|
||||
}
|
||||
|
||||
boolean shouldContinue = true;
|
||||
|
||||
Reference in New Issue
Block a user