mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fixed EDU-378 Clean all _windows files just before run
This commit is contained in:
+2
-23
@@ -35,7 +35,6 @@ import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.openapi.wm.ex.StatusBarEx;
|
||||
import com.intellij.openapi.wm.ex.WindowManagerEx;
|
||||
import com.jetbrains.edu.EduDocumentListener;
|
||||
import com.jetbrains.edu.EduNames;
|
||||
import com.jetbrains.edu.EduUtils;
|
||||
import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
|
||||
import com.jetbrains.edu.courseFormat.Task;
|
||||
@@ -85,26 +84,6 @@ public class StudyCheckAction extends DumbAwareAction {
|
||||
}
|
||||
}
|
||||
|
||||
private static void deleteWindowDescriptions(@NotNull final Task task, @NotNull final VirtualFile taskDir) {
|
||||
for (Map.Entry<String, TaskFile> entry : task.getTaskFiles().entrySet()) {
|
||||
String name = entry.getKey();
|
||||
VirtualFile virtualFile = taskDir.findChild(name);
|
||||
if (virtualFile == null) {
|
||||
continue;
|
||||
}
|
||||
String windowsFileName = virtualFile.getNameWithoutExtension() + EduNames.WINDOWS_POSTFIX;
|
||||
final VirtualFile windowsFile = taskDir.findChild(windowsFileName);
|
||||
if (windowsFile != null) {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
StudyUtils.deleteFile(windowsFile);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void drawAllPlaceholders(@NotNull final Project project, @NotNull final Task task, @NotNull final VirtualFile taskDir) {
|
||||
for (Map.Entry<String, TaskFile> entry : task.getTaskFiles().entrySet()) {
|
||||
String name = entry.getKey();
|
||||
@@ -219,14 +198,14 @@ public class StudyCheckAction extends DumbAwareAction {
|
||||
StudyUtils.updateStudyToolWindow(project);
|
||||
drawAllPlaceholders(project, task, taskDir);
|
||||
ProjectView.getInstance(project).refresh();
|
||||
deleteWindowDescriptions(task, taskDir);
|
||||
EduUtils.deleteWindowDescriptions(task, taskDir);
|
||||
checkInProgress = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
taskManager.setStatus(task, statusBeforeCheck);
|
||||
deleteWindowDescriptions(task, taskDir);
|
||||
EduUtils.deleteWindowDescriptions(task, taskDir);
|
||||
checkInProgress = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||
import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
|
||||
import com.jetbrains.edu.courseFormat.Task;
|
||||
import com.jetbrains.edu.courseFormat.TaskFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -106,6 +107,7 @@ public class EduUtils {
|
||||
}
|
||||
if (taskDir != null) {
|
||||
final String name = file.getNameWithoutExtension() + EduNames.WINDOWS_POSTFIX;
|
||||
deleteWindowsFile(taskDir, name);
|
||||
PrintWriter printWriter = null;
|
||||
try {
|
||||
fileWindows = taskDir.createChildData(taskFile, name);
|
||||
@@ -232,4 +234,33 @@ public class EduUtils {
|
||||
}
|
||||
}, "Replace Answer Placeholders", "Replace Answer Placeholders");
|
||||
}
|
||||
|
||||
public static void deleteWindowDescriptions(@NotNull final Task task, @NotNull final VirtualFile taskDir) {
|
||||
for (Map.Entry<String, TaskFile> entry : task.getTaskFiles().entrySet()) {
|
||||
String name = entry.getKey();
|
||||
VirtualFile virtualFile = taskDir.findChild(name);
|
||||
if (virtualFile == null) {
|
||||
continue;
|
||||
}
|
||||
String windowsFileName = virtualFile.getNameWithoutExtension() + EduNames.WINDOWS_POSTFIX;
|
||||
deleteWindowsFile(taskDir, windowsFileName);
|
||||
}
|
||||
}
|
||||
|
||||
private static void deleteWindowsFile(@NotNull final VirtualFile taskDir, @NotNull final String name) {
|
||||
final VirtualFile fileWindows = taskDir.findChild(name);
|
||||
if (fileWindows != null && fileWindows.exists()) {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
fileWindows.delete(taskDir);
|
||||
}
|
||||
catch (IOException e) {
|
||||
LOG.warn("Tried to delete non existed _windows file");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user