Small fix for listing tasks
This commit is contained in:
@@ -15,8 +15,8 @@ public class AssignmentManager {
|
||||
public AssignmentManager() {
|
||||
workerMap = new HashMap<>();
|
||||
taskMap = new HashMap<>();
|
||||
int workerIdCounter = 1000;
|
||||
int taskIdCounter = 0;
|
||||
workerIdCounter = 1000;
|
||||
taskIdCounter = 0;
|
||||
userInterface = new UserCommands(this);
|
||||
}
|
||||
public Map<Integer, Task> getTaskMap() {
|
||||
|
||||
@@ -5,5 +5,6 @@ import java.util.Scanner;
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
AssignmentManager manager = new AssignmentManager();
|
||||
manager.startCLI();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,13 +151,13 @@ public class UserCommands implements Runnable {
|
||||
System.out.println("General:");
|
||||
System.out.println(" help, ? - Show this help");
|
||||
System.out.println(" exit - Exit the program");
|
||||
System.out.println(" listworkers - List all workers and select one");
|
||||
System.out.println(" selecttask - Select a task by ID");
|
||||
System.out.println(" createtask - Create a new task");
|
||||
System.out.println(" createworker - Create a new worker");
|
||||
System.out.println(" listtasks - List all tasks");
|
||||
System.out.println(" listunfinished - List unfinished tasks");
|
||||
System.out.println(" listfinished - List finished tasks");
|
||||
System.out.println(" createtask - Create a new task");
|
||||
System.out.println(" selecttask - Select a task to work with");
|
||||
System.out.println(" listworkers - List all workers");
|
||||
System.out.println(" listtasks - List all tasks with status");
|
||||
System.out.println(" listfinished - List only finished tasks");
|
||||
System.out.println(" listunfinished - List only unfinished tasks");
|
||||
|
||||
System.out.println("\nWhen a task is selected:");
|
||||
System.out.println(" finish - Mark task as finished");
|
||||
@@ -185,16 +185,23 @@ public class UserCommands implements Runnable {
|
||||
|
||||
case "selecttask":
|
||||
System.out.println("Enter task ID:");
|
||||
currentState = InputState.AWAITING_TASK_SELECTION; // Change to new state
|
||||
currentState = InputState.AWAITING_TASK_SELECTION;
|
||||
break;
|
||||
|
||||
case "listworkers":
|
||||
System.out.println("Available workers:");
|
||||
for (Worker w : manager.getWorkerMap().values()) {
|
||||
System.out.println(" " + w.getId() + ": " + w.getName());
|
||||
}
|
||||
System.out.println("Enter worker ID to select (or 'back'):");
|
||||
currentState = InputState.WORKER_SELECTED;
|
||||
listWorkers();
|
||||
break;
|
||||
|
||||
case "listtasks":
|
||||
listAllTasks();
|
||||
break;
|
||||
|
||||
case "listfinished":
|
||||
listTasksByStatus(TaskState.FINISHED);
|
||||
break;
|
||||
|
||||
case "listunfinished":
|
||||
listTasksByStatus(TaskState.IN_PROGRESS);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -202,6 +209,54 @@ public class UserCommands implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
private void listWorkers() {
|
||||
System.out.println("\nAvailable workers:");
|
||||
if (manager.getWorkerMap().isEmpty()) {
|
||||
System.out.println(" No workers found.");
|
||||
} else {
|
||||
for (Worker w : manager.getWorkerMap().values()) {
|
||||
System.out.println(" " + w.getId() + ": " + w.getName());
|
||||
}
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
private void listAllTasks() {
|
||||
System.out.println("\nAll tasks:");
|
||||
if (manager.getTaskMap().isEmpty()) {
|
||||
System.out.println(" No tasks found.");
|
||||
} else {
|
||||
for (Task task : manager.getTaskMap().values()) {
|
||||
Worker worker = manager.getWorker(task.getWorkerId());
|
||||
String status = task.getTaskState() == TaskState.FINISHED ? "[FINISHED]" : "[IN PROGRESS]";
|
||||
System.out.println(String.format(" %d: %s - %s (Worker: %d - %s)",
|
||||
task.getTaskId(), status, task.getName(),
|
||||
worker.getId(), worker.getName()));
|
||||
}
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
private void listTasksByStatus(TaskState status) {
|
||||
System.out.println("\nTasks with status: " + status);
|
||||
boolean found = false;
|
||||
|
||||
for (Task task : manager.getTaskMap().values()) {
|
||||
if (task.getTaskState() == status) {
|
||||
Worker worker = manager.getWorker(task.getWorkerId());
|
||||
System.out.println(String.format(" %d: %s (Worker: %d - %s)",
|
||||
task.getTaskId(), task.getName(),
|
||||
worker.getId(), worker.getName()));
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
System.out.println(" No tasks found with this status.");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
private void handleWorkerSelectionInput(String input) {
|
||||
if ("back".equalsIgnoreCase(input)) {
|
||||
resetToMainMenu();
|
||||
|
||||
Reference in New Issue
Block a user