moved getSettingsPanel and getSettings from DirectoryProjectGenerator to PythonProjectGenerator. We don't push other projects to change new project dialog.

This commit is contained in:
Ekaterina Tuzova
2014-06-12 13:14:48 +04:00
parent 901669b0b5
commit 38c8defad4
7 changed files with 36 additions and 37 deletions
@@ -16,7 +16,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.io.File;
public class PythonBaseProjectGenerator implements DirectoryProjectGenerator {
public class PythonBaseProjectGenerator extends PythonProjectGenerator implements DirectoryProjectGenerator {
@NotNull
@Nls
@Override
@@ -37,7 +37,7 @@ public class PythonBaseProjectGenerator implements DirectoryProjectGenerator {
}
@Override
public Object getProjectSettings() throws ProcessCanceledException {
public Object getProjectSettings() {
return new PyNewProjectSettings();
}
@@ -54,7 +54,6 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.List;
/**
@@ -180,18 +179,6 @@ public class PythonNewDirectoryProjectDialog extends NewDirectoryProjectDialog {
}
}
@Nullable
@Override
public JComponent getSettingsPanel(File baseDir) throws ProcessCanceledException {
return null;
}
@Nullable
@Override
public Object getProjectSettings() throws ProcessCanceledException {
return null;
}
@Nullable
@Override
public Icon getLogo() {
@@ -15,11 +15,13 @@
*/
package com.jetbrains.python.newProject.actions;
import com.intellij.ide.util.projectWizard.WebProjectTemplate;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.ui.VerticalFlowLayout;
import com.intellij.platform.DirectoryProjectGenerator;
import com.intellij.ui.HideableDecorator;
import com.intellij.util.NullableConsumer;
import com.jetbrains.python.newProject.PythonProjectGenerator;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -35,7 +37,12 @@ public class ProjectSpecificSettingsStep extends AbstractProjectSettingsStep imp
@Override
@Nullable
protected JPanel createAdvancedSettings() {
final JComponent advancedSettings = myProjectGenerator.getSettingsPanel(myProjectDirectory);
JComponent advancedSettings = null;
if (myProjectGenerator instanceof PythonProjectGenerator)
advancedSettings = ((PythonProjectGenerator)myProjectGenerator).getSettingsPanel(myProjectDirectory);
else if (myProjectGenerator instanceof WebProjectTemplate) {
advancedSettings = ((WebProjectTemplate)myProjectGenerator).getPeer().getComponent();
}
if (advancedSettings != null) {
final JPanel jPanel = new JPanel(new VerticalFlowLayout());
final HideableDecorator deco = new HideableDecorator(jPanel, "Mor&e Settings", false);
@@ -16,6 +16,7 @@
package com.jetbrains.python.newProject.actions;
import com.intellij.ide.GeneralSettings;
import com.intellij.ide.util.projectWizard.WebProjectTemplate;
import com.intellij.internal.statistic.UsageTrigger;
import com.intellij.internal.statistic.beans.ConvertUsagesUtil;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
@@ -44,6 +45,7 @@ import com.jetbrains.python.configuration.PyConfigurableInterpreterList;
import com.jetbrains.python.newProject.PyFrameworkProjectGenerator;
import com.jetbrains.python.newProject.PyNewProjectSettings;
import com.jetbrains.python.newProject.PythonBaseProjectGenerator;
import com.jetbrains.python.newProject.PythonProjectGenerator;
import com.jetbrains.python.sdk.PyDetectedSdk;
import com.jetbrains.python.sdk.PySdkService;
import com.jetbrains.python.sdk.PythonSdkAdditionalData;
@@ -140,7 +142,12 @@ public class PyCharmNewProjectStep extends DefaultActionGroup implements DumbAwa
@Override
public void projectOpened(Project project, Module module) {
if (generator != null) {
final Object projectSettings = generator.getProjectSettings();
Object projectSettings = null;
if (generator instanceof PythonProjectGenerator)
projectSettings = ((PythonProjectGenerator)generator).getProjectSettings();
else if (generator instanceof WebProjectTemplate) {
projectSettings = ((WebProjectTemplate)generator).getPeer().getSettings();
}
if (projectSettings instanceof PyNewProjectSettings) {
((PyNewProjectSettings)projectSettings).setSdk(settings.getSdk());
((PyNewProjectSettings)projectSettings).setInstallFramework(settings.installFramework());