e5e6dbec1dafce27064308760904361f1c96f8a9
[idea/community.git] / python / educational-python / student-python / src / com / jetbrains / edu / learning / PyStudyPluginConfigurator.java
1 package com.jetbrains.edu.learning;
2
3 import com.intellij.openapi.actionSystem.DefaultActionGroup;
4 import com.intellij.openapi.project.Project;
5 import com.jetbrains.edu.learning.courseFormat.Course;
6 import com.jetbrains.edu.learning.actions.PyTwitterAction;
7 import com.jetbrains.edu.learning.actions.StudyAfterCheckAction;
8 import com.jetbrains.edu.learning.settings.ModifiableSettingsPanel;
9 import com.jetbrains.edu.learning.settings.PySettingsPanel;
10 import org.jetbrains.annotations.NotNull;
11 import org.jetbrains.annotations.Nullable;
12
13 public class PyStudyPluginConfigurator extends StudyBasePluginConfigurator {
14   
15   @NotNull
16   @Override
17   public DefaultActionGroup getActionGroup(Project project) {
18     final DefaultActionGroup baseGroup = super.getActionGroup(project);
19     final DefaultActionGroup group = new DefaultActionGroup();
20     group.add(new PyStudyCheckAction());
21     group.addAll(baseGroup);
22     return group;
23   }
24
25   @NotNull
26   @Override
27   public String getDefaultHighlightingMode() {
28     return "python";
29   }
30
31   @NotNull
32   @Override
33   public String getLanguageScriptUrl() {
34     return getClass().getResource("/python.js").toExternalForm();
35   }
36
37   @Nullable
38   @Override
39   public StudyAfterCheckAction[] getAfterCheckActions() {
40     return new StudyAfterCheckAction[]{new PyTwitterAction()};
41   }
42
43   @Override
44   public boolean accept(@NotNull Project project) {
45     StudyTaskManager taskManager = StudyTaskManager.getInstance(project);
46     if (taskManager == null) return false;
47     Course course = taskManager.getCourse();
48     return course != null && "Python".equals(course.getLanguage()) && "PyCharm".equals(course.getCourseType());
49   }
50
51   @Nullable
52   @Override
53   public ModifiableSettingsPanel getSettingsPanel() {
54     return new PySettingsPanel();
55   }
56 }