diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/ProjectNameWithTypeStep.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/ProjectNameWithTypeStep.java index 271d39872974..c002951d4551 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/ProjectNameWithTypeStep.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/ProjectNameWithTypeStep.java @@ -356,17 +356,23 @@ public class ProjectNameWithTypeStep extends ProjectNameStep { public void updateStep() { super.updateStep(); - if (myCreateModuleCb.isSelected()) { - mySequence.setType(getSelectedBuilderId()); - } else { - mySequence.setType(null); + if (myHeader.isVisible()) { + if (myCreateModuleCb.isSelected()) { + mySequence.setType(getSelectedBuilderId()); + } else { + mySequence.setType(null); + } } } public void updateDataModel() { - if (myCreateModuleCb.isSelected()) { - mySequence.setType(getSelectedBuilderId()); - super.updateDataModel(); + + if (myHeader.isVisible()) { + mySequence.setType(myCreateModuleCb.isSelected() ? getSelectedBuilderId() : null); + } + super.updateDataModel(); + + if (myHeader.isVisible() && myCreateModuleCb.isSelected()) { final ModuleBuilder builder = (ModuleBuilder)myMode.getModuleBuilder(); assert builder != null; final String moduleName = getModuleName(); @@ -374,9 +380,6 @@ public class ProjectNameWithTypeStep extends ProjectNameStep { builder.setModuleFilePath( FileUtil.toSystemIndependentName(myModuleFileLocation.getText()) + "/" + moduleName + ModuleFileType.DOT_DEFAULT_EXTENSION); builder.setContentEntryPath(FileUtil.toSystemIndependentName(myModuleContentRoot.getText())); - } else { - mySequence.setType(null); - super.updateDataModel(); } } 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 59d67f4a8ca0..7af6ca11b872 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 @@ -76,13 +76,16 @@ public class SelectTemplateStep extends ModuleWizardStep { private JPanel myDescriptionPanel; private final WizardContext myContext; + private final StepSequence mySequence; + private final ElementFilter.Active.Impl myFilter; private final FilteringTreeBuilder myBuilder; private MinusculeMatcher[] myMatchers; - public SelectTemplateStep(WizardContext context) { + public SelectTemplateStep(WizardContext context, StepSequence sequence) { myContext = context; + mySequence = sequence; Messages.installHyperlinkSupport(myDescriptionPane); ProjectTemplatesFactory[] factories = ProjectTemplatesFactory.EP_NAME.getExtensions(); @@ -242,6 +245,12 @@ public class SelectTemplateStep extends ModuleWizardStep { @Override public void updateStep() { myBuilder.queueUpdate(); + setModuleType(); + } + + private void setModuleType() { + ProjectTemplate template = getSelectedTemplate(); + mySequence.setType(template == null ? null : template.createModuleBuilder().getBuilderId()); } @Override @@ -342,6 +351,7 @@ public class SelectTemplateStep extends ModuleWizardStep { @Override public void updateDataModel() { + setModuleType(); } @Override diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromScratchMode.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromScratchMode.java index 8717ac1786b4..1874404a7fbb 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromScratchMode.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromScratchMode.java @@ -57,14 +57,13 @@ public class CreateFromScratchMode extends WizardMode { myBuildersMap.put(builder.getBuilderId(), builder); } myBuildersMap.put(ModuleType.EMPTY.getId(), new EmptyModuleBuilder()); - return createSequence(context, modulesProvider, this); + return addSteps(context, modulesProvider, this, new StepSequence()); } - static StepSequence createSequence(WizardContext context, - ModulesProvider modulesProvider, - WizardMode mode, - ModuleWizardStep... firstSteps) { - final StepSequence sequence = new StepSequence(firstSteps); + static StepSequence addSteps(WizardContext context, + ModulesProvider modulesProvider, + WizardMode mode, + StepSequence sequence) { sequence.addCommonStep(new ProjectNameWithTypeStep(context, sequence, mode)); for (ModuleBuilder builder : ModuleBuilder.getAllBuilders()) { addModuleBuilder(builder, context, modulesProvider, sequence); 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 3fab1f499da9..ec5e18e76afc 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 @@ -17,7 +17,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.projectWizard.ProjectBuilder; +import com.intellij.ide.util.projectWizard.ModuleBuilder; import com.intellij.ide.util.projectWizard.WizardContext; import com.intellij.openapi.project.ProjectBundle; import com.intellij.openapi.roots.ui.configuration.ModulesProvider; @@ -53,13 +53,15 @@ public class CreateFromTemplateMode extends WizardMode { @Nullable @Override protected StepSequence createSteps(WizardContext context, @NotNull ModulesProvider modulesProvider) { - mySelectTemplateStep = new SelectTemplateStep(context); - return CreateFromScratchMode.createSequence(context, modulesProvider, this, mySelectTemplateStep); + StepSequence sequence = new StepSequence(); + mySelectTemplateStep = new SelectTemplateStep(context, sequence); + sequence.addCommonStep(mySelectTemplateStep); + return CreateFromScratchMode.addSteps(context, modulesProvider, this, sequence); } @Nullable @Override - public ProjectBuilder getModuleBuilder() { + public ModuleBuilder getModuleBuilder() { final ProjectTemplate template = mySelectTemplateStep.getSelectedTemplate(); if (template == null) { return null;