diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/SelectTemplateStep.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/SelectTemplateStep.java index 125bf75daf8a..afb5c60fb6b6 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/SelectTemplateStep.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/SelectTemplateStep.java @@ -97,7 +97,7 @@ public class SelectTemplateStep extends ModuleWizardStep implements SettingsStep private final ProjectTypesList myList; @Nullable - private ModuleBuilder myModuleBuilder; + private AbstractModuleBuilder myModuleBuilder; public SelectTemplateStep(WizardContext context, StepSequence sequence, final MultiMap map) { diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/StepSequence.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/StepSequence.java index 2ae1459215b9..dc7336b7e13d 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/StepSequence.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/StepSequence.java @@ -20,7 +20,7 @@ */ package com.intellij.ide.util.newProjectWizard; -import com.intellij.ide.util.projectWizard.ModuleBuilder; +import com.intellij.ide.util.projectWizard.AbstractModuleBuilder; import com.intellij.ide.util.projectWizard.ModuleWizardStep; import com.intellij.ide.util.projectWizard.WizardContext; import com.intellij.openapi.module.ModuleType; @@ -53,7 +53,7 @@ public class StepSequence { myCommonFinishingSteps.add(Pair.create(step, suitableTypes)); } - public void addStepsForBuilder(ModuleBuilder builder, WizardContext wizardContext, ModulesProvider modulesProvider) { + public void addStepsForBuilder(AbstractModuleBuilder builder, WizardContext wizardContext, ModulesProvider modulesProvider) { String id = builder.getBuilderId(); if (!mySpecificSteps.containsKey(id)) { mySpecificSteps.put(id, Arrays.asList(builder.createWizardSteps(wizardContext, modulesProvider))); diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromTemplateMode.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromTemplateMode.java index 246eec5f0bb4..cb669812fa9f 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromTemplateMode.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromTemplateMode.java @@ -18,7 +18,7 @@ package com.intellij.ide.util.newProjectWizard.modes; import com.intellij.ide.util.newProjectWizard.SelectTemplateStep; import com.intellij.ide.util.newProjectWizard.StepSequence; import com.intellij.ide.util.newProjectWizard.TemplatesGroup; -import com.intellij.ide.util.projectWizard.ModuleBuilder; +import com.intellij.ide.util.projectWizard.AbstractModuleBuilder; import com.intellij.ide.util.projectWizard.WizardContext; import com.intellij.openapi.project.ProjectBundle; import com.intellij.openapi.roots.ui.configuration.ModulesProvider; @@ -125,7 +125,7 @@ public class CreateFromTemplateMode extends WizardMode { @Nullable @Override - public ModuleBuilder getModuleBuilder() { + public AbstractModuleBuilder getModuleBuilder() { final ProjectTemplate template = mySelectTemplateStep.getSelectedTemplate(); if (template == null) { return null; diff --git a/platform/lang-api/src/com/intellij/ide/util/projectWizard/AbstractModuleBuilder.java b/platform/lang-api/src/com/intellij/ide/util/projectWizard/AbstractModuleBuilder.java new file mode 100644 index 000000000000..c3729f28421c --- /dev/null +++ b/platform/lang-api/src/com/intellij/ide/util/projectWizard/AbstractModuleBuilder.java @@ -0,0 +1,45 @@ +/* + * Copyright 2000-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.ide.util.projectWizard; + +import com.intellij.openapi.roots.ui.configuration.ModulesProvider; +import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.Nullable; + +import javax.swing.*; + +/** + * @author yole + */ +public abstract class AbstractModuleBuilder extends ProjectBuilder { + public abstract Icon getNodeIcon(); + + @Nullable + public abstract String getBuilderId(); + + public abstract ModuleWizardStep[] createWizardSteps(WizardContext wizardContext, ModulesProvider modulesProvider); + + @Nullable + public ModuleWizardStep modifySettingsStep(SettingsStep settingsStep) { + return null; + } + + public abstract void setName(String name); + + public abstract void setModuleFilePath(@NonNls String path); + + public abstract void setContentEntryPath(String moduleRootPath); +} 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 b1c38d528ed8..f35f54cc33e8 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 @@ -47,7 +47,7 @@ import java.io.File; import java.io.IOException; import java.util.*; -public abstract class ModuleBuilder extends ProjectBuilder{ +public abstract class ModuleBuilder extends AbstractModuleBuilder { private static final ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.moduleBuilder"); private static final Logger LOG = Logger.getInstance("#com.intellij.ide.util.projectWizard.ModuleBuilder"); @@ -79,12 +79,14 @@ public abstract class ModuleBuilder extends ProjectBuilder{ return myName; } + @Override @Nullable public String getBuilderId() { ModuleType moduleType = getModuleType(); return moduleType == null ? null : moduleType.getId(); } + @Override public ModuleWizardStep[] createWizardSteps(WizardContext wizardContext, ModulesProvider modulesProvider) { ModuleType moduleType = getModuleType(); return moduleType == null ? ModuleWizardStep.EMPTY_ARRAY : moduleType.createWizardSteps(wizardContext, this, modulesProvider); @@ -98,6 +100,7 @@ public abstract class ModuleBuilder extends ProjectBuilder{ * and {@link com.intellij.ide.util.projectWizard.ModuleWizardStep#updateDataModel()} * will be invoked) */ + @Override @Nullable public ModuleWizardStep modifySettingsStep(SettingsStep settingsStep) { ModuleType type = getModuleType(); @@ -140,6 +143,7 @@ public abstract class ModuleBuilder extends ProjectBuilder{ return Collections.emptyList(); } + @Override public void setName(String name) { myName = acceptParameter(name); } @@ -152,6 +156,7 @@ public abstract class ModuleBuilder extends ProjectBuilder{ myUpdaters.add(updater); } + @Override public void setModuleFilePath(@NonNls String path) { myModuleFilePath = acceptParameter(path); } @@ -169,6 +174,7 @@ public abstract class ModuleBuilder extends ProjectBuilder{ return myContentEntryPath; } + @Override public void setContentEntryPath(String moduleRootPath) { final String path = acceptParameter(moduleRootPath); if (path != null) { diff --git a/platform/platform-impl/src/com/intellij/platform/ProjectTemplate.java b/platform/platform-impl/src/com/intellij/platform/ProjectTemplate.java index 010e588778a6..1b97fba4577f 100644 --- a/platform/platform-impl/src/com/intellij/platform/ProjectTemplate.java +++ b/platform/platform-impl/src/com/intellij/platform/ProjectTemplate.java @@ -15,7 +15,7 @@ */ package com.intellij.platform; -import com.intellij.ide.util.projectWizard.ModuleBuilder; +import com.intellij.ide.util.projectWizard.AbstractModuleBuilder; import com.intellij.openapi.ui.ValidationInfo; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -35,7 +35,7 @@ public interface ProjectTemplate { String getDescription(); @NotNull - ModuleBuilder createModuleBuilder(); + AbstractModuleBuilder createModuleBuilder(); /** * @return null if ok, error message otherwise