summaryrefslogtreecommitdiff
path: root/python/edu/learn-python/src/com/jetbrains/python/edu/StudyState.java
diff options
context:
space:
mode:
Diffstat (limited to 'python/edu/learn-python/src/com/jetbrains/python/edu/StudyState.java')
-rw-r--r--python/edu/learn-python/src/com/jetbrains/python/edu/StudyState.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/python/edu/learn-python/src/com/jetbrains/python/edu/StudyState.java b/python/edu/learn-python/src/com/jetbrains/python/edu/StudyState.java
new file mode 100644
index 000000000000..96dc3d906472
--- /dev/null
+++ b/python/edu/learn-python/src/com/jetbrains/python/edu/StudyState.java
@@ -0,0 +1,52 @@
+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;
+ }
+}