import java.util.*;
public class LookOutApp {
public static Scanner sn = new Scanner(System.in);
public static int menu() {
System.out.println("1. Print Summary of all tasks" + '\n'
+ "2. Print Description and Deadline of next task" + '\n'
+ "3. Remove next task" + '\n' + "4. Add task to list" + '\n'
+ "5. Save data" + '\n' + "6. Restore from disk" + '\n'
+ "7. Quit");
int input = 0;
do {
System.out.println("Enter option 1-7");
input = sn.nextInt();
} while (input < 1 || input > 7);
return input;
}
public static void main(String[] args) {
boolean runApp = true;
int input = 0;
TaskList tasks;
System.out
.println("Please select a task list structure" + '\n'
+ "1. Stack" + '\n' + "2. FIFO" + '\n'
+ "3. Priority Sequence");
do {
System.out.println("Enter a number 1-3");
input = sn.nextInt();
} while (input != 1 && input != 2 && input != 3);
if (input == 1)
tasks = new TaskStack();
else if (input == 2)
tasks = new TaskFifo();
else
tasks = new TaskPrioritySequence();
do {
switch (menu()) {
case 1:
if (tasks.isEmpty()) {
System.out.println("No tasks currently in list");
} else {
Task[] temp = tasks.allTasks();
for (int i = 0; i < temp.length-1; i++) {
System.out.println(temp[i].toString());
}
}
break;
case 2:
if (tasks.isEmpty()) {
System.out.println("No tasks currently in list");
} else {
System.out.println(tasks.nextTask().toString());
}
break;
case 3:
if (tasks.isEmpty()) {
System.out.println("No tasks currently in list");
} else {
tasks.removeNextTask();
}
break;
case 4:
System.out.println("Please give a task description");
String description = sn.next();
String strIn;
SimpleDate deadline;
Task task;
do {
System.out.println("Enter y if you want a deadline or n if you do not.");
strIn = sn.next();
} while (strIn.compareToIgnoreCase("y") != 0
&& strIn.compareToIgnoreCase("n") != 0);
if (strIn.compareToIgnoreCase("y") == 0) {
do {
System.out.println("Enter valid year");
int year = sn.nextInt();
System.out.println("Enter valid month");
int month = sn.nextInt();
System.out.println("Enter valid day");
int day = sn.nextInt();
deadline = new SimpleDate(year, month, day);
} while (deadline.isValid() != true);
task=new Task(description,deadline);
}
else
task=new Task(description);
tasks.addTask(task);
break;
case 5:
System.out.println("Please enter a file name.");
TaskUtility.saveTasksToFile(sn.next(), tasks.allTasks());
if (TaskUtility.saveTasksToFile(sn.next(), tasks.allTasks()))
System.out.println("Save successful");
else
System.out.println("Save not successful");
break;
case 6:
System.out.println("Please enter a file name.");
Task[] temp = TaskUtility.readTasksFromFile(sn.next());
if (temp == null)
System.out.println("Save not successful");
else
tasks.initWithTasks(temp);
break;
case 7:
runApp = false;
break;
}
} while (runApp);
}
}