Maven: fixes for importing from the Project Structure

This commit is contained in:
Anton.Makeev
2009-11-16 15:06:39 +03:00
parent 9c4307667a
commit e1980ced46
4 changed files with 27 additions and 24 deletions
@@ -25,6 +25,7 @@ import com.intellij.ide.util.projectWizard.ModuleBuilder;
import com.intellij.ide.util.projectWizard.ProjectBuilder;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.ModifiableModuleModel;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
@@ -63,6 +64,8 @@ import java.util.List;
* Date: Dec 15, 2003
*/
public class ModulesConfigurator implements ModulesProvider, ModuleEditor.ChangeListener {
private static final Logger LOG = Logger.getInstance("#" + ModulesConfigurator.class.getName());
private final Project myProject;
//private final ModuleStructureConfigurable myProjectRootConfigurable;
@@ -149,17 +152,16 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change
}
public ModuleRootModel getRootModel(@NotNull Module module) {
final ModuleEditor editor = getModuleEditor(module);
ModuleRootModel rootModel = null;
if (editor != null) {
rootModel = editor.getRootModel();
}
if (rootModel == null && getModule(module.getName()) != null) {
createModuleEditor(module);
rootModel = getModuleEditor(module).getRootModel();
}
return getEditor(module).getRootModel();
}
return rootModel;
public ModuleEditor getEditor(Module module) {
LOG.assertTrue(getModule(module.getName()) != null, "Module has been deleted");
ModuleEditor editor = getModuleEditor(module);
if (editor == null) {
editor = createModuleEditor(module);
}
return editor;
}
public FacetModel getFacetModel(@NotNull Module module) {
@@ -185,7 +187,7 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change
myModified = false;
}
public void createModuleEditor(final Module module) {
public ModuleEditor createModuleEditor(final Module module) {
final ModuleEditor moduleEditor = new ModuleEditor(myProject, this, module) {
@Override
public ProjectFacetsConfigurator getFacetsConfigurator() {
@@ -204,6 +206,7 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change
moduleEditor.removeChangeListener(configurator);
}
});
return moduleEditor;
}
public void moduleStateChanged(final ModifiableRootModel moduleRootModel) {
@@ -15,29 +15,32 @@
*/
package org.jetbrains.idea.maven.importing;
import com.intellij.facet.ModifiableFacetModel;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.module.ModifiableModuleModel;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
import com.intellij.openapi.roots.ui.configuration.ModulesConfigurator;
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesModifiableModel;
import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectLibrariesConfigurable;
import com.intellij.openapi.application.ModalityState;
import com.intellij.facet.ModifiableFacetModel;
import com.intellij.packaging.artifacts.ModifiableArtifactModel;
import org.jetbrains.idea.maven.utils.MavenUtil;
public class MavenUIModifiableModelsProvider extends MavenBaseModifiableModelsProvider {
private final ModifiableModuleModel myModel;
private final ModulesProvider myModulesProvider;
private final ModulesConfigurator myModulesConfigurator;
private final ModifiableArtifactModel myModifiableArtifactModel;
private final LibrariesModifiableModel myLibrariesModel;
public MavenUIModifiableModelsProvider(Project project, ModifiableModuleModel model, ModulesProvider modulesProvider, ModifiableArtifactModel modifiableArtifactModel) {
public MavenUIModifiableModelsProvider(Project project,
ModifiableModuleModel model,
ModulesConfigurator modulesConfigurator,
ModifiableArtifactModel modifiableArtifactModel) {
super(project);
myModel = model;
myModulesProvider = modulesProvider;
myModulesConfigurator = modulesConfigurator;
myModifiableArtifactModel = modifiableArtifactModel;
ProjectLibrariesConfigurable configurable = ProjectLibrariesConfigurable.getInstance(project);
@@ -56,12 +59,12 @@ public class MavenUIModifiableModelsProvider extends MavenBaseModifiableModelsPr
@Override
protected ModifiableRootModel doGetRootModel(Module module) {
return (ModifiableRootModel)myModulesProvider.getRootModel(module);
return myModulesConfigurator.getEditor(module).getModifiableRootModel();
}
@Override
protected ModifiableFacetModel doGetFacetModel(Module module) {
return (ModifiableFacetModel)myModulesProvider.getFacetModel(module);
return (ModifiableFacetModel)myModulesConfigurator.getFacetModel(module);
}
public Library[] getAllLibraries() {
@@ -922,8 +922,6 @@ public class MavenProjectsManager extends SimpleProjectComponent implements Pers
}
fireScheduledImportsChanged();
long before = System.currentTimeMillis();
final Ref<MavenProjectImporter> importer = new Ref<MavenProjectImporter>();
final Ref<List<MavenProjectsProcessorTask>> postTasks = new Ref<List<MavenProjectsProcessorTask>>();
@@ -952,8 +950,6 @@ public class MavenProjectsManager extends SimpleProjectComponent implements Pers
}).waitFor();
}
long importTime = System.currentTimeMillis() - before;
//System.out.println("Import/Commit time: " + importTime + "/" + modelsProvider.getCommitTime() + " ms");
VirtualFileManager.getInstance().refresh(isNormalProject());
schedulePostImportTasts(postTasks.get());
@@ -20,6 +20,7 @@ import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.roots.ui.configuration.ModulesConfigurator;
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.projectImport.ProjectImportBuilder;
@@ -94,7 +95,7 @@ public class MavenProjectBuilder extends ProjectImportBuilder<MavenProject> {
boolean isFromUI = model != null;
return manager.importProjects(isFromUI
? new MavenUIModifiableModelsProvider(project, model, modulesProvider, artifactModel)
? new MavenUIModifiableModelsProvider(project, model, (ModulesConfigurator)modulesProvider, artifactModel)
: new MavenDefaultModifiableModelsProvider(project));
}