import com.intellij.ide.TitledHandler;
import com.intellij.openapi.project.Project;
+import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.jetbrains.edu.learning.core.EduNames;
import com.jetbrains.edu.learning.courseFormat.Course;
public class CCLessonRenameHandler extends CCRenameHandler implements TitledHandler {
@Override
- protected boolean isAvailable(String name) {
- return name.contains(EduNames.LESSON);
+ protected boolean isAvailable(VirtualFile dir) {
+ return dir.getName().contains(EduNames.LESSON);
}
@Override
return false;
}
VirtualFile directory = ((PsiDirectory)element).getVirtualFile();
- return isAvailable(directory.getName());
+ return isAvailable(directory);
}
- protected abstract boolean isAvailable(String name);
+ protected abstract boolean isAvailable(VirtualFile directory);
@Override
public boolean isRenaming(DataContext dataContext) {
import com.intellij.ide.TitledHandler;
import com.intellij.openapi.project.Project;
+import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.jetbrains.edu.learning.core.EduNames;
import com.jetbrains.edu.learning.courseFormat.Course;
public class CCTaskRenameHandler extends CCRenameHandler implements TitledHandler {
@Override
- protected boolean isAvailable(String name) {
- return name.contains(EduNames.TASK);
+ protected boolean isAvailable(VirtualFile dir) {
+ if (dir.getName().contains(EduNames.TASK)) {
+ return true;
+ }
+ VirtualFile parent = dir.getParent();
+ if (parent != null && parent.getName().contains(EduNames.TASK)) {
+ return true;
+ }
+ return false;
}
@Override
protected void rename(@NotNull Project project, @NotNull Course course, @NotNull PsiDirectory directory) {
+ if (directory.getName().equals(EduNames.SRC)) {
+ directory = directory.getParent();
+ if (directory == null) {
+ return;
+ }
+ }
PsiDirectory lessonDir = directory.getParent();
if (lessonDir == null || !lessonDir.getName().contains(EduNames.LESSON)) {
return;