EDU-425 Show actual lesson name

This commit is contained in:
Liana Bakradze
2016-08-02 19:35:23 +03:00
parent c9bf556dc6
commit 2710d59344
3 changed files with 51 additions and 0 deletions
@@ -4,6 +4,7 @@ import com.intellij.ide.projectView.ProjectView;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.text.StringUtil;
@@ -50,6 +51,10 @@ public abstract class CCRenameHandler implements RenameHandler {
}
rename(project, course, directory);
ProjectView.getInstance(project).refresh();
FileEditorManagerEx managerEx = FileEditorManagerEx.getInstanceEx(project);
for (VirtualFile virtualFile : managerEx.getOpenFiles()) {
managerEx.updateFilePresentation(virtualFile);
}
}
protected abstract void rename(@NotNull Project project, @NotNull Course course, @NotNull PsiDirectory directory);
@@ -106,6 +106,7 @@
<statistics.usagesCollector implementation="com.jetbrains.edu.learning.statistics.EduUsagesCollector"/>
<applicationService serviceImplementation="com.jetbrains.edu.learning.statistics.EduUsagesCollector"/>
<applicationService serviceImplementation="com.jetbrains.edu.learning.stepic.StepicUpdateSettings"/>
<editorTabTitleProvider implementation="com.jetbrains.edu.learning.StudyTabTitleProvider"/>
</extensions>
<extensions defaultExtensionNs="Edu">
@@ -0,0 +1,45 @@
package com.jetbrains.edu.learning;
import com.intellij.openapi.fileEditor.impl.EditorTabTitleProvider;
import com.intellij.openapi.fileEditor.impl.UniqueNameEditorTabTitleProvider;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.jetbrains.edu.learning.core.EduNames;
import com.jetbrains.edu.learning.courseFormat.Lesson;
import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.learning.courseFormat.TaskFile;
import org.jetbrains.annotations.Nullable;
import java.io.File;
public class StudyTabTitleProvider implements EditorTabTitleProvider {
@Nullable
@Override
public String getEditorTabTitle(Project project, VirtualFile file) {
TaskFile taskFile = StudyUtils.getTaskFile(project, file);
if (taskFile == null) {
return null;
}
String title = new UniqueNameEditorTabTitleProvider().getEditorTabTitle(project, file);
if (title == null) {
return null;
}
String[] split = title.split(File.separator);
for (int i = 0; i < split.length; i++) {
String part = split[i];
Task task = taskFile.getTask();
VirtualFile taskDir = task.getTaskDir(project);
if (taskDir != null && part.equals(taskDir.getName())) {
split[i] = task.getName();
continue;
}
Lesson lesson = task.getLesson();
int lessonIndex = lesson.getIndex();
if (part.equals(EduNames.LESSON + lessonIndex)) {
split[i] = lesson.getName();
}
}
return StringUtil.join(split, File.separator);
}
}