package com.jetbrains.python.edu; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.vfs.VirtualFile; import com.jetbrains.python.edu.course.Task; import com.jetbrains.python.edu.course.TaskFile; import com.jetbrains.python.edu.editor.StudyEditor; public class StudyState { private final StudyEditor myStudyEditor; private final Editor myEditor; private final TaskFile myTaskFile; private final VirtualFile myVirtualFile; private final Task myTask; private final VirtualFile myTaskDir; public StudyState(final StudyEditor studyEditor) { myStudyEditor = studyEditor; myEditor = studyEditor != null ? studyEditor.getEditor() : null; myTaskFile = studyEditor != null ? studyEditor.getTaskFile() : null; myVirtualFile = myEditor != null ? FileDocumentManager.getInstance().getFile(myEditor.getDocument()) : null; myTaskDir = myVirtualFile != null ? myVirtualFile.getParent() : null; myTask = myTaskFile != null ? myTaskFile.getTask() : null; } public Editor getEditor() { return myEditor; } public TaskFile getTaskFile() { return myTaskFile; } public VirtualFile getVirtualFile() { return myVirtualFile; } public Task getTask() { return myTask; } public VirtualFile getTaskDir() { return myTaskDir; } public boolean isValid() { return myStudyEditor != null && myEditor != null && myTaskFile != null && myVirtualFile != null && myTask != null && myTaskDir != null; } }