mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-30 10:20:15 +07:00
import module: cleanup builders after import; init "update" state (IDEA-96623)
This commit is contained in:
@@ -18,6 +18,7 @@ package com.intellij.ide.actions;
|
||||
import com.intellij.ide.impl.NewProjectUtil;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.ide.util.newProjectWizard.AddModuleWizard;
|
||||
import com.intellij.ide.util.projectWizard.ProjectBuilder;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
@@ -67,18 +68,25 @@ public class ImportModuleAction extends AnAction {
|
||||
}
|
||||
|
||||
public static List<Module> createFromWizard(Project project, AddModuleWizard wizard) {
|
||||
if (wizard.getStepCount() > 0) {
|
||||
if (project != null) {
|
||||
if (project == null && wizard.getStepCount() > 0) {
|
||||
Project newProject = NewProjectUtil.createFromWizard(wizard, project);
|
||||
return newProject == null ? Collections.<Module>emptyList() : Arrays.asList(ModuleManager.getInstance(newProject).getModules());
|
||||
}
|
||||
|
||||
final ProjectBuilder projectBuilder = wizard.getProjectBuilder();
|
||||
try {
|
||||
if (wizard.getStepCount() > 0) {
|
||||
Module module = new NewModuleAction().createModuleFromWizard(project, null, wizard);
|
||||
return Collections.singletonList(module);
|
||||
}
|
||||
else {
|
||||
Project newProject = NewProjectUtil.createFromWizard(wizard, project);
|
||||
return newProject == null ? Collections.<Module>emptyList() : Arrays.asList(ModuleManager.getInstance(newProject).getModules());
|
||||
return projectBuilder.commit(project);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return wizard.getProjectBuilder().commit(project);
|
||||
finally {
|
||||
if (projectBuilder != null) {
|
||||
projectBuilder.cleanup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.projectImport.ProjectImportBuilder;
|
||||
import com.intellij.projectImport.ProjectImportProvider;
|
||||
import com.intellij.ui.IdeBorderFactory;
|
||||
import com.intellij.util.Function;
|
||||
@@ -142,7 +143,9 @@ public class AddModuleWizard extends AbstractWizard<ModuleWizardStep>
|
||||
provider.getBuilder().setFileToImport(defaultPath);
|
||||
}
|
||||
if (myImportProviders.length == 1) {
|
||||
myWizardContext.setProjectBuilder(myImportProviders[0].getBuilder());
|
||||
final ProjectImportBuilder builder = myImportProviders[0].getBuilder();
|
||||
myWizardContext.setProjectBuilder(builder);
|
||||
builder.setUpdate(getWizardContext().getProject() != null);
|
||||
}
|
||||
}
|
||||
init();
|
||||
|
||||
Reference in New Issue
Block a user