diff --git a/python/edu/learn-python/src/com/jetbrains/python/edu/actions/StudyNewProject.java b/python/edu/learn-python/src/com/jetbrains/python/edu/actions/StudyNewProject.java index 665cfd7a5dd3..0b75c4bc01c4 100644 --- a/python/edu/learn-python/src/com/jetbrains/python/edu/actions/StudyNewProject.java +++ b/python/edu/learn-python/src/com/jetbrains/python/edu/actions/StudyNewProject.java @@ -24,7 +24,7 @@ import org.jetbrains.annotations.Nullable; public class StudyNewProject extends ProjectSpecificAction { public StudyNewProject(@NotNull final String name, @Nullable final Runnable runnable) { - super(new GenerateProjectCallback(runnable), new StudyDirectoryProjectGenerator(), name); + super(new GenerateProjectCallback(runnable), new StudyDirectoryProjectGenerator(), name, true); } public StudyNewProject() { diff --git a/python/ide/src/com/jetbrains/python/newProject/actions/AbstractProjectSettingsStep.java b/python/ide/src/com/jetbrains/python/newProject/actions/AbstractProjectSettingsStep.java index 9027d520329c..af1d40876d50 100644 --- a/python/ide/src/com/jetbrains/python/newProject/actions/AbstractProjectSettingsStep.java +++ b/python/ide/src/com/jetbrains/python/newProject/actions/AbstractProjectSettingsStep.java @@ -61,6 +61,7 @@ import java.util.List; abstract public class AbstractProjectSettingsStep extends AbstractActionWithPanel implements DumbAware { protected final DirectoryProjectGenerator myProjectGenerator; private final NullableConsumer myCallback; + private final boolean myIsWelcomeScreen; private PythonSdkChooserCombo mySdkCombo; private boolean myInstallFramework; private TextFieldWithBrowseButton myLocationField; @@ -70,10 +71,13 @@ abstract public class AbstractProjectSettingsStep extends AbstractActionWithPane private AnAction myCreateAction; private Sdk mySdk; - public AbstractProjectSettingsStep(DirectoryProjectGenerator projectGenerator, NullableConsumer callback) { + public AbstractProjectSettingsStep(DirectoryProjectGenerator projectGenerator, + NullableConsumer callback, + boolean isWelcomeScreen) { super(); myProjectGenerator = projectGenerator; myCallback = callback; + myIsWelcomeScreen = isWelcomeScreen; myProjectDirectory = FileUtil.findSequentNonexistentFile(new File(ProjectUtil.getBaseDir()), "untitled", ""); if (myProjectGenerator instanceof WebProjectTemplate) { ((WebProjectTemplate)myProjectGenerator).getPeer().addSettingsStateListener(new WebProjectGenerator.SettingsStateListener() { @@ -114,7 +118,7 @@ abstract public class AbstractProjectSettingsStep extends AbstractActionWithPane final JPanel scrollPanel = new JPanel(new BorderLayout()); final DirectoryProjectGenerator[] generators = Extensions.getExtensions(DirectoryProjectGenerator.EP_NAME); - final int height = generators.length == 0 ? 150 : 400; + final int height = generators.length == 0 && !myIsWelcomeScreen ? 150 : 400; mainPanel.setPreferredSize(new Dimension(mainPanel.getPreferredSize().width, height)); myErrorLabel = new JLabel(""); myErrorLabel.setForeground(JBColor.RED); diff --git a/python/ide/src/com/jetbrains/python/newProject/actions/PluginSpecificProjectsStep.java b/python/ide/src/com/jetbrains/python/newProject/actions/PluginSpecificProjectsStep.java index a0c5f6e52fbf..ca0f3608a5d9 100644 --- a/python/ide/src/com/jetbrains/python/newProject/actions/PluginSpecificProjectsStep.java +++ b/python/ide/src/com/jetbrains/python/newProject/actions/PluginSpecificProjectsStep.java @@ -27,11 +27,11 @@ import java.util.List; public class PluginSpecificProjectsStep extends DefaultActionGroup implements DumbAware { public PluginSpecificProjectsStep(@NotNull final NullableConsumer callback, - @NotNull final List projectGenerators) { + @NotNull final List projectGenerators, boolean isWelcomeScreen) { super("Plugin-specific", true); getTemplatePresentation().setIcon(AllIcons.Nodes.PluginLogo); for (DirectoryProjectGenerator generator : projectGenerators) { - add(new ProjectSpecificAction(callback, generator)); + add(new ProjectSpecificAction(callback, generator, isWelcomeScreen)); } } } diff --git a/python/ide/src/com/jetbrains/python/newProject/actions/ProjectSpecificAction.java b/python/ide/src/com/jetbrains/python/newProject/actions/ProjectSpecificAction.java index 85cf6d118d34..fbb65f0fbe9e 100644 --- a/python/ide/src/com/jetbrains/python/newProject/actions/ProjectSpecificAction.java +++ b/python/ide/src/com/jetbrains/python/newProject/actions/ProjectSpecificAction.java @@ -28,16 +28,16 @@ public class ProjectSpecificAction extends DefaultActionGroup implements DumbAwa private final ProjectSpecificSettingsStep mySettings; public ProjectSpecificAction(@NotNull final NullableConsumer callback, - @NotNull final DirectoryProjectGenerator projectGenerator) { - this(callback, projectGenerator, projectGenerator.getName()); + @NotNull final DirectoryProjectGenerator projectGenerator, boolean isWelcomeScreen) { + this(callback, projectGenerator, projectGenerator.getName(), isWelcomeScreen); } public ProjectSpecificAction(@NotNull final NullableConsumer callback, @NotNull final DirectoryProjectGenerator projectGenerator, - @NotNull final String name) { + @NotNull final String name, boolean isWelcomeScreen) { super(name, true); getTemplatePresentation().setIcon(projectGenerator.getLogo()); - mySettings = new ProjectSpecificSettingsStep(projectGenerator, callback); + mySettings = new ProjectSpecificSettingsStep(projectGenerator, callback, isWelcomeScreen); add(mySettings); } diff --git a/python/ide/src/com/jetbrains/python/newProject/actions/ProjectSpecificSettingsStep.java b/python/ide/src/com/jetbrains/python/newProject/actions/ProjectSpecificSettingsStep.java index 5e60601399bb..b85a06e0daa6 100644 --- a/python/ide/src/com/jetbrains/python/newProject/actions/ProjectSpecificSettingsStep.java +++ b/python/ide/src/com/jetbrains/python/newProject/actions/ProjectSpecificSettingsStep.java @@ -31,8 +31,8 @@ import javax.swing.*; public class ProjectSpecificSettingsStep extends AbstractProjectSettingsStep implements DumbAware { public ProjectSpecificSettingsStep(@NotNull final DirectoryProjectGenerator projectGenerator, - @NotNull final NullableConsumer callback) { - super(projectGenerator, callback); + @NotNull final NullableConsumer callback, boolean isWelcomeScreen) { + super(projectGenerator, callback, isWelcomeScreen); } @Override diff --git a/python/ide/src/com/jetbrains/python/newProject/actions/PyCharmNewProjectStep.java b/python/ide/src/com/jetbrains/python/newProject/actions/PyCharmNewProjectStep.java index b15c20606ded..0628c6d829c1 100644 --- a/python/ide/src/com/jetbrains/python/newProject/actions/PyCharmNewProjectStep.java +++ b/python/ide/src/com/jetbrains/python/newProject/actions/PyCharmNewProjectStep.java @@ -34,11 +34,15 @@ import java.util.List; public class PyCharmNewProjectStep extends DefaultActionGroup implements DumbAware { public PyCharmNewProjectStep(@NotNull final String name, @Nullable final Runnable runnable) { + this(name, runnable, false); + } + + public PyCharmNewProjectStep(@NotNull final String name, @Nullable final Runnable runnable, boolean isWelcomeScreen) { super(name, true); final NullableConsumer callback = new GenerateProjectCallback(runnable); - final ProjectSpecificAction action = new ProjectSpecificAction(callback, new PythonBaseProjectGenerator()); + final ProjectSpecificAction action = new ProjectSpecificAction(callback, new PythonBaseProjectGenerator(), isWelcomeScreen); add(action); final DirectoryProjectGenerator[] generators = Extensions.getExtensions(DirectoryProjectGenerator.EP_NAME); @@ -57,19 +61,17 @@ public class PyCharmNewProjectStep extends DefaultActionGroup implements DumbAwa List pluginSpecificGenerators = Lists.newArrayList(); for (DirectoryProjectGenerator generator : generators) { if (generator instanceof PythonProjectGenerator) - add(new ProjectSpecificAction(callback, generator)); + add(new ProjectSpecificAction(callback, generator, isWelcomeScreen)); else pluginSpecificGenerators.add(generator); } if (!pluginSpecificGenerators.isEmpty()) { - add(new PluginSpecificProjectsStep(callback, pluginSpecificGenerators)); + add(new PluginSpecificProjectsStep(callback, pluginSpecificGenerators, isWelcomeScreen)); } } public PyCharmNewProjectStep() { - this("Select Project Type", null); - + this("Select Project Type", null, true); } - }