summaryrefslogtreecommitdiff
path: root/platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java')
-rw-r--r--platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java67
1 files changed, 40 insertions, 27 deletions
diff --git a/platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java b/platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java
index fddb2b2f50b7..861123ab7839 100644
--- a/platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java
+++ b/platform/lang-api/src/com/intellij/ide/util/projectWizard/ModuleBuilder.java
@@ -25,6 +25,8 @@ import com.intellij.openapi.module.*;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.DumbAwareRunnable;
import com.intellij.openapi.project.Project;
+import com.intellij.openapi.project.ProjectType;
+import com.intellij.openapi.project.ProjectTypeService;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.ContentEntry;
import com.intellij.openapi.roots.ModifiableRootModel;
@@ -56,12 +58,12 @@ public abstract class ModuleBuilder extends AbstractModuleBuilder {
public static final ExtensionPointName<ModuleBuilderFactory> EP_NAME = ExtensionPointName.create("com.intellij.moduleBuilder");
private static final Logger LOG = Logger.getInstance("#com.intellij.ide.util.projectWizard.ModuleBuilder");
+ private final Set<ModuleConfigurationUpdater> myUpdaters = new HashSet<ModuleConfigurationUpdater>();
+ private final EventDispatcher<ModuleBuilderListener> myDispatcher = EventDispatcher.create(ModuleBuilderListener.class);
protected Sdk myJdk;
private String myName;
@NonNls private String myModuleFilePath;
private String myContentEntryPath;
- private final Set<ModuleConfigurationUpdater> myUpdaters = new HashSet<ModuleConfigurationUpdater>();
- private final EventDispatcher<ModuleBuilderListener> myDispatcher = EventDispatcher.create(ModuleBuilderListener.class);
@NotNull
public static List<ModuleBuilder> getAllBuilders() {
@@ -81,6 +83,17 @@ public abstract class ModuleBuilder extends AbstractModuleBuilder {
});
}
+ public static void deleteModuleFile(String moduleFilePath) {
+ final File moduleFile = new File(moduleFilePath);
+ if (moduleFile.exists()) {
+ FileUtil.delete(moduleFile);
+ }
+ final VirtualFile file = LocalFileSystem.getInstance().findFileByIoFile(moduleFile);
+ if (file != null) {
+ file.refresh(false, false);
+ }
+ }
+
protected boolean isAvailable() {
return true;
}
@@ -95,6 +108,11 @@ public abstract class ModuleBuilder extends AbstractModuleBuilder {
}
@Override
+ public void setName(String name) {
+ myName = acceptParameter(name);
+ }
+
+ @Override
@Nullable
public String getBuilderId() {
ModuleType moduleType = getModuleType();
@@ -167,24 +185,19 @@ public abstract class ModuleBuilder extends AbstractModuleBuilder {
return Collections.emptyList();
}
- @Override
- public void setName(String name) {
- myName = acceptParameter(name);
- }
-
public String getModuleFilePath() {
return myModuleFilePath;
}
- public void addModuleConfigurationUpdater(ModuleConfigurationUpdater updater) {
- myUpdaters.add(updater);
- }
-
@Override
public void setModuleFilePath(@NonNls String path) {
myModuleFilePath = acceptParameter(path);
}
+ public void addModuleConfigurationUpdater(ModuleConfigurationUpdater updater) {
+ myUpdaters.add(updater);
+ }
+
@Nullable
public String getContentEntryPath() {
if (myContentEntryPath == null) {
@@ -259,6 +272,7 @@ public abstract class ModuleBuilder extends AbstractModuleBuilder {
updater.update(module, modifiableModel);
}
modifiableModel.commit();
+ setProjectType(module);
}
private void onModuleInitialized(final Module module) {
@@ -269,6 +283,17 @@ public abstract class ModuleBuilder extends AbstractModuleBuilder {
public abstract ModuleType getModuleType();
+ protected ProjectType getProjectType() {
+ return null;
+ }
+
+ protected void setProjectType(Module module) {
+ ProjectType projectType = getProjectType();
+ if (projectType != null && ProjectTypeService.getProjectType(module.getProject()) == null) {
+ ProjectTypeService.setProjectType(module.getProject(), projectType);
+ }
+ }
+
@NotNull
public Module createAndCommitIfNeeded(@NotNull Project project, @Nullable ModifiableModuleModel model, boolean runFromProjectWizard)
throws InvalidDataException, ConfigurationException, IOException, JDOMException, ModuleWithNameAlreadyExists {
@@ -295,7 +320,6 @@ public abstract class ModuleBuilder extends AbstractModuleBuilder {
return module;
}
-
public void addListener(ModuleBuilderListener listener) {
myDispatcher.addListener(listener);
}
@@ -340,17 +364,6 @@ public abstract class ModuleBuilder extends AbstractModuleBuilder {
return null;
}
- public static void deleteModuleFile(String moduleFilePath) {
- final File moduleFile = new File(moduleFilePath);
- if (moduleFile.exists()) {
- FileUtil.delete(moduleFile);
- }
- final VirtualFile file = LocalFileSystem.getInstance().findFileByIoFile(moduleFile);
- if (file != null) {
- file.refresh(false, false);
- }
- }
-
public Icon getBigIcon() {
return getModuleType().getBigIcon();
}
@@ -396,14 +409,14 @@ public abstract class ModuleBuilder extends AbstractModuleBuilder {
myModuleFilePath = from.getModuleFilePath();
}
- public void setModuleJdk(Sdk jdk) {
- myJdk = jdk;
- }
-
public Sdk getModuleJdk() {
return myJdk;
}
+ public void setModuleJdk(Sdk jdk) {
+ myJdk = jdk;
+ }
+
@NotNull
public FrameworkRole getDefaultAcceptableRole() {
return getModuleType().getDefaultAcceptableRole();