1 package com.jetbrains.edu.coursecreator.handlers;
3 import com.intellij.ide.TitledHandler;
4 import com.intellij.openapi.project.Project;
5 import com.intellij.openapi.vfs.VirtualFile;
6 import com.intellij.psi.PsiDirectory;
7 import com.jetbrains.edu.learning.core.EduNames;
8 import com.jetbrains.edu.learning.courseFormat.Course;
9 import com.jetbrains.edu.learning.courseFormat.Lesson;
10 import com.jetbrains.edu.learning.courseFormat.Task;
11 import org.jetbrains.annotations.NotNull;
13 public class CCTaskRenameHandler extends CCRenameHandler implements TitledHandler {
15 protected boolean isAvailable(VirtualFile dir) {
16 if (dir.getName().contains(EduNames.TASK)) {
19 VirtualFile parent = dir.getParent();
20 if (parent != null && parent.getName().contains(EduNames.TASK)) {
27 protected void rename(@NotNull Project project, @NotNull Course course, @NotNull PsiDirectory directory) {
28 if (directory.getName().equals(EduNames.SRC)) {
29 directory = directory.getParent();
30 if (directory == null) {
34 PsiDirectory lessonDir = directory.getParent();
35 if (lessonDir == null || !lessonDir.getName().contains(EduNames.LESSON)) {
38 Lesson lesson = course.getLesson(lessonDir.getName());
42 String directoryName = directory.getName();
43 Task task = lesson.getTask(directoryName);
45 processRename(task, EduNames.TASK, project);
50 public String getActionTitle() {