From: liana.bakradze Date: Tue, 18 Oct 2016 11:11:13 +0000 (+0300) Subject: support for correct presentation of Class Nodes X-Git-Tag: pycharm/171.1053~29 X-Git-Url: https://git.jetbrains.org/?p=idea%2Fcommunity.git;a=commitdiff_plain;h=25f5235721b8770d2c70025f42e09fd2bac6d9fe support for correct presentation of Class Nodes --- diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCTaskDirectoryNode.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCTaskDirectoryNode.java index b8279abef378..69a7b664b840 100644 --- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCTaskDirectoryNode.java +++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCTaskDirectoryNode.java @@ -7,6 +7,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiNamedElement; import com.jetbrains.edu.coursecreator.CCUtils; import com.jetbrains.edu.learning.StudyLanguageManager; import com.jetbrains.edu.learning.StudyTaskManager; @@ -35,7 +36,8 @@ public class CCTaskDirectoryNode extends TaskDirectoryNode { } Object value = childNode.getValue(); if (value instanceof PsiElement) { - PsiFile psiFile = ((PsiElement)value).getContainingFile(); + PsiElement psiElement = (PsiElement) value; + PsiFile psiFile = psiElement.getContainingFile(); VirtualFile virtualFile = psiFile.getVirtualFile(); if (virtualFile == null) { return null; @@ -43,10 +45,6 @@ public class CCTaskDirectoryNode extends TaskDirectoryNode { if (StudyUtils.isTaskDescriptionFile(virtualFile.getName())) { return null; } - if (!CCUtils.isTestsFile(myProject, virtualFile) || !myTask.hasSubtasks()) { - return new CCStudentInvisibleFileNode(myProject, psiFile, myViewSettings); - } - Course course = StudyTaskManager.getInstance(myProject).getCourse(); if (course == null) { return null; @@ -55,12 +53,31 @@ public class CCTaskDirectoryNode extends TaskDirectoryNode { if (manager == null) { return new CCStudentInvisibleFileNode(myProject, psiFile, myViewSettings); } - String testFileName = manager.getTestFileName(); + if (!CCUtils.isTestsFile(myProject, virtualFile)) { + return new CCStudentInvisibleFileNode(myProject, psiFile, myViewSettings); + } + if (!myTask.hasSubtasks()) { + return new CCStudentInvisibleFileNode(myProject, psiFile, myViewSettings, getTestNodeName(manager, psiElement)); + } + String testFileName = getTestNodeName(manager, psiElement); return isActiveSubtaskTest(virtualFile) ? new CCStudentInvisibleFileNode(myProject, psiFile, myViewSettings, testFileName) : null; } return null; } + @NotNull + private static String getTestNodeName(StudyLanguageManager manager, PsiElement psiElement) { + String defaultTestName = manager.getTestFileName(); + if (psiElement instanceof PsiFile) { + return defaultTestName; + } + if (psiElement instanceof PsiNamedElement) { + String name = ((PsiNamedElement)psiElement).getName(); + return name != null ? name : defaultTestName; + } + return defaultTestName; + } + private boolean isActiveSubtaskTest(VirtualFile virtualFile) { if (!myTask.hasSubtasks()) { return true;