use of com.jetbrains.edu.learning.editor.StudyEditor in project intellij-community by JetBrains.
the class StudyTaskNavigationAction method navigateTask.
public void navigateTask(@NotNull final Project project) {
StudyEditor studyEditor = StudyUtils.getSelectedStudyEditor(project);
StudyState studyState = new StudyState(studyEditor);
if (!studyState.isValid()) {
return;
}
Task targetTask = getTargetTask(studyState.getTask());
if (targetTask == null) {
return;
}
StudyNavigator.navigateToTask(project, targetTask);
}
use of com.jetbrains.edu.learning.editor.StudyEditor in project intellij-community by JetBrains.
the class StudyTaskNavigationAction method update.
@Override
public void update(AnActionEvent e) {
StudyUtils.updateAction(e);
Project project = e.getProject();
if (project == null) {
return;
}
StudyEditor studyEditor = StudyUtils.getSelectedStudyEditor(project);
StudyState studyState = new StudyState(studyEditor);
if (!studyState.isValid()) {
return;
}
if (getTargetTask(studyState.getTask()) == null) {
e.getPresentation().setEnabled(false);
}
}
use of com.jetbrains.edu.learning.editor.StudyEditor in project intellij-community by JetBrains.
the class StudyCheckUtils method drawAllPlaceholders.
public static void drawAllPlaceholders(@NotNull final Project project, @NotNull final Task task) {
VirtualFile taskDir = task.getTaskDir(project);
if (taskDir == null) {
return;
}
for (Map.Entry<String, TaskFile> entry : task.getTaskFiles().entrySet()) {
String name = entry.getKey();
TaskFile taskFile = entry.getValue();
VirtualFile virtualFile = taskDir.findFileByRelativePath(name);
if (virtualFile == null) {
continue;
}
FileEditor fileEditor = FileEditorManager.getInstance(project).getSelectedEditor(virtualFile);
if (fileEditor instanceof StudyEditor) {
StudyEditor studyEditor = (StudyEditor) fileEditor;
StudyUtils.drawAllAnswerPlaceholders(studyEditor.getEditor(), taskFile);
}
}
}
use of com.jetbrains.edu.learning.editor.StudyEditor in project intellij-community by JetBrains.
the class StudyCheckUtils method navigateToFailedPlaceholder.
public static void navigateToFailedPlaceholder(@NotNull final StudyState studyState, @NotNull final Task task, @NotNull final VirtualFile taskDir, @NotNull final Project project) {
TaskFile selectedTaskFile = studyState.getTaskFile();
Editor editor = studyState.getEditor();
TaskFile taskFileToNavigate = selectedTaskFile;
VirtualFile fileToNavigate = studyState.getVirtualFile();
final StudyTaskManager taskManager = StudyTaskManager.getInstance(project);
if (!taskManager.hasFailedAnswerPlaceholders(selectedTaskFile)) {
for (Map.Entry<String, TaskFile> entry : task.getTaskFiles().entrySet()) {
String name = entry.getKey();
TaskFile taskFile = entry.getValue();
if (taskManager.hasFailedAnswerPlaceholders(taskFile)) {
taskFileToNavigate = taskFile;
VirtualFile virtualFile = taskDir.findFileByRelativePath(name);
if (virtualFile == null) {
continue;
}
FileEditor fileEditor = FileEditorManager.getInstance(project).getSelectedEditor(virtualFile);
if (fileEditor instanceof StudyEditor) {
StudyEditor studyEditor = (StudyEditor) fileEditor;
editor = studyEditor.getEditor();
}
fileToNavigate = virtualFile;
break;
}
}
}
if (fileToNavigate != null) {
FileEditorManager.getInstance(project).openFile(fileToNavigate, true);
}
final Editor editorToNavigate = editor;
ApplicationManager.getApplication().invokeLater(() -> IdeFocusManager.getInstance(project).requestFocus(editorToNavigate.getContentComponent(), true));
StudyNavigator.navigateToFirstFailedAnswerPlaceholder(editor, taskFileToNavigate);
}
use of com.jetbrains.edu.learning.editor.StudyEditor in project intellij-community by JetBrains.
the class StudyUtils method showCheckPopUp.
/**
* shows pop up in the center of "check task" button in study editor
*/
public static void showCheckPopUp(@NotNull final Project project, @NotNull final Balloon balloon) {
final StudyEditor studyEditor = getSelectedStudyEditor(project);
assert studyEditor != null;
balloon.show(computeLocation(studyEditor.getEditor()), Balloon.Position.above);
Disposer.register(project, balloon);
}
Aggregations