mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fixed PY-13597 Create New Project: Create button is too high when creating project in Community Edition from Welcome screen
This commit is contained in:
@@ -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() {
|
||||
|
||||
+6
-2
@@ -61,6 +61,7 @@ import java.util.List;
|
||||
abstract public class AbstractProjectSettingsStep extends AbstractActionWithPanel implements DumbAware {
|
||||
protected final DirectoryProjectGenerator myProjectGenerator;
|
||||
private final NullableConsumer<AbstractProjectSettingsStep> 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<AbstractProjectSettingsStep> callback) {
|
||||
public AbstractProjectSettingsStep(DirectoryProjectGenerator projectGenerator,
|
||||
NullableConsumer<AbstractProjectSettingsStep> 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);
|
||||
|
||||
+2
-2
@@ -27,11 +27,11 @@ import java.util.List;
|
||||
public class PluginSpecificProjectsStep extends DefaultActionGroup implements DumbAware {
|
||||
|
||||
public PluginSpecificProjectsStep(@NotNull final NullableConsumer<AbstractProjectSettingsStep> callback,
|
||||
@NotNull final List<DirectoryProjectGenerator> projectGenerators) {
|
||||
@NotNull final List<DirectoryProjectGenerator> 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,16 +28,16 @@ public class ProjectSpecificAction extends DefaultActionGroup implements DumbAwa
|
||||
private final ProjectSpecificSettingsStep mySettings;
|
||||
|
||||
public ProjectSpecificAction(@NotNull final NullableConsumer<AbstractProjectSettingsStep> 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<AbstractProjectSettingsStep> 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);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -31,8 +31,8 @@ import javax.swing.*;
|
||||
public class ProjectSpecificSettingsStep extends AbstractProjectSettingsStep implements DumbAware {
|
||||
|
||||
public ProjectSpecificSettingsStep(@NotNull final DirectoryProjectGenerator projectGenerator,
|
||||
@NotNull final NullableConsumer<AbstractProjectSettingsStep> callback) {
|
||||
super(projectGenerator, callback);
|
||||
@NotNull final NullableConsumer<AbstractProjectSettingsStep> callback, boolean isWelcomeScreen) {
|
||||
super(projectGenerator, callback, isWelcomeScreen);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -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<AbstractProjectSettingsStep> 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<DirectoryProjectGenerator> 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user