public Map<AnswerPlaceholder, StudyStatus> myStudyStatusMap = new HashMap<AnswerPlaceholder, StudyStatus>();
public Map<TaskFile, StudyStatus> myTaskStatusMap = new HashMap<TaskFile, StudyStatus>();
public Map<Task, List<UserTest>> myUserTests = new HashMap<Task, List<UserTest>>();
+ public List<String> myInvisibleFiles = new ArrayList<String>();
private StudyTaskManager() {
}
public static StudyTaskManager getInstance(@NotNull final Project project) {
return ServiceManager.getService(project, StudyTaskManager.class);
}
+
+ public void addInvisibleFiles(String filePath) {
+ myInvisibleFiles.add(filePath);
+ }
+
+ public boolean isInvisibleFile(String path) {
+ return myInvisibleFiles.contains(path);
+ }
}
Disposer.register(project, executor);
executor.run();
}
+ EduUtils.synchronize();
}
}
import com.jetbrains.edu.courseFormat.Lesson;
import com.jetbrains.edu.courseFormat.Task;
import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.StudyTaskManager;
import org.jetbrains.annotations.NotNull;
import java.io.File;
File resourceFile = new File(newResourceRoot, fileName);
File fileInProject = new File(taskDir.getCanonicalPath(), fileName);
FileUtil.copy(resourceFile, fileInProject);
+ StudyTaskManager.getInstance(project).addInvisibleFiles(fileInProject.getPath());
}
}
}
if (parentName.equals(EduNames.SANDBOX_DIR)) {
nodes.add(node);
}
+ if (parentName.startsWith(EduNames.TASK)) {
+ addNonInvisibleFiles(nodes, node, project, virtualFile);
+ }
}
}
}
return nodes;
}
+ private static void addNonInvisibleFiles(@NotNull final Collection<AbstractTreeNode> nodes,
+ @NotNull final AbstractTreeNode node,
+ @NotNull final Project project,
+ @NotNull final VirtualFile virtualFile) {
+ if (!StudyTaskManager.getInstance(project).isInvisibleFile(virtualFile.getPath())) {
+ String fileName = virtualFile.getName();
+ if (!fileName.contains(EduNames.WINDOW_POSTFIX) && !fileName.contains(EduNames.WINDOWS_POSTFIX)) {
+ nodes.add(node);
+ }
+ }
+ }
+
protected boolean isCourseBasedProject(@NotNull final AbstractTreeNode parent) {
final Project project = parent.getProject();
if (project != null) {