import module: cleanup builders after import; init "update" state (IDEA-96623)

This commit is contained in:
anna
2012-12-07 13:23:05 +01:00
parent 553abf6609
commit 77465f3f47
2 changed files with 18 additions and 7 deletions

View File

@@ -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();
}
}
}

View File

@@ -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();