mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
show course language level only in change course info dialog
This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
<add-to-group group-id="NewGroup" anchor="before" relative-to-action="NewFile"/>
|
||||
</action>
|
||||
|
||||
<action id="ChangeCourseInfo" class="com.jetbrains.edu.coursecreator.actions.CCChangeCourseInfo"/>
|
||||
<action id="ChangeCourseInfo" class="com.jetbrains.edu.coursecreator.PyCCChangeCourseInfo"/>
|
||||
|
||||
<group id="CCProjectViewGroup" popup="true" text="Course Creator">
|
||||
<action id="AddTaskFile" class="com.jetbrains.edu.coursecreator.actions.CCAddAsTaskFile" text="Make Visible to Student"/>
|
||||
|
||||
+6
-1
@@ -19,7 +19,6 @@ import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
public class CCChangeCourseInfo extends DumbAwareAction {
|
||||
|
||||
private static final String ACTION_TEXT = "Change Course Information";
|
||||
|
||||
public CCChangeCourseInfo() {
|
||||
@@ -61,15 +60,21 @@ public class CCChangeCourseInfo extends DumbAwareAction {
|
||||
|
||||
CCNewProjectPanel panel =
|
||||
new CCNewProjectPanel(course.getName(), Course.getAuthorsString(course.getAuthors()), course.getDescription());
|
||||
setupLanguageLevels(course, panel);
|
||||
DialogBuilder builder = createChangeInfoDialog(project, panel);
|
||||
if (builder.showAndGet()) {
|
||||
course.setAuthors(panel.getAuthors());
|
||||
course.setName(panel.getName());
|
||||
course.setDescription(panel.getDescription());
|
||||
setVersion(course, panel);
|
||||
ProjectView.getInstance(project).refresh();
|
||||
}
|
||||
}
|
||||
|
||||
protected void setVersion(Course course, CCNewProjectPanel panel) {}
|
||||
|
||||
protected void setupLanguageLevels(Course course, CCNewProjectPanel panel) {}
|
||||
|
||||
private static DialogBuilder createChangeInfoDialog(Project project, @NotNull CCNewProjectPanel panel) {
|
||||
DialogBuilder builder = new DialogBuilder(project);
|
||||
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
</grid>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Name:"/>
|
||||
<text value="Title:"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="7e88" class="javax.swing.JTextField" binding="myName">
|
||||
@@ -53,7 +53,7 @@
|
||||
<component id="389a7" class="javax.swing.JTextArea" binding="myDescription">
|
||||
<constraints>
|
||||
<grid row="3" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="3" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="-1" height="50"/>
|
||||
<preferred-size width="-1" height="150"/>
|
||||
</grid>
|
||||
</constraints>
|
||||
<properties>
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package com.jetbrains.edu.coursecreator;
|
||||
|
||||
import com.intellij.openapi.ui.ComboBox;
|
||||
import com.jetbrains.edu.coursecreator.actions.CCChangeCourseInfo;
|
||||
import com.jetbrains.edu.coursecreator.ui.CCNewProjectPanel;
|
||||
import com.jetbrains.edu.learning.courseFormat.Course;
|
||||
import com.jetbrains.python.PythonLanguage;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import static com.jetbrains.edu.learning.PyStudyLanguageManager.PYTHON_2;
|
||||
import static com.jetbrains.edu.learning.PyStudyLanguageManager.PYTHON_3;
|
||||
|
||||
public class PyCCChangeCourseInfo extends CCChangeCourseInfo {
|
||||
public static final String ALL_VERSIONS = "All versions";
|
||||
|
||||
public PyCCChangeCourseInfo() {
|
||||
super();
|
||||
}
|
||||
|
||||
protected void setVersion(Course course, CCNewProjectPanel panel) {
|
||||
String version = panel.getLanguageVersion();
|
||||
String language = PythonLanguage.getInstance().getID();
|
||||
if (version != null && !ALL_VERSIONS.equals(version)) {
|
||||
language += " " + version;
|
||||
}
|
||||
course.setLanguage(language);
|
||||
}
|
||||
|
||||
protected void setupLanguageLevels(Course course, CCNewProjectPanel panel) {
|
||||
JLabel languageLevelLabel = panel.getLanguageLevelLabel();
|
||||
languageLevelLabel.setText("Python:");
|
||||
languageLevelLabel.setVisible(true);
|
||||
ComboBox<String> languageLevelCombobox = panel.getLanguageLevelCombobox();
|
||||
languageLevelCombobox.addItem(ALL_VERSIONS);
|
||||
languageLevelCombobox.addItem(PYTHON_3);
|
||||
languageLevelCombobox.addItem(PYTHON_2);
|
||||
languageLevelCombobox.setVisible(true);
|
||||
final String version = course.getLanguageVersion();
|
||||
if (version != null) {
|
||||
languageLevelCombobox.setSelectedItem(version);
|
||||
}
|
||||
else {
|
||||
languageLevelCombobox.setSelectedItem(ALL_VERSIONS);
|
||||
}
|
||||
}
|
||||
}
|
||||
-23
@@ -12,7 +12,6 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.ComboBox;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.platform.DirectoryProjectGenerator;
|
||||
@@ -28,7 +27,6 @@ import com.jetbrains.edu.learning.courseFormat.Course;
|
||||
import com.jetbrains.edu.learning.statistics.EduUsagesCollector;
|
||||
import com.jetbrains.python.PythonLanguage;
|
||||
import com.jetbrains.python.newProject.PythonProjectGenerator;
|
||||
import com.jetbrains.python.psi.LanguageLevel;
|
||||
import icons.CourseCreatorPythonIcons;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -40,9 +38,6 @@ import java.io.File;
|
||||
|
||||
public class PyCCProjectGenerator extends PythonProjectGenerator implements DirectoryProjectGenerator {
|
||||
private static final Logger LOG = Logger.getInstance(PyCCProjectGenerator.class);
|
||||
public static final String ALL_VERSIONS = "All versions";
|
||||
public static final String PYTHON_3 = "3x";
|
||||
public static final String PYTHON_2 = "2x";
|
||||
private CCNewProjectPanel mySettingsPanel;
|
||||
|
||||
@Nls
|
||||
@@ -104,10 +99,6 @@ public class PyCCProjectGenerator extends PythonProjectGenerator implements Dire
|
||||
course.setDescription(settingsPanel.getDescription());
|
||||
|
||||
String language = PythonLanguage.getInstance().getID();
|
||||
String version = settingsPanel.getLanguageVersion();
|
||||
if (version != null && !ALL_VERSIONS.equals(version)) {
|
||||
language += " " + version;
|
||||
}
|
||||
course.setLanguage(language);
|
||||
course.setCourseMode(CCUtils.COURSE_MODE);
|
||||
|
||||
@@ -134,7 +125,6 @@ public class PyCCProjectGenerator extends PythonProjectGenerator implements Dire
|
||||
@Override
|
||||
public JPanel extendBasePanel() throws ProcessCanceledException {
|
||||
mySettingsPanel = new CCNewProjectPanel();
|
||||
setupLanguageLevels(mySettingsPanel);
|
||||
mySettingsPanel.registerValidators(new FacetValidatorsManager() {
|
||||
public void registerValidator(FacetEditorValidator validator, JComponent... componentsToWatch) {
|
||||
throw new UnsupportedOperationException();
|
||||
@@ -147,17 +137,4 @@ public class PyCCProjectGenerator extends PythonProjectGenerator implements Dire
|
||||
return mySettingsPanel.getMainPanel();
|
||||
}
|
||||
|
||||
private static void setupLanguageLevels(CCNewProjectPanel panel) {
|
||||
JLabel languageLevelLabel = panel.getLanguageLevelLabel();
|
||||
languageLevelLabel.setText("Python:");
|
||||
languageLevelLabel.setVisible(true);
|
||||
ComboBox<String> languageLevelCombobox = panel.getLanguageLevelCombobox();
|
||||
languageLevelCombobox.addItem(ALL_VERSIONS);
|
||||
languageLevelCombobox.addItem(PYTHON_3);
|
||||
languageLevelCombobox.addItem(PYTHON_2);
|
||||
for (LanguageLevel level : LanguageLevel.values()) {
|
||||
languageLevelCombobox.addItem(level.toString());
|
||||
}
|
||||
languageLevelCombobox.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -221,8 +221,8 @@ public class PyStudyDirectoryProjectGenerator extends PythonProjectGenerator imp
|
||||
LanguageLevel baseLevel = LanguageLevel.PYTHON30;
|
||||
if (course != null) {
|
||||
final String version = course.getLanguageVersion();
|
||||
if (version != null) {
|
||||
baseLevel = LanguageLevel.fromPythonVersion(version);
|
||||
if (PyStudyLanguageManager.PYTHON_2.equals(version)) {
|
||||
baseLevel = LanguageLevel.PYTHON27;
|
||||
}
|
||||
}
|
||||
final PythonSdkFlavor flavor = PythonSdkFlavor.getApplicableFlavors(false).get(0);
|
||||
|
||||
+2
@@ -4,6 +4,8 @@ import com.jetbrains.edu.learning.core.EduNames;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class PyStudyLanguageManager implements StudyLanguageManager {
|
||||
public static final String PYTHON_3 = "3.x";
|
||||
public static final String PYTHON_2 = "2.x";
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user