use last subtask index instead of subtask number

This commit is contained in:
Liana.Bakradze
2016-11-17 17:08:34 +03:00
committed by liana.bakradze
parent 4ba00ba42d
commit 1936c7c28e
6 changed files with 20 additions and 16 deletions
@@ -66,10 +66,11 @@ public class CCSubtaskEditorNotificationProvider extends EditorNotifications.Pro
};
String header = isTestFile ? "test" : "task file";
int activeSubtaskIndex = task.getActiveSubtaskIndex() + 1;
panel.setText("This is " + header + " for " + EduNames.SUBTASK + " " + activeSubtaskIndex + "/" + task.getSubtaskNum());
int subtaskSize = task.getLastSubtaskIndex() + 1;
panel.setText("This is " + header + " for " + EduNames.SUBTASK + " " + activeSubtaskIndex + "/" + subtaskSize);
panel.createActionLabel(SWITCH_SUBTASK, () -> {
ArrayList<Integer> values = new ArrayList<>();
for (int i = 0; i < task.getSubtaskNum(); i++) {
for (int i = 0; i <= task.getLastSubtaskIndex(); i++) {
values.add(i);
}
values.add(ADD_SUBTASK_ID);
@@ -155,7 +156,7 @@ public class CCSubtaskEditorNotificationProvider extends EditorNotifications.Pro
if (selectedValue.equals(SELECT)) {
StudySubtaskUtils.switchStep(myProject, myTask, mySubtaskIndex);
} else {
if (mySubtaskIndex != myTask.getSubtaskNum() - 1) {
if (mySubtaskIndex != myTask.getLastSubtaskIndex()) {
//TODO: implement
} else {
//TODO: delete last subtask
@@ -60,9 +60,9 @@ public class CCNewSubtaskAction extends DumbAwareAction {
return;
}
createTestsForNewSubtask(project, task);
int num = task.getSubtaskNum();
int num = task.getLastSubtaskIndex() + 1;
createTaskDescriptionFile(project, taskDir, num);
task.setSubtaskNum(num + 1);
task.setLastSubtaskIndex(num);
StudySubtaskUtils.switchStep(project, task, num);
}
@@ -189,10 +189,12 @@ public class StudyCheckTask extends com.intellij.openapi.progress.Task.Backgroun
});
}
else {
boolean hasMoreSubtasks = myTask.hasSubtasks() && myTask.getActiveSubtaskIndex() != myTask.getSubtaskNum() - 1;
boolean hasMoreSubtasks = myTask.hasSubtasks() && myTask.getActiveSubtaskIndex() != myTask.getLastSubtaskIndex();
int visibleSubtaskIndex = myTask.getActiveSubtaskIndex() + 1;
ApplicationManager.getApplication().invokeLater(() -> {
String resultMessage = !hasMoreSubtasks ? message : "Subtask " + visibleSubtaskIndex + "/" + myTask.getSubtaskNum() + " solved";
int subtaskSize = myTask.getLastSubtaskIndex() + 1;
String resultMessage = !hasMoreSubtasks ? message : "Subtask " + visibleSubtaskIndex + "/" +
subtaskSize + " solved";
StudyCheckUtils.showTestResultPopUp(resultMessage, MessageType.INFO.getPopupBackground(), myProject);
if (hasMoreSubtasks) {
int nextSubtaskIndex = myTask.getActiveSubtaskIndex() + 1;
@@ -43,7 +43,7 @@ public class Task implements StudyItem {
@Expose @SerializedName("update_date") private Date myUpdateDate;
private int myActiveSubtaskIndex = 0;
@Expose private int mySubtaskNum = 1;
@Expose private int myLastSubtaskIndex = 0;
public Task() {}
@@ -230,7 +230,7 @@ public class Task implements StudyItem {
placeholder.setStatus(status);
}
}
if (status == StudyStatus.Solved && hasSubtasks() && getActiveSubtaskIndex() != getSubtaskNum() - 1) {
if (status == StudyStatus.Solved && hasSubtasks() && getActiveSubtaskIndex() != getLastSubtaskIndex()) {
return;
}
myStatus = status;
@@ -270,15 +270,15 @@ public class Task implements StudyItem {
myActiveSubtaskIndex = activeSubtaskIndex;
}
public int getSubtaskNum() {
return mySubtaskNum;
public int getLastSubtaskIndex() {
return myLastSubtaskIndex;
}
public void setSubtaskNum(int subtaskNum) {
mySubtaskNum = subtaskNum;
public void setLastSubtaskIndex(int lastSubtaskIndex) {
myLastSubtaskIndex = lastSubtaskIndex;
}
public boolean hasSubtasks() {
return mySubtaskNum > 1;
return myLastSubtaskIndex > 0;
}
}
@@ -57,7 +57,8 @@ public class TaskDirectoryNode extends StudyDirectoryNode {
private String getSubtaskInfo() {
int index = myTask.getActiveSubtaskIndex() + 1;
return EduNames.SUBTASK + " " + index + "/" + myTask.getSubtaskNum();
int subtasksNum = myTask.getLastSubtaskIndex() + 1;
return EduNames.SUBTASK + " " + index + "/" + subtasksNum;
}
@Override
@@ -70,7 +70,7 @@ public class PyCCLanguageManager implements CCLanguageManager {
return;
}
int prevSubtaskIndex = task.getSubtaskNum() - 1;
int prevSubtaskIndex = task.getLastSubtaskIndex();
String name = prevSubtaskIndex == 0 ? EduNames.TESTS_FILE : getSubtaskTestsFileName(prevSubtaskIndex);
VirtualFile testsFile = taskDir.findChild(name);
if (testsFile == null) {