import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.openapi.vfs.VirtualFileEvent;
import com.intellij.psi.PsiDirectory;
import com.intellij.util.DocumentUtil;
import com.intellij.util.Function;
import java.io.File;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Map;
public class CCUtils {
public static final String ANSWER_EXTENSION_DOTTED = ".answer.";
return generatedRoot.get();
}
- /**
- * @param requestor {@link VirtualFileEvent#getRequestor}
- */
@Nullable
- public static VirtualFile generateFolder(@NotNull Project project, @NotNull Module module, @Nullable Object requestor, String name) {
+ public static VirtualFile generateFolder(@NotNull Project project, @NotNull Module module, String name) {
VirtualFile generatedRoot = getGeneratedFilesFolder(project, module);
if (generatedRoot == null) {
return null;
ApplicationManager.getApplication().runWriteAction(() -> {
try {
if (folder.get() != null) {
- folder.get().delete(requestor);
+ folder.get().delete(null);
}
- folder.set(generatedRoot.createChildDirectory(requestor, name));
+ folder.set(generatedRoot.createChildDirectory(null, name));
}
catch (IOException e) {
LOG.info("Failed to generate folder " + name, e);
public class CCAddAnswerPlaceholder extends CCAnswerPlaceholderAction {
public CCAddAnswerPlaceholder() {
- super("Add/Delete Answer Placeholder", "Add/Delete answer placeholder", null);
+ super("Add/Delete Answer Placeholder", "Add/Delete answer placeholder");
}
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import javax.swing.*;
-
abstract public class CCAnswerPlaceholderAction extends DumbAwareAction {
- protected CCAnswerPlaceholderAction(@Nullable String text, @Nullable String description, @Nullable Icon icon) {
- super(text, description, icon);
+ protected CCAnswerPlaceholderAction(@Nullable String text, @Nullable String description) {
+ super(text, description, null);
}
@Nullable
final Course course = StudyTaskManager.getInstance(project).getCourse();
if (course == null) return;
final VirtualFile baseDir = project.getBaseDir();
- VirtualFile archiveFolder = CCUtils.generateFolder(project, module, null, zipName);
+ VirtualFile archiveFolder = CCUtils.generateFolder(project, module, zipName);
if (archiveFolder == null) {
return;
}
public class CCEditAnswerPlaceholder extends CCAnswerPlaceholderAction {
public CCEditAnswerPlaceholder() {
- super("Edit Answer Placeholder", "Edit answer placeholder", null);
+ super("Edit Answer Placeholder", "Edit answer placeholder");
}
@Override
import com.jetbrains.edu.learning.projectView.StudyTreeStructureProvider;
import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
import java.util.Collection;
public class CCTreeStructureProvider extends StudyTreeStructureProvider {
if (!needModify(parent)) {
return children;
}
- Collection<AbstractTreeNode> modifiedChildren = new ArrayList(super.modify(parent, children, settings));
+ Collection<AbstractTreeNode> modifiedChildren = super.modify(parent, children, settings);
for (AbstractTreeNode node : children) {
Project project = node.getProject();
if (virtualFile == null) {
continue;
}
- if (StudyUtils.getTaskFile(project, virtualFile) == null && !StudyUtils.isTaskDescriptionFile(virtualFile.getName())) {
+ if (project != null && StudyUtils.getTaskFile(project, virtualFile) == null
+ && !StudyUtils.isTaskDescriptionFile(virtualFile.getName())) {
modifiedChildren.add(new CCStudentInvisibleFileNode(project, ((PsiFileNode)node).getValue(), settings));
}
}
List<AnswerPlaceholder> windows = window.getTaskFile().getAnswerPlaceholders();
if (StudyUtils.indexIsValid(index, windows)) {
int newIndex = index + 1;
- return newIndex == windows.size() ? windows.get(0) : windows.get(newIndex);
+ return windows.get(newIndex == windows.size() ? 0 : newIndex);
}
return null;
}